Tools You Need to Learn is the short form for Development Operations. is one of the hottest topics today. To become a DevOps engineer you need to learn a lot of skills. DevOps DevOps DevOps is a joint responsibility of the development and operation team. It is a practice and the tools that are put together to run the services and applications efficiently on the chosen infrastructure. It covers the provisioning and maintaining infrastructure and the processes that run on it. I have been doing DevOps (along with development) with my team for years now. I had no knowledge of the tools, but slowly I have gained expertise in quite a few of them. Here I present the roadmap that can help you develop DevOps skills: Computer and Network Architecture is understanding the underlying structure of the computer system and how networks work. This includes the functioning of CPU, memory, external devices, network protocols, routing protocols, etc. Computer and network architecture Knowing this helps you make decisions like: Which service needs what kind of resources (server) What should be the structure of networks like subnets and security groups What ports to open Scripting Scripting is an important skill for any domain that requires you to program. It is a must-have skill for a DevOps developer. DevOps involves the automation of processes that need engineers to write scripts. Scripting can be done in different languages — , etc. shell, python, javascript Being proficient at scripting makes it easy to automate deployments, processes, and your daily activities. git & Github/Bitbucket/Gitlab is the most popular version control amongst the developer community. / / are repositories that host git servers for you. On these platforms, you store your code in git and these platforms provide you with many management tools. Git Github Bitbucket Gitlab A DevOps Engineer should be familiar with git commands and the DevOps pipelines provided by these platforms. This helps them set up CI/CD pipelines. Jenkins is one of the most used automation and CI/CD tools. It is an open-source automation server. Jenkins The wide variety of plugins supported by Jenkins come in handy while building automation for your projects. These plugins range from tools like Jira, JUint to infrastructure plugins like EC2 plugin, Docker to communication plugins like Slack Notification. Ansible/Puppet/Chef/SaltStack , , , and are all infrastructure automation and configuration management tools. These tools are used to deploy, configure and manage servers on large scale. Ansible Puppet Chef SaltStack The debate of which one of these tools is the best is hot for quite some time. Ansible has been the choice for me primarily due to its ease of setup and management. It is extremely easy to create Ansible playbooks for deployment. Learning one of these skills is a must-have for a DevOps developer. Docker Using you can containerize your applications and services. You can build containers having different applications that are isolated from one another. Each container has its own files, installed software, and libraries. Docker Docker is also considered to be a fast way of deployment as compared to Ansible, Puppet, Chef, and SaltStack. These containers can be used to host the application on any kind of server. Cloud Platforms To be a great DevOps developer, you need to learn (almost) everything about a cloud platform and all the services it provides. Knowledge of a cloud platform enables you to choose the right service for your purpose and helps you reduce infrastructure cost. Log management Having meaningful logs for your applications and services is an important aspect of deployment. Log management involves the following: Proper log management for your software brings in these values: Debug Analyzing bugs helps monitor your applications User behavior There are many ways in which logs are managed. There are a few such tools provided by cloud platforms as well like of . CloudWatch AWS is the most widely used log monitoring and visualization tool. It is a combination of three open-source tools: ELK ElasticSearch Logstash Kibana You can analyze, search and filter logs. Kibana helps you build beautiful visualization from logs. CI/CD Continuous Integration/Continuous Deployment is the process of releasing software that has been qualified and deployed automatically. CI/CD reduces the time from making changes in the code to shipping the software. Building CI/CD pipelines is one of the most important responsibilities of the DevOps team. There are many ways to you can create pipelines, like Gitlab pipeline, Bitbucket pipeline, AWS Code build. To build CI/CD pipeline you need to work collectively with Dev and QA team. A great pipeline (accompanied by great practices) does not need any manual intervention from code commit to testing to deployment. Infrastructure as Code Creating and configuring cloud infrastructure from the console provided by the cloud platform is easy and is for the naive. Using the console is easy and recommended for smaller infrastructures. For large infrastructures, you need to have your infrastructure as code. You can bring up, teardown stacks with a single command or click of a button. (from AWS), and are a few popular “infrastructure as code” software tools. CloudFormation Terraform Kubernetes is an open-source system that is used to deploy and manage containers on multiple servers. Kubernetes Nowadays, containers are preferred as a way of deployment. Kubernetes solves this problem on large scale by running the applications and ensuring no downtime. The popular cloud platforms provide out-of-box Kubernetes services like GKE by GCP EKS by AWS AKS by Azure Final Words You don’t have to master all the above skills to be a DevOps Engineer. You certainly need to master a few of these skills and learn as and when you need to. First Published here