DevOps is really hot at the moment , senior developer/sysadmin are working hard to become a DevOps engineer.
I truly understand the benefit of DevOps, which is directly linked to improve software development (Dev) and deployment (Ops), and I can say that it’s not an easy job.
Many of friends/colleges asked me how to become a DevOps engineer, which tools should I learn? how about Docker and Kubernetes? Does infrastructure automation part of DevOps? should I learn Chef, Puppet, or Ansible ….
I was casually surfing through internet and I come across this excellent GitHub page by Kamranahmedse, which shows a couple of useful roadmaps to become a front-end developer, back-end developer, a full-stack web developer and last but not the least, the DevOps Engineer.
The 2018 DevOps RoadMap for Developers
The 2018 DevOps RoadMap I am talking about:
Now, let’s go through the RoadMap step by step and find out how can we learn the essential skills require to become a DevOps guru in 2018:
1. Learn a Programming Language
Obviously and I assume you guys definitely know one of the three main programming language i.e. Java, Python, or NodeJS, Go
2. Understand different OS concepts
This is where the Ops part coming in, earlier it was solely supported guys and sysadmin people who were responsible for knowing about OS and hardware, but with DevOps, now developer also needs to know them. You at least need to know about Process Management, Threads and Concurrency, Sockets, I/O Management, Virtualization, Memory storage and File systems as suggested in the roadmap.
3. Learn to Live in terminal
For a DevOps guy, it’s important to have a good command in command line, particularly if he is working in Linux. Knowing some Linux shell like Bash, or Ksh and tools like find, grep, awk, sed, lsof, and networking commands like nslookup and netstat is mandatory.
If you feel you need to refresh these commands and tools then you should join the Linux Command Line Interface (CLI) Fundamentals course on Pluralsight.
Btw, If you need more choices and want to become master on shell scripting, you can also take a look at my list of best courses to learn shell scripting.
4. Networking and Security
Gone are the days of isolation, in today’s world, everything is connected to everything which makes networking and security very important. In order to become a good DevOps engineer, you must know about basic networking and security concepts like DNS, OSI Model, HTTP, HTTPS, FTP, SSL, TLS etc. In order to refresh this concept, you can take a look at this course on Pluralsight.
5. What is and how to setup
As a DevOps champion, you should know what is set up in your machine and how you can set that up, only that you can think about automating it. In general, a DevOps engineer should know how to set up a Web Server like IIS, Apache, and Tomcat. He should also know about Caching Server, Load balancer, Reverse Proxy, and Firewall etc.
6. Learn Infrastructure as code
This is probably the most important thing for a DevOps engineer and this is a very vast area as well. As a DevOps engineer, you should know about containers like Docker and Kubernetes, Configuration management tools like Ansible, Chef, Salt, and Puppet, Infrastructure Provisionings like Terraform and Cloud formation. Here are some of my recommended courses to learn these tools.
7. Learn some Continuous Integration and Delivery (CI/CD) tools
This is another very important thing for DevOps gurus and champion, i.e. to set up a pipeline for continuous integration and delivery. There are a lot of tools in the CI/CD area e.g. Jenkins, TeamCity, Drone etc.
But, I strongly recommend learning at least Jenkins, as it’s most widely used and probably the most mature CI/CD tool in the market. If you don’t know Jenkins then this course is best to start with.
8. Learn to monitor software and infrastructure
Apart from setup and deployment, monitoring is another important aspect of DevOps and that’s why it’s important for a DevOps engineer to learn about Infrastructure and application monitoring.
There are a lot of tools in this space e.g. Nagios, Icing, Datadog, Zabbix, Monit, AppDynanic, New Relic etc. You can choose some of them depending upon which one is used in your company like AppDynamic and Nagios.
9. Learn about Cloud Provides
Cloud is the next big thing and sooner or later you have to move your application to the cloud, hence it’s important for a DevOps engineer to at least know about some of the popular Cloud Providers and their basics.
While AWS is clearly the leader in the cloud it’s not alone, Google Cloud and Azure are slowly catching up and then we have some other players like Heroku, Cloud Foundry, and Digital Ocean.
Thanks for reading this article so far … Good luck on your DevOps journey! It’s certainly not going to be easy, but by following this roadmap and guide, you are one step closer to becoming a DevOps engineer.