Thu Dec 31, 2020
Ever since the DevOps term has been evolved in IT industry, it is gaining skyrocket popularity. Not only it is getting popular, organizations are also trying to adapt it as soon as possible to sustain in the disruptive market. Hence there is a lot of need of DevOps engineer out there with a handsome paycheck.
The DevOps Culture, principle and practices seems very easy to implement, however it is a very complex process in real because many tools has to be integrated together to create a devops platform. Transitioning to DevOps not only requires open mindset to accept new culture but also needs highly technically skilled professionals.
The DevOps is not just combining development and operations team together. It is much broader than this, i.e. the culture talks about the whole product delivery process until production deployment has been attained and the end user uses it. Being said that, the DevOps team needs each and every person (I would like say person rather resources) responsible for the product development and delivery including the UX developer, the back end developer, the DB engineers, the QA (all types like functions/performance/security), the system administrators, the stake holders and also the customer.
During my past experience (System Support/Monitoring/Infrastructure Engineering/SaaS/Platform Engineering) I have worked with teams of system admins, developers and quality assurance engineers in various projects and I understand that many of them would like to transit to DevOps roles.
In this post, I will try to provide information and learning path especially for the system administrators, what properties or skills they need to make a successful career in DevOps.
Dear System Administrators,
We have landed in an era of doing things faster, smarter and innovatively. This is the high time to unlearn and start learning the latest tools and technology to make yourself technically fit, so that your survival chances are higher.
I am trying to share the absolute points and the way to get into DevOps step by step. The only thing you must keep in mind is “Now or Never”.
Many of the administrators are confused or scared of the number of tools that has to be learned when they think of DevOps. First and foremost the fear has to be guttered. To become a successful contributor in DevOps team a “T” shaped skillset should be acquired.
I am sure if you are an experienced system administrator you must have expertise in Operating System Administration, Network Administration, Virtualization, Monitoring and some extent of the H/W Administration. These skills are your strong points to dive into the DevOps world. Before we proceed further I would like to explain how you can play a significant role in DevOps team. Take a look at the layers/categories of tools in DevOps.
Step 1: Cloud Computing
If you understand the stack above in the diagram, I am sure you are already have the initial skills i.e. the Infrastructure skills. If you are not familiar with the Cloud then that is your first step to get started towards the DevOps journey. AWS being the top player in cloud providers, others like Microsoft Azure, Google Cloud, Oracle Cloud, IBM Cloud are the top notch competitors.
Google Cloud Overview
Step 2: Scripting
I came across many system administrators who are hesitant to learn scripting or do coding. I bet you have to bare a hefty loss unless start with scripting. At least knowledge of Bash scripting is mandatory for the stepping stone of DevOps. If you are good at Bash scripting Python would be the next best choice. Refer the shellscrpit.sh to get started with shell scripting. For Python check Python for System Administrators
Step 3: Infrastructure As Code
As the number of servers are in rise the way it is being managed has changed. Infrastructure As Code is the technique to automate deployments, provisioning and managing the dynamic and disposable infrastructure required for the release pipeline. There are two types of tools gets used in IaC
Configuration Management tools are mostly used to maintain the state of the server post provision. Ansible being the trendy among all and having a quick learning curve takes the first place to be start with. Take glance Ansible documentation.
Step 4: Container & Container Orchestration
Virtualization was the game changer of IT Infrastructure in previous decades. The evolution of the container technology is the add on for to it. Docker is the leading container software widely used. With high usage of Docker, the orchestration tools like Docker Swarm, Kubenetes has been evolved and they are the must to learn items.
A easy start can be done here Docker – get started. Learn the kubernetes-basics
Step 6: Code Repository & CI/CD
Apart from all the above tools Code repositories/source control/version control tools are also required to understand the entire DevOps release pipeline. Git is the widely used tool at the moment to commit and version control the code. Start with this quick guide “Getting-Started- About-Version-Control” to understand the process of adding, modifying, committing the code to a git repository.
CI/CD is the heart and soul of the release pipe line. All tools mentioned above has are to be integrated in this to make the DevOps successful. There are many Ci/CD tools out there like Jenkins, Bamboo, TeamCity, CircleCI etc. Among these Jenkins is one of the widely used as it is an open source. Get started with this Jenkins handbook.
I have just tried to provide the quick steps to understand the important tools used in devops culture. I hope this will help you start the transitioning from system administrator to a successful devops engineer. Keep Learning.