There is so much hype around devops services now that thousands of people overnight wanted to master the profession, sometimes without even knowing what to do. DevOps engineer is a person, first of all, competent in system administration. How do I master my profession?
First Ops, then Dev
Customers are constantly worried about uptime, security, in general, the usual IT Operations has not gone anywhere. Therefore, first you will need a good knowledge of system administration, troubleshooting and bottlenecks search. Infrastructure as a code, CI/CD and so on should be considered as an extension of the career of a system administrator, not as a separate path. You should not become a person who deploys MySQL High Availability infrastructure on Ansible without understanding how replication works. Well, sometimes even the process of database backup raises questions. Learn the basics of networking, Linux/Windows, web servers (NGINX, Apache), DBs, monitoring and only then DevOps practices.
DevOps is almost equal to Clouds. Therefore, it is worth to deal with at least one Cloud Provider – AWS, Azure, Google Cloud Platform. You can register a Free Tier at AWS, which is enough to get acquainted with this platform.
When studying Cloud Platforms, you should pay attention to Configuration Management and Provisioning Tools. For example, Ansible and Terraform. Along with the study of Terraform, you can look at containers, Docker, Kubernetes – this will allow you to better understand the strengths of Provisioning Tools.
It is important that there are no open questions after the laboratory, test task, PoC, work on the project. Approach systematically: write out questions, then discuss with colleagues, read literature. The main goal is to fully understand what is happening. Why did you choose this or that tool, why did you write code like that – you should have the answers to these questions.
In addition to the code you need to write to deploy the new infrastructure, you should think about writing your own application. Some Pet Project will help you here. It can be a website, a chat-bot or an IoT application that refills the water in a coffee machine (in IT companies and not so). The main thing is to have a deeper understanding of the developers’ work and problems. To write such an application, you can use the language, which then will be useful to DevOps engineers: Python or Golang just right. In the case of Go, forget about books, A Tour of Go is what you are looking for.
Read someone else’s code
While studying Terraform, you can see the good practices of Terraform Module Registry. Reading someone else’s code allows you to look at other practices and if they are better than yours, adopt them.
DevOps approaches accelerate infrastructure deployment and add more problems for Security Engineers. So you should get rid of simple errors, for example, do not put keys and secrets in the open in version control, a little deeper into the topic of security. Here you can get help with DevSecOps, OWASP, Key Vault keywords.
When you decide on the list of software you are working with, it is worth taking an active part in the life of the product. Read forums (Stack Overflow), watch for updates on GitHub, perhaps even contribute your code.
Do not solve problems that do not exist
AI, Big Data… there are so many new currents in the world. How to stay here and not introduce something new into your project. Our advice is to implement only what you really need, you should know what problem you are solving. Most of the fashionable technologies you do not need or do not fit.