Information Technology
Article
News
Case studies
Trainer profiles

DevOps - the main principles

Technologia
by Technologia
Technologia
DevOps - the main principles

Initially DevOps is a movement specific to computer engineering whose goal is to combine software development with the administration of IT infrastructures. Hence the name DevOps: Dev for Development and Ops for Operations.

The implementation of a DevOps practice in the company is generally initiated from two possible sources:

  • Either it is an initiative of the I.T. manager or even of the company's top management, convinced of the benefits of this change and who wants to embark his team on this path. In this case, we speak of a sponsor.
  • Or it is the team members who want to convince their hierarchy of the benefits of the methodology and therefore put forward, at their level, the advantages.

Origins

DevOps is inspired by many continuous improvement approaches, such as the Toyota model or the Agile movement. These methods aim at reorganizing production methods in order to optimize and get rid of everything that is not necessary, in favor of creating value for the customer. Hence a certain proximity to Lean as well.

Objective

To simplify, we can say that DevOps is a practice that can be implemented via monitoring and automation software. The objective is to bring together those who develop applications (developers, analysts...) and those who operate them (system and network administrators...). All this to significantly reduce the development life cycle and improve the quality of delivered software.

The goal?

To bring value to users (in the broadest sense).
Where the Agile method facilitates communication between the customer and the development team, the DevOps method facilitates communication between the development team and the operations team

Why use it?

Reduce time to production.
Establish a repeatable process.

Azure DevOps

One of the tools available to support your teams in implementing these principles is Microsoft's Azure DevOps. The solution offers a wide range of tools, both for managing deployments and projects. Moreover, the user is not limited to using other Microsoft tools (e.g. Java, Linux, Go, Android).

The strength of Azure is to offer a broad environment of the DevOps approach, where its competitors focus on certain aspects only. Like Jira which is at the project management level, sprint or Kanban boards, or Git which is at the code repository management level, etc.

Azure DevOps is divided into 3 main tools:

  • Azure Boards: Requirement management, iteration management
  • Azure Repos: Source code management
  • Azure Pipelines: Management of compilations and automatic deployments

The virtuous cycle

This monitoring and implementation process is a virtuous circle whose steps are :

  • List customer requirements
  • Translate requirements into user stories
  • Technical team starts iterations (Azure Boards)
  • The dev takes a story and starts development
  • Review the code (Azure Repos)
  • Compile the code
  • Validate with tests
  • Deploy artifacts to target environments (Azure pipeline)

By "artifact" we mean a piece of code that is developed, compiled and ready to be deployed (such as an .exe for example).

By "pipeline" we mean a series of steps that will be automated, and that will start according to a predefined trigger.

The keys to success

Together

For "it to work", there must be good collaboration between the teams, which goes without saying, since it is the very foundation of this method. The corollary is that you have to be ready and able to revise/increase the responsibilities of those involved: when a problem arises, it should not be attributable to a particular person (or team). Instead, it is everyone's problem and everyone must contribute to its resolution. Where once the Dev and Infra teams had opposing goals (to simplify, Dev wants to deliver quickly and cheaply, while Infra will focus on quality standards regardless of budget and time), it was easier to blame the "other team" for the issue. In this game, nobody wins, especially the company. With the increasing complexity of the applications to be developed, implemented and maintained, a synergy between all the players is essential.

Empiricism

The knowledge of the teams is based on acquired experience. It is this experience that will allow us to cultivate successes and limit failures. The famous a/b tests are the best known and most widespread example, even beyond I.T.

On a technical level

Having the most similar working environments (e.g. dev, test and prod) is also a key factor for successful delivery.

Benefits of a DevOps practice

Everyone, including the hierarchy, uses the same metrics and vocabulary. This way, everyone is aware of what is happening (progress, issues...) and of any needs.

This better visibility of the work allows for greater delivery, flexibility in case of changes and less risky deployments.

What not to do

Before embarking on a DevOps initiative, it's important to keep a few things in mind. First, it can be exciting to want to quickly change the way all of our applications are deployed. However, it is essential to start with a solid proof of concept, test it properly, and keep moving forward in small steps.

Then, changing the tool alone is not enough to get the full benefits of DevOps. You also need to review the roles and responsibilities of each member of your development and operations teams. Remember, the goal is to have them work together and share responsibility for software delivered to production.

Conclusion

The benefits of DevOps are numerous but they cannot be acquired overnight. A good implementation of this approach requires above all a real mobilization, both from the management and from the field teams.

If you are interested in this topic, we recommend :

DevOps: Applying the Fundamentals of this Approach

 

DevOps: leading the organization through its transformation

 

Contact us

To learn more about our new services or to talk to us about your skills development needs, contact Cyrielle Renard at 514-380-8237 or by email: crenard@technologia.ca.

Similar articles

See all our articles