Want to Step into the World of DevOps – Where to Begin

devops

Whether you are a fresher with no experience or an experienced person looking to get into DevOps, this article covers the basics of where to begin.

So what is DevOps,
DevOps is the combination of two words: Development and Operations. It is a set of practices, tools and a cultural approach that prioritizes collaboration between development and operations teams to streamline the entire software delivery lifecycle. In simple terms, it increases the speed and quality of a software from development to deployment.

In this article, I am not going into the details of what DevOps is. If you want to read on, then I recommend this article ( What is DevOps | Atlassian)

Linux

Linux is an open-source operating system that began as a free substitute for proprietary Unix-based systems. It has since developed into a robust and widely utilized platform across multiple sectors, such as servers, embedded systems, desktops, and cloud-based systems. Known for its stability, security, flexibility, and scalability, it gives access to a robust CLI, a scripting environment, essential tools and utilities. Making it a top choice for DevOps practices.

Linux Commands

Linux commands are crucial for operating and managing the system via the terminal, which functions similarly to the command prompt in Windows.

For a DevOps engineer, becoming proficient in key Linux commands is important for system administration. Some of the important commands are:

  • ls: List files and directories
  • echo: Print anythig
  • cd: Change the current directory
  • pwd: Print the current working directory
  • mkdir: Create a new directory
  • rm: Remove files and directories
  • cp: Copy files and directories
  • mv: Move or rename files and directories
  • find: Search for files and directories
  • cat: Concatenate and display file contents
  • grep: Search for patterns in files
  • head: Display the beginning of a file
  • tail: Display the end of a file
  • ps: View running processes
  • top: Monitor system resources and processes in real-time
  • systemctl: Manage system services
  • df: Display disk space usage
  • free: Display system memory usage
  • ping: Send ICMP echo requests to a host
  • curl or wget: Download files from the web
  • ssh: Securely connect to remote systems
  • scp: Securely copy files between systems
  • netstat: Network statistics and connections
  • ifconfig or ip: Network interface configuration
  • iptables or ufw: Firewall configuration

Read more Linux commands here: Linux Commands – GeeksforGeeks

Shell Scripting

Shell scripting is a programming method that involves writing a series of Linux commands for the shell, which is a command-line interface used to interact with the operating system. These scripts automate tasks by executing commands in a sequence, allowing users to perform complex operations, manage system processes, and manipulate files more efficiently.It is commonly used for system administration, automation, and task scheduling.
For example, I’ll show you a simple shell script with the commands we learned above:

#Filename: test.sh
echo This is my first shell script
pwd
ls
echo End of my shell script

This is a basic example of a shell script, it is a file with Linux commands to be run.

Here’s a video you can watch to learn more about Linux in DevOps

Version Control (Git)

Git is a distributed version control system that plays a crucial role in DevOps practices. It allows teams to track changes in source code over time, facilitating collaboration among developers. With Git, multiple team members can work on the same project simultaneously without overwriting each other’s changes, as it enables branching and merging of code.

Here’s a tutorial for beginners to learn Git:

If you are interested in how Git works as a version control, you can refer to this: How Git Version Control Works – GeeksforGeeks

Docker

Docker is an open-source platform that enables containerization. It simplifies the process of creating, deploying, and managing containers. With Docker, developers can package applications and their dependencies into a single unit, ensuring consistency across different environments (development, testing, and production).

Containerization

Containerization is a lightweight form of virtualization that allows applications to run in isolated environments called containers. These containers package an application along with its dependencies (libraries, configurations, and runtime) so that it runs consistently across different computing environments.
It solves the age-old problem, it works on my machine

Basic components of Docker 

  • Docker images: Docker images are the blueprints for your containers. They are read-only templates that contain the instructions for creating a Docker container. You can think of a container image as a snapshot of a specific state of your application.
  • Containers: Containers are the instances of Docker images. They are lightweight and portable, encapsulating your application along with its dependencies. Containers can be created, started, stopped, moved, and deleted using simple Docker commands.
  • Dockerfiles: A Dockerfile is a text document containing a series of instructions on how to build a Docker image. It includes commands for specifying the base image, copying files, installing dependencies, and setting up the environment. 
  • Docker Engine: Docker Engine is the core component of Docker. It’s a client-server application that includes a server with a long-running daemon process, APIs for interacting with the daemon, and a CLI client.

Here’s a tutorial for beginners to start learning Docker:

Cloud

The Cloud plays a vital role in DevOps by providing scalable, on-demand infrastructure, automation tools, and services for faster software development and deployment. Cloud platforms like AWS, Azure, GCP, and Oracle Cloud Infrastructure allow DevOps teams to automate workflows, manage resources efficiently, and ensure high availability.
If you are a beginner to cloud, I would recommend you start with AWS as it is the most easiest to learn in my opinion.

Here’s a 10-hour free AWS course for beginners :

CI/CD

CI/CD is a fundamental practice in modern software development, particularly in DevOps environments. By automating the integration, testing, and deployment processes, CI/CD enables teams to deliver high-quality software more efficiently and respond quickly to changing requirements. This leads to improved collaboration, faster releases, and a more agile development process.

Here are some of the most popular CI/CD tools:

  1. Jenkins: An open-source automation server that supports building, deploying, and automating software development processes. It has a vast ecosystem of plugins for integration with various tools.
  2. GitLab CI: A built-in CI/CD tool within GitLab that allows for automated testing and deployment directly from the Git repository.
  3. CircleCI: A cloud-based CI/CD tool that automates the software development process, providing fast builds and easy integration with various version control systems.
  4. Travis CI: A cloud-based CI service that integrates with GitHub repositories, allowing for automated testing and deployment of applications.
  5. Azure DevOps: A suite of development tools from Microsoft that includes Azure Pipelines for CI/CD, along with project management and collaboration features.

Here’s a tutorial on GitLab CI:

Infrastructure as Code (IaC)

Infrastructure as Code (IaC) is the practice of managing and provisioning infrastructure using code instead of manual processes. It enables DevOps teams to automate infrastructure deployment, ensuring consistency, scalability, and faster delivery of applications. One of the most popular tools in IaC is Terraform.

In an upcoming article, I’ll post a detailed tutorial on provisioning an EC2 Server in AWS and hosting a website using Terraform Infrastructure as Code.

Here’s a two-hour free course on Terraform (Basic Knowledge of AWS required) :

Conclusion

Whether you’re a beginner or an experienced professional transitioning into DevOps, these are the fundamental concepts you should start with. This is just the tip of the iceberg—there’s much more to explore and master. If you found this article helpful, feel free to share it with friends who are interested in getting into DevOps!

Bonus: Udemy course

Here’s an awesome DevOps course to get started: The Ultimate DevOps Bootcamp by Mumshad Mannambeth

Want to Step into the World of DevOps – Where to Begin

Leave a Reply

Scroll to top