Navigate Up
Sign In

The MITA DevOps Journey

Publication Date: Aug 29, 2019
 


Written by James AttardJames Attard.jpg

What is DevOps

DevOps, a term coined in Europe back in 2009, is a set of software development practices that aims at bridg​ing Software Development with Information Technology Operations.


DevOps Goals

DevOps goes hand in hand with several project management practices such as Lean and Agile and share similar goals. These include:

1.    Increased frequency of software deployment

2.    Increased velocity in deploying software features to the market

3.    Decreased software errors and bugs

4.    Shorter time to recover from software failures

DevOps Benefits

In a recent study conducted by Puppet Labs and the DevOps Research & Assessment (DORA), it was found out that organisations that adopted DevOps practices, have not only reached the above goals, but directly experienced a greater competitive advantage compared to their peers (Figure 1).

devops article.jpg


Figure 1 - State of DevOps Report (Puppet Labs, 2016)

MITA Approach to DevOps

MITA is currently transitioning towards a DevOps culture. Before rolling out its DevOps strategy, we embarked in an exercise to identify which DevOps practices yielded the most value. The approach was based on a very well-known model known as CAMS, referring to the Culture, Automation, Measurement and Sharing dimensions of the DevOps journey.

Using this model, we based our DevOps vision on the idea to foster a culture where we all respect each other; optimise and automate our processes to reduce the likelihood of errors; measure and improve every process; and to disseminate lessons learned, collaborate and share ideas.

In this regard, MITA has setup a team of specialized architects, known as the DevOps Working Group. Having this type of organizational structure ensures an effective change catalyst and a closer alignment with the Agency’s strategy.

Our DevOps strategy is made up of five different phases, as defined below. These phases are not linear per se` and most of them spin off in parallel as required.

First Phase: Enforce Version Control Practice

Version Control refers to the principle of having software source code and infrastructure configuration stored in a central repository that allows tracking changes, accepting changes to go to release cycles, and to allow collaboration between multiple teams.

Version control has been enforced at MITA for a number for years, at least from a software perspective. Given the opportunity given to us through the hybrid cloud to utilise infrastructure as code, the same version control rigour will need to be applied.

This is a fundamental stage, because failure of executing it successfully will warrant failure in the overall DevOps strategy. In this phase it is important to define and disseminate a common set of technology practices and re-engineer business processes that allows teams to work together and that allow change management practices, such as ITIL, to work in tandem with Agile processes.

Second Phase: Define a Standard Technology Stack

Having a converged and harmonized technology stack not only reduces variability and complexity, which in turn reduces organizational cost, but also helps at enforcing governance and infrastructure stability.

For this phase to be successful, both developers and operations should meet regularly to come up with a common set of tools and technologies. While the choice of tools is important, our ethos is to focus on practices rather than the actual choice of tool. This is to help us be technology agnostic so our business process can plug and play with other tools with minimum effort.

Third Phase: Combine Change Management with DevOps

A common failure among organizations that try to adopt DevOps is when they trade off their current change management practices with DevOps, or perhaps, give up on DevOps methodologies because they struggle to see where it fits in the Change Management process.

The actual reality is that Change Management practices, such as ITIL, have evolved and can be easily used in tandem with DevOps principles, such as Agile.

The idea is that within development and staging environments, the software development and IT Operations teams should adopt DevOps principles such Continuous Integration and Continuous Delivery, to deploy frequently and in shorter times, and without manual approval.

Once the code is ready to be deployed to live environment, the Change Management process kicks in and a manual approval is required, along with other processes, as stipulated in an ITIL lifecycle.

This two-stage process guarantees fast releases without compromising on governance and control.

Fourth Phase: Infrastructure as a Code

This phase goes hand in hand with the previous phases and in fact, kicks off as early as the first phase. The aim here is to treat infrastructure configuration and provisioning in the same way we traditionally treat software code.

Therefore, all the previous DevOps principles apply – from version control, to continuous integration and delivery. Moving towards an Infrastructure-as-a-Code (IaaC) mindset allows us to automate orchestration of infrastructure systems.

Given that at MITA our infrastructure is increasingly moving towards the Cloud, it is more intuitive to treat infrastructure as a set of lines of code. We are also moving towards a micro service approach where even client services can be treated as code.

The advantages are several – from guaranteeing repeatability and predictability, hence reducing human errors; to simplifying QA testing processes. IaaC further provides a gateway towards more advanced concepts such as AI based self-healing architectures.

Fifth Phase: Business Processes Engineered for Self-Services

Once all the previous phases are fulfilled, the organization will naturally incline towards providing end-to-end self-service architectures. Most bottlenecks are removed – product teams can orchestrate infrastructure, and operation teams can automate builds.

Work becomes less mundane, and manual work reduced. Engineers can shift their efforts from servicing customers to innovating and building more creative services.

Conclusion

Moving towards a DevOps culture was a necessity to improve our services and to keep up with today’s fast-paced, challenging demands. This article focused not only on the technical approach but also on the cultural aspects implied that one must keep into consideration, especially for a complex and mission critical agency such as MITA.

The efficiencies and improvements MITA will gain after having completed its journey towards fully adopting a DevOps approach will effectively translate into a better user experience for all the citizens of Malta and Gozo.