DevOps : Getting Started
Written by : Vaishnavi Nayak & Steve Mendis
Note : This article is mainly for people with a little understanding of the development lifecycle. Having some knowledge about the Agile Methodology would be a plus.
So, Let’s get straight to answering our first question, “What is DevOps?”. Here you’ll come across two things one is a boring definition and the other an example.
“ DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. “
BOOM! Scared already? Don’t worry we’ll try and make this simpler to understand.
Let’s try understanding this with a simple example. I’m sure most of you all must have used Netflix. Let’s consider that there are more than 10,000 movies on Netflix obviously there are way more than that. If a new movie is released on Netflix and their entire code was in a monolithic way then they would have to scale up every movie, which would not have been cost-efficient. Also, the movies which are not streamed at all will be scaled up which would be unnecessary. This is where the development team and the operation team came together and decided that we should have an individual service for each movie. So a movie that is not streamed a lot does not need to be scaled up and a lot of resources would be saved. For this, microservices architecture comes into existence.
DevOps is a mixture of development (Dev) and operations (Ops) which bridges the gap between these two teams. It enables roles such as development, IT operations, quality engineering, and security to co-ordinate and collaborate to produce better and more reliable products.
Does this add more questions to your mind? Like what is development, operations? Consider we have to build an e-commerce book store. To build this the Development team focuses on building the web application and tries to fulfill the user requirements. On the other hand, the Operations team focuses on the users getting to use a fast and bug-free stable system. They also make sure how many users can use a system at any given time.
Where did DevOps Originate from?
The seeds of DevOps were planted long ago and have been nurtured by forward-thinking IT experts in a number of disciplines. The two primary antecedents of DevOps are:
- Enterprise systems management (ESM) — The people involved in the initial phase of DevOps were system administrators, their main tasks were mainly configuration management, system monitoring, etc they also practiced the best practices which are now used in DevOps. To learn more about this click here.
- Agile development — DevOps can be interpreted as an outgrowth of Agile. It prescribes close collaboration of all stakeholders such as customers, product management, developers so that it rapidly iterates towards a better product. From this perspective, DevOps is simply extending Agile principles beyond the boundaries of the code to the entire delivered service click here.
Why DevOps?
- The operation and development team worked in complete isolation.
- After the design-build, the testing and deployment are performed respectively. That’s why they consumed more time than actual build cycles.
- Without the use of DevOps, the team members are spending a large amount of time on designing, testing, and deploying instead of building the project.
- Manual code deployment leads to human errors in production.
Tools
Behind every successful stage, there are a lot of tools that help in the smooth working of DevOps. Here are a few important ones:
Git
It is one of the most popular free, open-source version control systems designed to handle projects of all sizes, hence, it is a widely used DevOps tool across the software industry. Git allows us to track the progress of the work. We can save all the versions of the source code, and if necessary, return to a previous version. Git plays a major role in the continuous development of the DevOps life cycle.
Docker
Another important tool is the docker. Docker makes distribution development possible through ‘containers’ and automates the deployment of the apps. To make the application portable and more secure, docker isolates the apps into separate containers. The docker apps are OS and platform-independent.
Jenkins
It is a continuous integration server that can be used for testing. As a developer, it helps in finding and killing the bugs in the code. Jenkins offers a huge plugin ecosystem of about 1000 plugins which means, it can integrate with almost all the DevOps tools.
There are many more tools such as Ansible, Puppet, Chef, Nagios, Kubernetes, etc.
Note: We have not covered the DevOps architecture or lifecycle in this article. Please click here for more information on them.
USE CASES :
Use of DevOps in Network cycling
Deployment, testing, and rapid designing became ten times faster. It became effortless for the telco service provider to add patches of security every day, which used to be done only every three months. Through deployment and design, the new version of network cycling was being rolled out.
Benefits to Airlines Industries
With the benefit of DevOps, United Airlines saved $500,000 by changing to continuous testing standards. It also increased its coverage of code by 85%.
Bug Reduction Benefit of DevOps
DevOps has reduced the bugs by up to 35% and in many cases of pre-production bugs up to 40%. By using DevOps, Rabobank was able to provide better quality applications for their clients within less time because it massively reduced the time taken for regression testing.
If you liked this article please do share it. Also stay tuned for our next article where we’ll be talking about docker and it’s installation for Windows Home Systems. If you guys have any suggestions please do write them down in the responses.