Skip to main content

Module 2: Basics - DevOps Core

🗂 Back to the Roadmap Index

Module Overview

2.1 Code - Python Fundamentals

What you need to know

  • As a start, you need to learn a real programming langauge.
  • Python is a good start, and it's one of the most popular programming languages nowadays.
  • Learn the basics like data types, control flow, loops, and functions.
  • Yet, the idea is not just learning the syntax but also adapting the developer mindset (i.e., don't write Python code like you write your Bash scripts!).
  • More advanced topics will be covered in the next modules.

Resources

  • Learn Python - Codecademy: Interactive learning step by step to acquire the essential Python knowledge (the course is for Python 2, but it's fine).
  • Python Track - Exercism: More than 130 exercises grouped into 16 Python concepts with code analysis (finish only the Learning Exercise).

2.2 Code - Common Development Tools

What you need to know

  • When you are writing code, you don't just use a text editor but code editor (maybe also IDE).
  • Development tools enhance productivity, streamline the development process, increase code quality.
  • Common features of development tools are syntax highlighting, code completion, code navigation, and debugging.
  • Through this roadmap, you will get more tools to help you in your daily work.

Resources

2.3 Code - Git Basics

What you need to know

  • When you create the code, you need to store it in a safe place using a Source Code Management (SCM) system.
  • One of the known SCMs is Git, which's widely used now via many platforms like GitHub and GitLab.
  • You need to understand the Git basics like repository, branch, pull, push, commit, and so on because you will use them almost every day.
  • Understanding Git is not important just for development, but also many workflows depend on it as a Source of Truth like GitOps (that will be covered in the next modules).

Resources

2.4 Operating System - Linux Fundamentals

What you need to know

  • In the servers world, Linux dominates the market. So it's necessary to learn and use Linux OS as a DevOps Engineer.
  • As a DevOps engineer, it's less likely to make it without good knowledge on Linux.
  • Linux mainly has two family groups: Debian/Ubuntu and Red Hat/CentOS, it's better to stick to one of them at the beginning.
  • Start using a user-friendly Linux distribution like Ubuntu on your laptop/desktop.
  • Even it's still possible as a user to do a lot using the UI, but The Terminal Is Your Friend!
  • As a starting point, you need at least to know Directory Structure, Permissions, and Command Line Operations.

Resources

2.5 Operating System - Common Tools and Commands

What you need to know

  • As mentioned, the terminal is your friend! The power of Linux is in the Terminal and you need to be used to it be because you will use it on a daily basis.
  • Get familiar with the GUI tool of the system you have, like Ubuntu.
  • There are a couple of tools you need to master them like echo, vim, grep, find, top, cut, sort, uniq, less, head, and tail.
  • You don't need to memorize all tools or their args, just think "what tool could help me to do that?" then you can always read its documentation.

Resources

2.6 Operating System - Bash Scripting Basics

What you need to know

  • Now you know a dozen of individual CLI commands, but Linux allows you to automate many tasks by simply chaining a series of commands together.
  • In shell scripts you can use all CLI commands plus a syntax similar to a programming language for if conditions, loops, and other helpers.
  • Even you know some programming language like Python, you still will need and use shell scripts frequently.
  • There are many shells and each one slightly different syntax, but Bash is one of the most popular ones.

Resources

2.7 Containers - Docker Fundamentals

What you need to know

  • The container revolution can be traced back to the introduction of Docker in 2013 when Docker debuted for the first time at PyCon.
  • Container adoption has been mainstream for a whole now, in fact, containers are the new norm!
  • That means, containerizing your application is not an option, it's a must from day one!
  • First, you need to understand why containers have been invented and what are the problems that technology solves.
  • You also need to understand the relation between containers and Kubernetes (which will be covered in the next modules).
  • Docker is not the only tool for containers nowadays, but we will stick with it in this roadmap.
  • It's important to understand the difference between Dockerfile, Docker image, and Docker container.

System, Containers, and Code

Resources

2.8 Containers - Docker CLI Basics

What you need to know

  • There are a couple of GUIs for Docker, but you are a DevOps engineer, get yourself familiar with the Docker CLI!
  • You needed to know how to create, run, stop, and delete Docker containers from the CLI.
  • We are not going to cover Docker Compose in this roadmap because Kubernetes will be our focus as an orchestration platform. However, if you needed to use Docker Compose, then use V2, which is now embedded in the Docker CLI docker compose.

Resources

Project - HiveBox Phase 2

Follow the instructions in the HiveBox project phase 2.

Interview Questions - Module 2

Review the interview questions related to Module 2.