DevOps

DevOps is a combination of software development (Dev) and information technology operations (Ops). It is a fairly new term that has emerged from the collision of two major related trends:

  • The “agile infrastructure” or “agile operations”, created while applying Agile and Lean approaches to operations work.
  • The collaboration between development and operations staff throughout all stages of the development lifecycle.

In a traditional software development life-cycle process, it takes weeks for the Dev team’s work to be placed into production.

When the Dev team’s code is finally deployed into the Production Environment, occasionally unexpected errors or problems occur, because the Dev team is focused on writing code for its Development Environment, which is not identical to the Production Environment.

The Operations team are responsible for maintaining the uptime of the Production Environment. The increase of servers within the company becomes a challenge that affects how new code is deployed, which is why the Ops team usually require code deployments to be scheduled and are allowed only once a month in most cases. Once the code is deployed into production Environment, the Ops team is responsible for errors diagnoses or problems caused by the changes.

Therefore, adopting DevOps philosophy require a new mindset, tools, and skills.

DevOps can be implemented in 3 phases:

1. Automated Testing

This is the foundation of DevOps competency. This involves writing tests within the code so that every change in the code can be evaluated..

2.  Continuous Integration

Once we have an effective code coverage for testing, The entire testing process is then automated. The concept is based on testing the code and running it through every iteration possible in order to find out if it can create any bug in an automated way.

Jenkins is one of the most popular tools used to implement continuous integration.

3. Continuous Delivery

It consists of writing code in small chunks that are integrated, tested, monitored and deployed. The continuous delivery pipeline and tools are different for each organization. The idea of a pipeline is a series of phases each backed by a specific tool. It usually has six key phases:

  • Plan & write code: the Dev team plan and write code using Code Configuration Management tool such as Git.
  • Build & Test: while writing the code we can build and test with a tool like Jenkins.
  • Release & Deploy: they are tools ( such as Puppet and Chef) that help automate the process of delivering that code to a cloud environment ( such as Amazon web services, Heroku, etc.) or a server.

Serverless architecture is a new computing approach in creating systems into the cloud or third parties services instead of depending on servers. Docker is an example of serverless architecture.

Some benefits of DevOps include:

  • Increase the rate of software delivery
  • Faster time to market
  • Better business focus by automating the infrastructure
  • Higher software quality and efficiency
  • Fewer Bugs
  • Lower delivery cost

Recursos:

https://resources.collab.net/devops-101/what-is-devops

https://theagileadmin.com/what-is-devops/

What is DevOps? “In Simple English”

Leave a comment