How to speed up software development, deployment and maintenance in large organisations thanks to using automation | Mindbox

How to speed up software development, deployment and maintenance in large organisations thanks to using automation

Customer: One of Europe’s largest media and telecommunications groups Tool: Agile, Devops Date: 2021

In collaboration with the architects from Mindbox, One of Europe’s largest media and telecommunications groups has developed a set of good practices and ready-to-use templates that will speed up the delivery of new software releases to end-users and facilitate their maintenance and development. They will enable the implementation of more new functions in a shorter time, reduce the number of outages, and decrease costs simultaneously.

 

The Group has commenced a broad digital transformation to sustain its market position while boosting its competitive advantage. One of its main themes is the transition to a new software development model and delivery to end customers. Based on agile methodologies and the DevOps approach, this initiative enables the Group’s organizations to increase their speed and productivity while reducing costs.

 

The challenge: speeding up the transformation towards the new software development model

The modern digital economy is based on applications. Therefore, boosting the effectiveness of the work of developers, cutting down the time to produce new software releases, and at the same time facilitating the work of IT operations specialists is of crucial importance for achieving business success. The ultimate effect is faster delivering better quality products to end customers at reduced costs.

In the new world of agile methodologies and the DevOps approach, developers receive the resources they need automatically and instantly as long as they align with company policy. They have to describe the environment they need and almost instantly have it at their disposal. Once they produce the code, they do not have to organize tests and ask for the approval needed to deploy the program in production. These activities are largely automated, and humans only verify and approve the effects of the operation of algorithms.

In this new world, the application architecture is based on microservices. Every application consists of multiple standard elements that are services that operate independently of each other. This allows changes to applications to be implemented instantly and seamlessly. While one microservice is being updated, the others can continue operating. No long-lasting maintenance windows are needed to improve even the most complex systems.

 

Historically, most processes related to developing, deploying, maintaining, and extending applications in one of Europe’s largest media and telecommunications groups were completely manual. Only subsequently, along with the popularisation of virtualization and containers, has it become possible to boost effectiveness in this area. However, it became apparent that there was further room for optimization regarding the infrastructure and software development quite soon. Automation creates the possibility for faster deployment of Kubernetes clusters. The entire process does not require any human involvement on the operations side.

Like all other big organizations, One of Europe’s largest media and telecommunications groups has strong and well-established IT structures. At the same time, it has to face the technology legacy built up over many years. Such situations typically require professional support provided from outside. It takes a good in-depth knowledge of the new technologies market and the experience allowing their production implementation. It is easier to make up for the time passed with such a partner.

The Group needed support in launching and executing the transformation in this respect. It has selected Mindbox as the partner and its mentor for this initiative. The cooperation plan involved the preparation of action templates and the development of best practices based on the case study of one of the company applications.

The solution: templates that speed up the provision of infrastructure and its management in an automated way

As part of the project, the architects from Mindbox have conducted workshops attended by both the developers and infrastructure specialists from one of Europe’s largest media and telecommunications groups. The goal was to develop the most effective collaboration methods, creation of environments, generation of code, testing, and production implementation, and its subsequent maintenance and upgrading.

The final deliverable was the templates and the code, allowing simple yet at the same time fast deployment of the developed standards.

A template is, in fact, code that, when launched based on defined values, starts a computing cluster consisting of a specific number of machines with defined parameters. Specific applications’ management settings apply to these clusters. They also run components that collect information about the operation of an application on the fly.

The templates are parameterisable, allowing the infrastructure being commissioned to be tailored to the needs of specific teams. One Group may require a cluster consisting of a bigger number of machines, and another will need a specific set of system components that are not required by the other teams. Other templates are used to provide an application for supporting the entire lifecycle of applications. It contains the code repository, the test system, and the deployment system.

For instance, when the team in charge of the VOD app wants to add new functions, they have to define what they need and the appropriate resources available to them. Then the developed code will be stored in a specific location, and the tests and the implementation will be performed in line with the company policy. All this is automated to the maximum possible extent.

The benefits: faster work, automation, better reliability, and reduced costs

In the end, one of Europe’s largest media and telecommunications groups may, with the developed templates, implement even over a dozen new functions a month, while beforehand, this was one or two a month. Also, the number of outages was significantly reduced as this new automated environment features an inbuilt capability to instantly restart a malfunctioning application without human intervention.

The entire new environment is defined by code. Practically nothing has to be done manually. Even in an emergency, a code describes how the infrastructure is to be restarted from scratch. All the processes relating to creating and managing an infrastructure related to launching the software created by developers are automated.

At the same time, the complete environment is fully scalable in every layer – physical, application servers, and the application itself. Also, the resources are fully democratized with the use of horizontal scaling. Because this environment is being built using many smaller and relatively cheap machines, it is much easier to expand, and new resources can be added at any time. Furthermore, these resources may be extended with the public cloud in critical situations.

This is also true at the application level. When suddenly many people start calling up an application, it automatically scales up to the relevant number of copies, all logically separate from each other. An app may be running as one or 50 copies, as required at a given moment.

Also, the increased reliability of apps is important. If the resources in one data center fail, the apps will automatically switch to other centers’ resources.

Last but not least, it is worth noting that the new environment also boosts control over any modifications being introduced. A state can be restored to a point from before a change that resulted in the system malfunctioning. This means easier restoring of environments and simpler development of new ones.