DevOps Introduction
Tags: devops
Published: 2023-06-11 14:31:04

## **Overview**

_**DevOps**_ is the use of collaboration, automation and continuous practices to achieve continuous delivery of high quality software. It's a paradigm shift from traditional software development.

DevOps pervades everything from deployment and testing of software to the architecture of the software itself.

### DevOps Lifecycle

**What is the DevOps lifecycle look like?** To get concrete about the tasks involved, it looks at software development in eight phases-- plan, code, build, test, release, deploy, operate, and monitor. 


_DevOps Life Cycle is a rapid-release, multi-phased SDLC with a strong feedback loop._



![Lifecycle](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3hi1hl413fn747e0at15.png)



First, _agile development_ is a bit of a predecessor to DevOps. It's an approach to software development that emphasizes a lightweight, rapid release life cycle.

Second, _Continuous integration_ is the practice of developers integrating all of their work together as soon as possible in the life cycle. For example, if I push a change to code, it should automatically build the whole system with that change and run a suite of automated tests.

Third, _Continuous delivery_ is the practice of quickly getting code changes from developers to users. For example, if I push a change to code and it passes all of the automated tests, I should be able to seamlessly push that change to QA and production environments.

Finally, benefits of adopting DevOps, it encourages the culture of collaboration, it makes for higher quality technology, and it enables better flexibility around the business. All of the hype around DevOps is because software developed with traditional methods just can't keep up with software developed with DevOps.


![CI/CD platform](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zfaregey7ofy8il0qi5i.png)


**_DevOps as a service_**

_DevOps as a service - CI/CD platform for developers to automate their SDLC_

To get an idea of the DevOps ecosystem, let's take a look at an example DevOps workflow. 

1: A team could plan out their coding process on software such as Jira to track issues to fix and features to implement.

2: Then they'll manage code versioning with git and commit to a centralized repository in GitHub or GitLab. 

3: From there, they can build their code with a program like gradle or maven and test it with a program like Selenium. 

4: Once they've arrived at code they want to deploy, it might be containerized with Docker and rolled out to infrastructure via an orchestration tool like Kubernetes. The infrastructure itself could be provisioned by Terraform and configured by Ansible.

5: As the application runs, it could be monitored by a program like Grafana. A full cycle of this can be run monthly, weekly, or less based on the business. 

Finally, a CI/CD program like Jenkins could tie it all together by allowing one phase to automatically trigger another. Obviously, that's just an example, and it'll vary widely per team and per project. But what you might note is that there are lots of moving parts here. And figuring out how to integrate them together on a given platform is non-trivial.This is where DevOps as a service comes in. 

The idea of DevOps as a service is basically to prepackage all of the necessary tools together and put a single pane of glass in front of them. So it collapses the DevOps workflow into a single silo and provides lots of pre-built automation. 


![paradigm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hh8588n657cstuvaaasa.png)