Skip to main content

Select your location

DevOps: The what, the why, and the how
 

Devops diagram

A proper understanding of the key concepts of DevOps can lead businesses to better operational alternatives and an increase in their overall operational efficiency. Regardless of how businesses implement DevOps, its key concepts remain the same.

The what

At its core, DevOps is an approach to deliver large applications. DevOps is a modern software development methodology, a culture. Dev refers to software application development, and Ops refers to the IT operations. DevOps focuses on automating workflows to produce quality software, iteratively, at a fast pace, this way increasing collaboration and communication.

 

The why

Enterprise applications are made of many microservices, end-user devices, and so on, whereas a DevOps approach is a must, in order to deal with the complexity. It is for this complexity that many failures occur during software development and delivery. 

In most cases, the goal is to have applications that are easy to use, high performing, [almost] immune to change. For each of these three factors, the focus is on enhancing the user experience; a business need that complements and favors the DevOps approach.

DevOps increases the feedback, the speed, the efficiency, and reliability of the software that goes to production — improving the way value is delivered to the end-user. 
The process of planning, developing, testing, releasing and deploying, in DevOps, is an iterative process that goes through the practices of continuous integration, continuous testing, continuous delivery, and continuous monitoring. These practices, and their importance are described in the section below.
 

The how

To understand the DevOps workflow we need to understand its main building blocks.

1. Continuous integration — is one of the key practices of DevOps. CI focuses on automating the build and testing stages every time team members commit to a version control. 

You can implement CI with different tools depending on your use case. Some of the tools for implementing CI are: GitLab CI, CircleCI, Travis CI, Jenkins, and so on. GitLab CI has pipelines for each production push with artifacts and jobs in the corresponding build and testing stages. 

The build stage of the application goes through automated builds when a push is done, either in your branch or in master. GitLab CI has its .gitlab-ci.yml file in which we specify the script to implement CI/CD from Docker Images. 

Continuous testing is a subprocess of CI, and it is usually done through different scripts written for unit tests, e2e tests, integration tests, or other tests; if they pass the pipeline passes.

2. Continuous Delivery — is what makes DevOps shine in its full capabilities. CD focuses on getting new changes from every code push into production environments after passing the CI pipeline. Those changes are then reviewed manually from users, developers, managers and so on, and if everything is working fine, they are merged into the main (usually master) branch.

Continuous Deployment has to do with automation of production deployments. While the production deployments are manual in Continuous Delivery, in Continuous Deployment they are done automatically. The deployment could be done in Kubernetes clusters. 

Final words

DevOps is a modern way of managing your application’s workflow. It is certainly not an essential requirement when it comes to smaller applications, but for larger, more complex ones, it is the best and the most feasible long-term solution.

DevOps has proven to increase the overall quality, reliability, and the speed you deliver your application to the end user. Companies like Netflix, Amazon, Adobe, Target, and so on, use DevOps and its tools to deliver quality products.

At Kin + Carta, we utilize DevOps to ensure continuous deployments and continuous testing so that the workflow of the project runs smoothly and the end product performs as expected.

 



Share this article

Show me all