More and more organisations are running applications in a containerised environment - but in practice, they often fall short when it comes to managing these applications. And that can have major consequences, for example when it is unclear what the results of a failing application could be. A lack of operational knowledge plays an important role in this deficient management. How can organisations and developers put a stop to inadequate management of their containerised applications?
The use of containers calls for a different way of thinking and thus a different manner of designing and developing. In fact, the same question is always at the centre: how can you encapsulate an application so as to keep the interference with other applications on the same server to a minimum? What’s missing in the response to this question is the management of the containers. The following four measures can help overcome that.
1. Draw up a quality plan
An important first step is drafting a quality plan before any application development work actually begins. This forces a development team to pose a number of essential questions. It is important that these questions are operational, and not functional, in nature. In the final analysis, it’s about the value that the application has to deliver. These questions include: how many requests does the application have to process, what actions must follow when a specific request comes in, etc. Also important: the development team should be responsible for the quality plan, not the management. Why? This is discussed in the next measure.
2. Get management and development on the same page
Developers and management have the same interest, but they often speak two very different languages. The quality plan is focused on reducing the misunderstanding between the two. Service Level Indicators (SLI´s) and Service Level Objectives (SLO´s) play an important role here, and must be included in the plan. Service Level Agreements (SLA´s) are drawn up by the business side - but the SLO´s form the basis for them. Developers who have clearly established in the quality plan the SLI´s and SLO´s of a yet-to-be-developed application make it easier for their management to draw up real SLA´s.
3. Set rules
One condition for effective application management is knowing how everything is supposed to work. That sounds easy, but in practice it still occurs far too infrequently. By setting a number of rules within an environment, one can observe whether everything is working the way it should. This means developers will still understand how the application is running within a containerised platform when an application shifts from the development phase to production phase.
4. Use external knowledge
When a technical problem related with the application is reported, one too often immediately looks for an external tool to solve it. That might work in the short term, but it doesn’t offer a scalable solution. Moreover, you then add a new variable to your application, or yet another system that has to be managed. It can also mean that a new collaboration with a supplier has to be entered into. So over the long term this results in more costs and greater complexity. A better (and more sustainable) solution is to give the team extra time so that they can reflect more systematically about the best way to structure an application. In doing so, they can be supported by experts in the areas of management and operations. Experts often also know what solutions within e.g. Azure and AWS can help with certain issues that engineers can run into.
Only when management - right from the start - constitutes an integral part of the development of an application in a containerised environment can organisations truly seize all of the advantages offered by containers.
Continuity Engineer and IT Consultant at Sentia. He cofounded the Kubernetes Community in Milan, Italy. He is interested in Cloud technologies and Software Engineering