DevOps is an approach to software development that emerged at the intersection of different disciplines. This culture is all about close interaction between employees from all departments and requires fundamental knowledge and skills in various areas such as development, quality assurance and testing, operations, architecture, and communications.
Volodymyr Tsap, SHALB co-founder and CTO, spells out the all-important knowledge required for DevOps. He has been running the company since 2009, and since then has been sharing his experience with aspiring DevOps engineers.
DevOps Required Skills: Fundamental Basics
A genuine interest in the subject is the best and most reliable type of motivation. If it retains your attention, and you’re ready to set aside time for self-education and upskilling after your work, you have every chance of becoming a true pro. If it seems boring to you, financial motivation will only have a short-term effect: most likely, you’ll be demotivated by it over time.
The DevOps technology landscape is evolving quickly. Being a sought-after specialist requires you to keep upskilling and monitoring new trends.
Keep going after failing
Failure is inevitable in a new and fast-growing area like DevOps. This culture is actively growing, and DevOps specialists have to experiment a lot and thereby make mistakes. It’s often the only way to find the best option to solve a task or problem. Don’t be afraid to make mistakes; instead, see them as necessary steps on the path to experience.
DevOps brings together specialists from various areas: operations engineers, managers, developers, testers, and businesspeople. The ability to easily communicate with others and express your thoughts in a clear and logical way will be a big advantage in teamwork.
Mathematic is said to be the sister of music, but it’s no less related to DevOps, as math is the basic foundation of all computer sciences. If you’re good at this discipline, you’ll understand the essence of most DevOps processes and build the logic for solving tasks more easily.
Fluency in English
Fluency in English is vital for DevOps specialists. Understanding texts will enable you to use English-language resources, and spoken English will let you communicate with colleagues around the world, unlocking access to the international DevOps community.
On good terms with Google
The ability to find the right information online is one of the most important skills of a good engineer. Google will help you save time and optimize your workflow. If you make a mistake or face a new type of task, the Internet will help you quickly find useful recommendations from people who have previously faced similar tasks.
If you want to get an idea of how computers and networks work, Vladimir Tsap recommends starting with books by Andrew S. Tanenbaum:
- Modern Operating Systems
- Computer Networks
- Distributed Systems
These resources will help you better understand computer engineering as a whole.
Linux for DevOps
The Linux OS is used by world-famous companies such as Google, Amazon, Apple, Red Hat, and other giants. Although the use of some tools (for example, Microsoft Azure), don’t require you to have deep knowledge of Linux, knowing the basics will be a serious edge.
The basics of Linux:
- Introduction to Linux by the Linux Foundation
- NDG Linux Unhatched Course by Cisco
- Linux Tutorial by Ryan Chadwick
These books will give you an idea of how to use the command line and interface and help you learn the basics of installing the OS and configuring its software.
Extra information about the OS:
- NDG Linux Essentials Course by Cisco
- The Linux Commands Handbook by Flavio Copes
- Linux Server Course by freeCodeCamp
These resources will help you dive deeper into your understanding of Linux, learn basic command combinations in Bash, learn how to work with code, and set up servers powered by Linux.
Programming skills and experience in this area will make it easier for you to communicate with developers and become an additional benefit in your career.
First and foremost, we recommend paying attention to programming with shell or Bash and using the CLI. These skills will help you write automation scripts and run them on remote servers. The Mendel Cooper Advanced Bash Scripting Guide will show you how to master all that.
Programming language for DevOps is the second all-important thing and, as far as this is concerned, Python for DevOps is a go-to option. System administrators will benefit from knowing this scripting language. Every day, developers face many routine tasks and standardized solutions for many of them are available in Python libraries. We recommend the O’Reilly book Learning Python by Mark Lutz for those new to programming.
Finally, Git is a tool that’s useful if you work with infrastructure code and repositories, and is an industry standard in version control systems (VCS). For a comprehensive introduction to Git for DevOps, see tutorial guide Pro Git book written by Scott Chacon and Ben Straub.
Databases in DevOps are the repository of most application states and the key to a successful system. Understanding how they work will help you solve many tasks more efficiently and avoid the hassles that occur due to wrong configuration, such as block errors, incidents, data leaks, and slow database queries. Learn the basics of database theory: database design principle and operation, security, backup, recovery, migration, and updating.
Summing it All Up
These are the basic skills that will help you get started in DevOps. By mastering this DevOps skill set, you’ll build a good foundation and will be able to master the requirements necessary for a professional engineer.