Hard skills
Mastering DevOps: a beginner's guide to the world of automation and integration
22 Feb

DevOps is a profession that combines development, operations, and security and requires the skills of an energetic leader, a masterful communicator, and a tech-savvy, adventurous innovator. It is one of the most fascinating areas in the IT industry and is suitable for people of any temperament, as it provides countless opportunities for creativity and professional growth.

How do you take the first steps in the world of automation and integration? Oleksii Yevtushenko, Systems Engineer at EPAM, DevOps evangelist, and one of the major experts in the AI implementation project, shares his advice with beginners. A talented developer with many years of experience in other industries, Oleksii has completed EPAM programs and believes that self-belief is half the battle and the rest depends on skills, perseverance, and a willingness to learn new things.

In addition to some minimal technical knowledge, a beginner in DevOps should have well-developed communication skills and speak English at least at the intermediate level, as English is the lingua franca of the technology industry. Work on improving language skills and practice as much as possible.

Now, let’s talk about the technical starter kit.

It is impossible to imagine the work of modern DevOps engineers without cloud technologies. Consequently, I recommend that future colleagues begin by studying one of the top 3 cloud platforms: Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP). Consider that integrating and utilizing the unique capabilities of each platform can considerably increase your work efficiency. Based on my experience, I suggest the following sequence:

  1. Get started with AWS. Learn the basics of cloud computing using AWS services and practice developing simple projects.
  2. Move on to GCP. Expand your knowledge by exploring GCP, focusing on containerization and Kubernetes.
  3. Build skills with Azure to enrich your experience with different cloud platforms.

After getting familiar with cloud platforms, I recommend moving on to CI/CD tools, in particular:

  • Jenkins, GitLab CI to automate application development and deployment.
  • Docker and Kubernetes for containerization and orchestration.
  • Ansible and Terraform for configuration management.
  • Prometheus and Grafana for monitoring, high availability, and application security.

Today, artificial intelligence is becoming an indispensable instrument for system engineers. AI-based tools, such as GCP Duet AI, provide tangible benefits, including assistance in solving non-standard project tasks. Sometimes, AI acts as a mentoring support, offering solutions that can help specialists grow and develop. This is crucial given that DevOps engineers often work alone or in a small team of engineers.

Recommended reading:

  1. Jennifer Davis, Ryn Daniels. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. The book introduces the reader to technical, cultural, and managerial aspects of DevOps culture and explains how to organize work so that software development, support, and use are enjoyable.
  2. Evi Nemeth, Garth Snyder, Trent R. Heine, Ben Whaley, Dan Mackin. Unix and Linux System Administration Handbook provides a comprehensive guide to the basics of administration and networking.
  3. Eric Chou. Mastering Python Networking: Your one-stop solution to using Python for network automation, programmability, and DevOps. A guide to Python, the ideal language for network engineers. The third edition of the book has been updated to Python 3. It includes information on analyzing network data using the ELK (Elasticsearch, Logstash, Kibana, and Beats) stack and Azure Cloud Networking, as well as using Ansible and the pyATS and Nornir frameworks.

I recommend the YouTube channel TechWorld with Nana, where you can find beginner-friendly training videos for DevOps in an entertaining and easy-to-understand format.

Here are some online courses worth checking:

Also, do not miss open Cloud&DevOps enrollments and events at EPAM University.

What the books and manuals WON’T tell you?

DevOps engineers should develop their own algorithms for solving complex and atypical tasks within a project. I suggest the following sequence for that purpose:

  1. Understand the problem — clearly define what you are dealing with.
  2. Research information — collect all available data and knowledge about the problem.
  3. Formulate a hypothesis — suggest possible solutions based on the information you have gathered.
  4. Test the hypothesis — see if your assumptions work in practice.
  5. Select the best solution — choose the most effective one from all the tested options.
  6. Implement the solution — implement the selected solution in the project.
  7. Test and optimize — after implementation, test and optimize the solution, if necessary.

Last but not least, learn how to learn continuously and tirelessly. This ability will help you effectively deal with challenges that often arise in the work of a DevOps engineer. Remember that tackling complex tasks brings immense satisfaction and inspiration, paving the way to new achievements.