Pre-Requisites to Learn DevOps
Tags: career, devops
Published: 2020-04-18 16:13:56

DevOps is ruling the world. Let me explain step by step - every company is regarded as a software company today, and every software company in today's world is looking for automation. DevOps is the base of automation. Software is evolving fast, from autonomous cars to airplanes, everything is managed by software. Software quality, quicker updates, and faster releases are the key factors that decide the company's fate, and hence DevOps has become a necessity rather than a transition. These are some of the reasons why people want to learn DevOps.

You are here, that means you are interested in learning DevOps. Okay, fasten your seat belts, will see what is important, and factors to consider before jumping into the DevOps ocean.

Basically, DevOps is a combination of two words/roles, Development + Operations, and it means you need to know what is Development and Operations first.

####What is Development?

Development in the software industry is referred to as a process by which software is created using a specific programming language and procedures. It involves writing programming code, which provides the required features and functionality to the software. It may also be called application development or software design.

####What is Operations?

Operations in the software industry include administrative processes and support for both hardware and software for clients as well as internal to the company. Infrastructure management, quality assurance, and monitoring are the basic roles for operations.

###What is DevOps?

In simple terms, DevOps is a methodology that came into existence from the agile and lean practices, and the aim is to bridge the gap between the Dev and Ops teams so they can collaborate and work as one to mitigate the possible confusion that usually happens between these teams. The confusion creates chaos, and chaos impacts the morale and performance of the overall organization. That is why the stress on culture started.

DevOps is a mixture of culture, process, and tools. All these three are interdependent. DevOps is not just practicing automation to bridge the gap between Dev and Ops. It is more about adding value to the organization, and there is more pressure on companies now to move faster and be more agile without compromising on security, quality, and reliability.

####DevOps benefits

* Improves deployment frequency

* Helps with faster time to market

* Lowers the failure rate of new releases

* Increased code quality

* More collaboration between the teams and departments

* Shorter lead times between fixes

* Improves the mean time to recovery

####DevOps culture

Employing the DevOps Culture creates a culture of unanimity, growth mindset, focus on change and innovation, set of procedures, and strategies for all the teams involved in the software development pipeline.

Faster deployments and feedback is important for developers, and they enable it through processes such as continuous integration, continuous delivery, and continuous deployment. Whereas the Operations team is more focused on keeping the site up and alive without having downtime, and it usually acts as a customer-facing team and has high responsibilities once the code is deployed to production. Hence, to mitigate the chaos, DevOps recommends Ops to adopt the same tools used in development everywhere - for integrating, testing and deploying infrastructure code, etc. This creates a common ground and brings both . developers and operations people more actively together in deployments and troubleshooting, further breaks down the barriers between these departments.

There are no hard and fast rules that you have to know certain things before starting your DevOps course. But, having some prior knowledge of the following items is good.

###Basic prerequisites to learn DevOps

* Basic understanding of Linux/Unix system concepts and administration

* Familiarity with command-line interface

* Knowing how build and deployment process works

* Familiarity with text editor

* Setting up a home lab environment with VirtualBox

* Networking in VirtualBox

* Setting up multiple VMs in VirtualBox

* Basics of Vagrant

* Linux networking basics

* Good to know basic scripting

* Basics of applications - Java, NodeJS, Python

* Web servers - Apache HTTPD, G-Unicorn, PM2

* Databases - MySQL, MongoDB

###Understanding DevOps process

While talking about DevOps, three things are important continuous integration, continuous deployment, and continuous delivery.
![CI CD DevOps](https://dev-to-uploads.s3.amazonaws.com/i/ay26el8rml0un3ehatrb.png)
Image credits: [BMC Software](https://www.bmc.com/blogs/continuous-delivery-continuous-deployment-continuous-integration-whats-difference/)
####Continuous Integration
Continuous Integration is a software development method in which the developers' code gets integrated several times a day. Whenever a developer checks-in the code, each time the change is verified by an automated pipeline(server) and gives early feedback, in case if there are any bugs.

####Continuous Delivery
Continuous Delivery comes after CI and it is the ability to introduce changes with every commit, making the code ready for production so that it can be deployed to production on demand and as a routine activity. Code changes can be like new features, bug fixes, updates, configuration changes, etc. One important thing to note here is to ensure safety checks, so the bugs get detected before they get promoted to the production.

####Continuous Deployment
Continuous Deployment is one step ahead from Continuous Delivery, here, every change in the source code by the developer is deployed to production just automatically, without explicit approval from a developer.
![DevOps process](https://dev-to-uploads.s3.amazonaws.com/i/44wavnpt3pk3j3luk2cz.png)
Image credits: [Analytics India Magazine](https://mk0analyticsindf35n9.kinstacdn.com/wp-content/uploads/2019/11/devops-process-analytics-india-magazine.png)

The core phases of the development lifecycle typically include a planning stage, followed by coding, building, integration, testing, release, and then deployment to the production environment.

###DevOps tools
![DevOps Tools 2020](https://dev-to-uploads.s3.amazonaws.com/i/p2b61x1rewbv32t2x62b.png)
DevOps tools enable DevOps in organizations. There are different tools you would like to know but will see some basic tools that are common as DevOps tools in the software development field.

* Plan: JIRA
* Build: Maven, Gradle, Docker, GitHub, GitLab
* Continuous integration: Jenkins, CircleCI, Travis CI
* Release: Jenkins, Bamboo
* Deploy: Ansible, Kubernetes, Heroku, Amazon Web Services, Google Cloud Platform
* Operate: Botmetric, Docker, Ansible, Puppet, Chef
* Monitor: Nagios, Splunk
* Continuous Feedback: Slack

DevOps has taken center stage in the software development field, and it is evolving every day. This blog post is too small, and we can write about DevOps so much because there are so many innovations happening around this field. Companies are experimenting with various ways to accelerate their DevOps process so they can win over the competition.

So many developers, test engineers, and people from other industries want to learn DevOps because of the importance it has received over recent years. Well, DevOps is a great career; you have made a good choice of choosing it as your career path, and we wish you all the very best. Happy learning:)

We are here to hold your hand and take you through your basics.

Learn from our new course ‘[DevOps Pre-Requisites](https://kodekloud.com/p/devops-pre-requisite-course)’
{% youtube surHun2kWOY %}