How to speed up software development, deployment and maintenance in large organisations thanks automation
The Polsat Plus Group in collaboration with the architects from Mindbox has developed a set of good practices and ready-to-use templates that will allow speeding up of delivery of new software releases to end-users and facilitate their maintenance and development. They allow the implementation of more new functions in a shorter time, reduce the number of outages, and decrease the costs simultaneously.
The Polsat Plus Group is Poland’s biggest supplier of integrated multimedia services. It is a leader in the pay-TV market, with a leading position in the telecommunications and private TV broadcasting markets. It includes the Plus network operator Polkomtel Sp z o.o., Telewizja Polsat Sp z o.o., Netia S.A., and Grupa Interia Sp z o.o.
To sustain its market position while boosting its competitive advantage, the Group has commenced a broad digital transformation. One of its main themes is the transition to a new software development model and its delivery to end customers. This initiative, based on agile methodologies and the DevOps approach, enables the Group’s organizations to increase their speed and productivity while reducing costs.
The challenge: speeding up the transformation toward 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 delivery of better quality products to end customers at reduced costs.
In the new world of agile methodologies and DevOps approach, developers receive the resources they need automatically and instantly as long as it’s in line with company policy. All they have to do is describe the environment they need, and they have it at their disposal almost instantly. Moreover, 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 biggest and most complex systems.
Historically most of the processes related to the development, deployment, maintenance, and extension of applications in the Polsat Plus Group were completely manual. Only subsequently, along with the popularisation of virtualization and then of containers, it became possible to boost effectiveness in this area. However, quite soon, it became apparent that there was further room for optimization regarding the infrastructure and software development. Automation creates the possibility for faster deployment of Kubernetes clusters. The entire process does not require any human involvement on the operations side.
The Polsat Plus Group, like all other big organizations, 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. With such a partner, it is easier to make up for the time that passed.
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 that were attended by both the developers and infrastructure specialists from the Polsat Plus Group. The goal was to develop the most effective methods of collaboration, creation of environments, generation of code, testing, and production implementation, as well as 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, on the fly, collect information about the operation of an application.
The templates are parameterisable, allowing the commissioned infrastructure 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 system component that the other teams do not require. 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 appropriate resources will be made available. 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, the Polsat Plus Group 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 a need for human intervention.
The entire new environment is defined by code. Practically nothing has to be done manually. Even in an emergency, there is a code that describes in detail 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 anytime. Furthermore, in critical situations, these resources may be, in a simple way, extended with the public cloud.
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 run 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 over to other resources in another center.
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 before a change that resulted in the system malfunctioning. This means easier restoration of environments and simpler development of new ones.