DevOps aims to unify software development (Dev) and operations (Ops) through automation and monitoring at all stages of the software lifecycle. It advocates reducing the time between committing a change and deploying it to production while ensuring high quality. DevOps teams use tools like continuous integration, delivery, and deployment that Agile teams rely on, as well as configuration management, metrics, and cloud computing. DevOps has become more relevant with the rise of Agile, cloud applications, and use of off-the-shelf components that require specialized operational skills, requiring closer integration of operations specialists with development teams.
2. INTRODUCTION
• Aims at unifying software development (Dev) and software operation (Ops).
The main characteristic of the DevOps movement is to strongly advocate
• automation and
• monitoring at all steps of software construction, from integration, testing, releasing
to deployment and infrastructure management.
A definition proposed by Bass, Weber, and Zhu, is:
• DevOps is a set of practices intended to reduce the time between committing a
change to a system and the change being placed into normal production, while
ensuring high quality.
4. SIMILARITIES DISSIMILARITIES IN AGILE AND DEVOPS
• Agile teams rely on automated build, test automation, Continuous Integration (CI)
and Continuous Delivery (CD).
• DevOps teams often use all those tools and more, including the addition of
configuration management, metrics and monitoring schemes, virtualization, and
cloud computing.
5. WHY IT HAS BECOME RELEVANT NOW?
Rise of Agile
• The Scrum Development Team includes software developers and testers, but no
one from operations.
• The Scrum Product Owner deals with features and customers and doesn’t care
much about the operational side of things (It just has to work).
• When a Scrum team set up in this fashion starts to perform, it stresses the
interface between development and operations by continuously releasing new
software versions.
6. CONTINUED..
The cloud
• More and more enterprise applications are becoming web applications (or
mobile applications requiring web service backends), resulting in a software
development lifecycle which doesn’t end with shipping the software to the
customer.
• These companies now have to start providing a service instead of a product to
their customers and thereby become operators of their own software
7. CONTINUED..
The increasing use of off-the-shelve components
• When you develop web software, there are a number of components that you have to rely
on in order to get anything done: web servers, application containers, databases, etc. Such
components share an interesting property: they are not integrated into your software like
libraries or frameworks. Instead they provide an environment which enables your
software to run in the first place. The difference between a component like Tomcat and a
framework like Spring is that Tomcat needs a non-trivial amount of deployment,
configuration and maintenance of itself. The skills needed to do this properly are not
skills a typical software developer has. Take the aspect of networking as an example: not
only do you need to know the basics of networking (say, the difference between broadcast
and multicast), but also the current physical setup of your infrastructure (say, if there’s
more than one class D network).
• So, as products include more and more components that need to be operated
by specialists, the question of how to integrate these specialists with the development
teams becomes more and more relevant.
8. WHAT IS DEVOPS?
• DevOps is a software development approach which involves Continuous
Development, Continuous Testing, Continuous Integration, Continuous
Deployment and Continuous Monitoring of the software throughout its
development life cycle.