DevOps is the short form for Development Operations.
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.
Knowing this helps you make decisions like:
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 — shell, python, javascript, etc.
Being proficient at scripting makes it easy to automate deployments, processes, and your daily activities.
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.
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.
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.
Using
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.
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.
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:
There are many ways in which logs are managed. There are a few such tools provided by cloud platforms as well like
You can analyze, search and filter logs. Kibana helps you build beautiful visualization from logs.
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.
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.
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
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