As a person who moved for 9 years across different segments of IT , ITES and non IT fields, terminology like DevOps, Cloud , Agile Kubernetes etc sounded too technical and I felt this is unreachable for someone who is not from IT and to those like me who moved out of IT for a very long time. I was wrong until I related the concept of DevOps to real time situations and the idea behind such practices. Come let's break the hard shells of fear and ambiguity around these jargons and get to the bottom DevOps and its concepts.
Let's ask the utmost basic questions throughout the learning. What? Why? And How? Before I define what is DevOps, for anyone intending to move into IT, it is essential to understand how any product or a program is delivered end to end. SDLC( Software development life cycle) is the process that defines the stages and steps involved in every software delivery end to end in order to deliver a quality product to the customer. SDLC consists of a detailed plan which explains how to plan, develop,build, and maintain specific software. Below are the stages of SDLC:
Every phase in the above picture has more practices and protocols to be followed to be able to move to the next phase. Understanding SDLC is indeed important. However, we are not going to discuss in detail about it. Instead we want to know what lead to the birth of DevOps.
What was the issue prior to DevOps?
Prior to DevOps, development and operations teams do usually conflict. It was in 2007-08 that the Developers and Ops teams had different objectives and different metrics to gauge the progress of the product development. They worked independently with their own performance indicators, domains that resulted in faulty and unstable products.
- Development teams had to wait for the operations teams to create the right production environment.
- After the planning/analysis phase, we move to development stage. Only after development is done, the software is tested and then built, and then deployed. No tasks were performed simultaneously.
- The environment set up were different and Integration team had to spend hours just to sync the environment across, DEV ,TEST and operation teams in order to get the product running fine
- This greatly delayed the Software deployment process.With the fast moving IT industry, organisations cannot take the dent of delaying the delivery of software products.
Agile methodology was then introduced, characterized by building products using short cycles called sprints that allow for quick production and frequent revision. Yet there was something missing. The pressure is mostly on Development team and the System admins couldn’t contribute much with integration and deployment.
What is DevOps?
Devops(Development+Operations) is a culture /set of practices that combines the Development and the operation teams.DevOps focuses on Speedy delivery of a reliable,stable and secure product/Software to the client. This methodology emphasises on communication and collaboration across teams, and automation. To achieve this, DevOps makes use of various Automation tools that can greatly improve the process flow and infrastructure. It is not uncommon to confuse between agile and DevOps. Agile methodology focussed on collaboration, small and rapid product deliveries wheras DevOps is about bringing the Operation and Development teams together. Agile and DevOps go hand in hand.
How Devops benefits the IT business?
- Faster development
- Stable work environment
- Automation of repeated tasks
- Continuous delivery
- Fast and reliable techniques
I want to learn DevOps. Where do I start?
Basic, yet important question is to where and how to start learning DevOps.
Do not panic looking at the above picture. It is not necessary to learn all the tools and technologies in order to learn DevOps. To start with, Linux Administration is a must have skill. (Refer to this free course on Linux Administration)
One can learn the other tools and technologies once we start exploring different concepts of DevOps. It is good to have working knowledge on atleast one technology from each segment of the DevOps RoadMap.
|Concept||Requires knowledge on|
|Networking||Fundamentals of Networking|
|WebServer||Apache or Nginx|
|Database||NoSQL(MongoDb or Cassandra) ; SQL ( Oracle DB, MySQL, PostgreSQL)|
|Infrastructure provisioning||Terraform or AWS Cloudformation|
GCP Cloud Account( free membership works). DevOps lab set up requires multiple servers with minimum CPU and memory requirements and Google Cloud provides this configuration within the free membership.
MailServer. You may choose your Gmail and find out the outgoing and Incoming mail setting. This can be used to receive notifications whenever a Jenkins build is started.
Apart from the above basic requirements, each tool used in DevOps has its own infrastructure essentials. Click here for for detailed lab requirement for each of the tools.
Now that we know what is DevOps , in our next blog, we will discuss in detail about DevOps Principles.
Did you find this article valuable?
Support Cloudnloud Tech Community by becoming a sponsor. Any amount is appreciated!