Devops

Dubai

Sherin Navas

“DevOps is the combination of cultural philosophies, practices, and tools that increases an

organization’s ability to deliver applications and services at high velocity.”

DevOps is a methodology. The idea of this methodology is to create a new mindset. A mindset

when developers and operations combine their efforts to achieve a common goal.

Traditionally, the development team could be roughly divided into developers  and operations

which includes administrators — sysadmins, network admins, database admins, and all other

people who know the infrastructure. The operations team is interested in keeping things stable

to minimize the chance of software conflicts. While developers mostly cared about new features,

new versions. The main problem with all the above was the lack of cooperation and

communication. As a result, the software couldn’t be delivered at a desired fast pace.

When you merge both these teams together on the basis of constant mutual support, we have

DevOps.

DevOps methodology allows delivering software frequently with minor alterable changes.


DevOps can be implemented in 3 phases:

Odoo image and text block

1. Automated Testing

Agile method and automated testing are the foundation of DevOps competency. This involved writing tests within the code so that every change in the code can be evaluated by whether the test failed or not.



2. Continuous Integration

Once we have effective code coverage for testing, The entire testing process is then automated. Jenkins is one of the most popular tools used to implement continuous integration. The concept is based on having a number of servers in the background 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 will then generate a report at the end of that process.



3. Continuous delivery

The base consists of writing code in small chunks that are integrated, tested, monitored and deployed.

The continuous delivery pipeline and tools for each organization is different. The key phases and the main tools used for the same are below.

      Plan &  code: the Dev team plan and write code. Tools such as Git is used for VCS.

      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.

Server less architecture is the newest computing approach in creating systems into the cloud or third parties services instead of depending on servers. Docker is an example of server less architecture. Docker works in conjunction with Puppet to make the code more portable which can be stored in multi-cloud for a better disaster recovery plan.

      Operate & Monitor: tools such as New Relic can be used to monitor everything.

Continuous Deployment describes when the software is deployed quickly into production since the team members make sure the application goes through complete automated testing.

Benefits

      Improved operational support and faster fixes

      Good processes across IT and teams, including automation

      Increased team flexibility and agility

      Happier, more engaged teams

      Cross-skilling and self-improvement

      Collaborative working