If 2016 was the year of the container in general, and Docker containers in particular, 2017 is shaping up to be about container management. The Cloud Foundry 2016 Container report highlighted that organisations are moving rapidly to explore and adopt containers. Of the 53% of companies surveyed who have deployed or are evaluating containers, 16% have already mainstreamed their use. Another 64% expect to mainstream their use of containers in the next year.
As the number of containers in a system grows, so the challenges of portability and extensibility multiply. Your micro-service, so easily developed in a container, must interface to multiple other micro-services, potentially running on different clouds. Lack of common management tools and APIs between the various public and private clouds makes it very difficult to develop a micro-service once that can be run anywhere.
If Xebia Labs is predicting the arrival of “next gen platforms”, what is a platform? The best description I have heard was given by Sam Ghods, a co-founder of Box. He said “a platform abstracts away a messy problem so that you can build on top of it”. There are already several platforms out there like Cloud Foundry, Openshift and Apprenda. However, these platforms primary goal was to provide functionality first and abstraction second, if at all. Often, they will be optimised for a particular public cloud or types of apps and become almost proprietary in nature.
A new breed of container management tools like Kubernetes, Docker Swarm and Mesosphere has emerged with facilities that can now, or will soon be able to, provide a single dashboard view of resource utilisation, auto balancing instances and database management across multiple clouds. Existing PaaS providers are also looking to enhance their abstraction capabilities, either through their own developments or by partnering with people like Kubernetes.
The simplification of the development and deployment of micro-services and apps, offered by these new platforms, will drive a surge in the use of containers. The danger is, that in the rush to use containers these new automated management systems will allow poorly designed services or inappropriate use of containers out into the wild. Some commentators are pointing to the possibility of some IT departments putting whole legacy applications into a container to help ease patching and compatibility issues moving forward, or pre-populating containers with existing code that effectively means each one is supporting a full version of the operating system.
The IT industry has been here many times before. Back in the 1980s 4th Generation languages offered much faster, automated development and deployment. The problem was that they didn’t automatically generate better systems, but they could generate bad systems faster. Containers are made for DevOps, but the development and operations teams have a duty to come together, to guide management decision making on the most appropriate use cases for containers and the best management tools to support them.
The use of containers, facilitated by powerful new container management tools will accelerate the development of cloud native apps. The fact that you can put almost anything into a container doesn’t mean that you should. You still must evaluate what applications to move to the cloud when, decide when containers are an appropriate development and deployment mechanism and then, ensure best practice is followed in developing the services you put into the containers.
Percipience lives and breathes this environment and have helped major organisations move down this path. Sign up to our newsletter to keep up to date as we to delve further into the implications arising from Xebia Labs predictions for 2017, or call us for a no obligation discussion to understand how we can help you on your journey to the cloud.