Container technology is being considered at most enterprises as a way to boost the portability, agility, and more rapid delivery of applications. However, managing and scaling container-based applications is still a major challenge, and needs to be addressed.
Those are the key takeaways from a recent survey of 711 IT managers, published by Cloud Foundry Foundation. The survey confirms that containers are being used as a stepping stone towards continuous delivery practices in organizations. Fifty-three percent are using or evaluating containers. At this point, 16% actually have containers in production, but 64% expect to have containers in mainstream production use within the coming year. So expect a great deal of activity on this front -- if the technology is easier to use, and if there's associated business value.
The Cloud Foundry survey finds most enterprises are using containers as application development environments, with many of the remaining users looking for containers to provide a versioned runtime environment. Benefits seen so far include easy version control (37%) and a consistent environment from development to production (36%).
However, increased container adoption raises new concerns about managing containers at scale. A concern from current users is that containers increase the complexity of a technology deployment, with 82% saying that "containers can be a challenge to get to scale,"and 80% saying that "except in simple use cases containers are complicated." Containers alone are not enough. In fact, 84% say that "managing containers without a PaaS/cloud application platform would be a challenge" for them.
Another concern is that containers will be "too complex to integrate into existing environments" without a platform. Similarly, 92% of users say containers alone are not enough for an application development platform that delivers velocity at the speed they desire.
In a separate article published in Service Technology, Roger Stoffers, a solution architect with HPE, also addressed these concerns, noting there are four areas where more industry work is needed:
Containers need standardization. This is important for purposes of portability across environments and platforms. Stoffers cites the Open Container Initiative (OCI) as a good first step.
OCI states that its mission is "developing standards for the container format and runtime that will give everyone the ability to fully commit to container technologies today without worrying that their current choice of infrastructure, cloud provider or DevOps tool will lock them in. Their choices can instead be guided by choosing the best tools for the applications they are building."
Container solutions need to be packaged for easy consumption. Stoffers urges cloud providers to "offer certified container images in a marketplace offering more security and ease-of-use to the deployment of platforms and software, resulting in greater ability to offer services and applications as a commodity." He notes that many tools and applications could be offered in containers.
Containers need management -- and orchestration. Stoffers also observes the need for "standardization of monitoring and management control" that should be part of container management or container orchestration. "This is a concept where clusters of containers are monitored and managed together as a single distributed application," he explains. This is particularly important as enterprise IT environments get more complex.
The Cloud Foundry survey suggests that platforms -- and PaaS offerings -- may play a role in achieving this ease of management. A large segment of respondents (45%) rely on a provider-managed or self-managed platform to run their containers. Only 15% rely on self-managed orchestration tools -- "underscoring the finding that managing containers at scale is complex, but that complexity can be reduced by implementing a platform," the survey's authors point out.
Containers need configuration. "Configuration management issues arise when an application is decomposed into a group of containers," Stoffers points out. "Often only specific versions of specific containers work well together, resulting in the need for effective baseline management of containers. A central container registry could play a key role, as the pace of changes is considered high, especially in a DevOps environment."