The DevOps ecosystem is growing fast since the last 5 years but I’ve always seen the same question that is somehow hard to answer in some lines: How to become a DevOps engineer? I recently created : A dedicated job board for the DevOps community and I am taking this opportunity to share a learning roadmap that could answer the same question. Jobs For DevOps 1 — Start By Learning About The Culture DevOps is a movement and a culture before being a job this is why cultural aspects are very important. Check my article to know more about this. The 15-point DevOps Check List 2 — Learn A Programming Language In my experience, a good DevOps engineer is someone who has skills in development and operations. Python, Go, Nodejs .. you have a large choice ! You don’t necessarily need to learn the same main language that your company use but programming skills are really nice to have. 3 — Learn How To Manage Servers One of the principal tasks that a DevOps professional do, is managing servers. Knowing how servers work is a must-know and to do this, some good knowledge about the hardware (CPU, architecture, memory ..) is needed. The other thing to learn is operating systems and especially Linux. You can start by choosing a distribution like Ubuntu. If you are really beginner with Linux, you can try it first in your laptop/desktop and start playing with in order to learn. You can also use , Amazon Lightsail or Linode to start a cheap server and start learning Linux. DigitalOcean 4 — Learn Networking & Security Basics You may probably say that these are skills for network and security engineers. No ! Knowing how HTTP, DNS, FTP and other protocols work, securing your deployed software, anticipating security flaws in the code and configuring your infrastructure network are things that you should know. Using Kali Linux could be a good way to learn networking and security. You can also learn by reading good books like . Kali Linux Revealed: Mastering the Penetration Testing Distribution 5 — Learn Scripting Even with the growing number of tools that could be an alternative to creating your own scripts, scripting is a must-know and you will need it for sure. In my experience, Bash is one of the most used scripting languages. Python is also a good scripting language that could be used to go fast while writing less code. Start by writing basic scripts and check online resources like . Awesome Bash 6 — Learn How to Install & Configure Middlewares Apache and Nginx are the most used middleware in the DevOps industry and knowing how to install and configure things like virtual hosts, reverse proxies, domain names and SSL will help you a lot in your daily tasks. Start by deploying Nginx as a web server for a wordpress blog then as a load balancer for two backend servers. 7 — Learn How To Deploy Software Once you know how to deploy and configure Nginx, you need to know how to deploy applications to a production server. Create a hello world applications using Python, Nodejs and PHP. Deploy these 3 applications. You can use Nginx as a reverse proxy for all of them. 8 — Learn GIT GIT is one of the versioning systems being used in the IT industry. You don’t need to be a GIT expert but this is a technology that will follow you through all of your DevOps experiences. GIT basics are well explained in the official documentation. is the book you really need to read if you want to learn GIT. Pro Git 9 — Learn How To Build Software Building comes before running. Building software is generally about running a procedure of creating a software release that could run in a production server. A DevOps professional need to know about this important part of the software lifecycle. Create an application in the language of your choice and check the different ways to install its dependencies and build your code. 10 — Learn How To Automate Your Software Factory DevOps is not about automation, but automation is one of the pillars of the DevOps business transformation. Once you learned how to build software, you can use tools like Jenkins to automate builds and connect your code to the code repository. If you are not familiar with all of this, read about Continuous Integration and Continuous Delivery. 11 — Learn Configuration Management Once things become more complex and once you will need to manage multiple environments and configurations, learning a configuration management tool will make your life easier. There are a lot of CM tools like , Ansible, Chef, Puppet ..etc and you can find online resource that compare these tools. In function of what you need, choose a CM tool and start learning it. Saltstack I wrote a book about Saltstack (Saltstack For DevOps), so if you are interested in this technology you can get the book . here 12 — Learn Infrastructure As Code IaC is absolutely important to automate your infrastructure and provision your environments with simple scripts or alternative tools. DevOps is about reducing the time to market while keeping a good software quality and IaC will help you on this. Choose a cloud provider (AWS, GCP ..etc) and you will find a lot of free online resources to start your infrastructure. You can also learn how to use “cloud managers” technologies, some CM tools like could help you provision infrastructure on AWS or GCP, otherwise if you need more go for technologies like Terraform. Saltstack 13 — Learn How To Monitor Software & Infrastructure A software deployed in production and the infrastructure hosting it should be monitored. Monitoring and alerting are one of the important skills you need to know. Zabbix, Icinga, Sensu, prometheus .. there are a lot of tools you can learn but start by comparing these tools and choose the one that fits your requirements. You can also consider learning how to deploy and use an ELK stack. 14 — Learn About Containers & Orchestration Containers like Docker are becoming a must-know skill ! You need to have good skills creating, building, deploying and managing containers in development and production environments. I wrote and I am sure this could help you learn Docker and more even if you are beginner. You can find the book . Painless Docker here 15 — Learn How To Deploy & Manage Serverless Applications Serverless is one of the most buzzing technologies of 2017 and sooner it will become a requirement in many job descriptions. AWS Lambda, Azure Functions, Google Cloud Functions, IBM OpenWhisk, or Auth0 WebTask, you have the choice to start learning one of them. You can also join my newsletter : An Independent Newsletter Focused On Containers & Orchestration. Shipped 16 — Learn & Share Learning is a continuous process and sharing your knowledge could help you learn more ! Join , a community of DevOps passionate and professionals where you can learn and share awesome stuff. DevOpsLinks 17 — Submit Your CV To Jobboards & Test Yourself One of the best ways to test if we have the required level to be accepted in a DevOps job is being interviewed and passing technical tests with recruiters and companies. If you fail an interview, try again and again and again, successful people failed on their way to Success. I recently started , a dedicated job board to the DevOps ecosystem. You can create an candidate profile , we also provide additional services like writing, optimizing and proofreading your CV. I can personally assist you if you need it. Jobs For DevOps here Connect Deeper If you resonated with this article, please subscribe to : An Online Community Of Thousands Of IT Experts & DevOps Enthusiast From All Over The World. DevOpsLinks You may be also interested in joining our newsletter , a newsletter focused on containers, orchestration and serverless technologies. Shipped You can find me on , or my and you can also check my books: , & . Twitter Clarity website SaltStack For DevOps The Jumpstart Up Painless Docker Don’t forget to join and submit your CV. Jobs For DevOps If you liked this post, please recommend it and share it with your followers.
Share Your Thoughts