DevOps Explained: The Complete Beginner’s Guide
A lot of people are watching my videos about DevOps, and some have misconceptions about it. Even developers do not fully understand how DevOps works. This script is going to give you a better understanding of what DevOps is.
DevOps is a set of practices, philosophies, and tools that organizations use to improve their infrastructure and release their key products with high velocity, minimizing the amount of time required. Instead of organizations using the traditional method of exploring infrastructure and deploying their code or products, they want to integrate all of these into a complete system.
As I mentioned, it’s a combination of tools, philosophies, and practices that facilitate the DevOps process. This combination allows organizations to deploy applications in the fastest time possible, optimally and with the ability to innovate, contrasting traditional methods of software service deployment.
With DevOps, organizations do not need to explain more about their processes because they constantly have a system that tracks all their current infrastructure and resources. On one end, you have the company, and on the other end, you have the client, creating a delivery pipeline or process.
The Delivery Pipeline
In this delivery pipeline, we look at the build phase where developers code the infrastructure of the application, whether it’s a back-end application or a customer service application. The developers code these applications using particular programming languages, such as C#, Java, React Native, or Python.
Once this coding has been done, there is source code management to manage their infrastructure code. For example, someone might use GitHub as a source code management tool. After the code is sent to the source code management system, it enters the activity process.
In this delivery process, we look at the build where the code is built and tested for vulnerabilities, security vulnerabilities, and optimization based on the programming language being used.
From the build, we move to the test phase, and from the test, we deploy to the infrastructure. The deployment phase involves running your code on an application machine, such as an EC2 instance or a Microsoft VM. Additionally, you can use containers for deployment.
The DevOps process takes into consideration the company, the delivery pipeline, and the customer side. These are the key elements that characterize the DevOps process.
Key Practices of DevOps
This video is divided into three parts. The first part gives you an understanding of what DevOps is. The second part summarizes some of the key DevOps practices, and lastly, I’ll introduce some tools you can use as a DevOps engineer.
To implement the DevOps culture in your environment, you should be aware of several practices, including:
Continuous Integration
Continuous Deployment
Microservices
Infrastructure as Code
Monitoring and Logging
Communication and Collaboration
Regardless of whether the DevOps setup is on Microsoft Cloud, Amazon Cloud, or Google Cloud, these key practices need to be put in place.
Continuous Integration and Continuous Deployment
Continuous Integration (CI) involves rapidly committing or sending all code changes into your development or production environment after a code build stage. Continuous Delivery (CD) ensures that code is automatically and rapidly built, tested, and deployed to your various environments.
Microservices
Rather than having one monolithic application, you can deploy applications as microservices. For example, an application like Netflix does not have all its application code in one repository. You can manage different aspects of your application as microservices, such as managing streaming and managing subscriptions separately.
Infrastructure as Code
Infrastructure as Code means you want to build your infrastructure using code to enable rapid modifications or provisioning. This approach allows you to deploy modifications quickly and securely.
Monitoring and Logging
Monitoring and logging ensure that your production environments, such as EC2 instances, are healthy and active. You want to make sure that customers can access your application without issues.
Tools for DevOps
The last part of this script introduces some tools that are very important for you to learn as a DevOps engineer, as these are the tools the industry demands for CI/CD.
If you’re on Amazon, you might want to use AWS CI/CD tools like CodeCommit, CodeBuild, CodePipeline, and CodeDeploy. Alternatively, you can use tools like Jenkins, GitLab CI, or CircleCI.
For microservices, you might want to use containers. For example, on AWS, you have the Elastic Container Service. Additionally, Kubernetes is currently one of the most in-demand skills for DevOps engineers, as it enables you to orchestrate containers effectively.
You can also use Docker to create smaller images or components of your application and then manage them with Kubernetes or Elastic Container Service.
For Infrastructure as Code, consider using tools like Terraform or AWS CloudFormation. Lastly, for communication and collaboration between your teams, tools like Slack and Jira can be very helpful.