Whilst it’s nice to see the success of OpenStack in the enterprise, the community cannot rest on its proverbial laurels. Containers are a key target, which the OpenStack community and ecosystem need to focus on next.
An application packaging technology, that allows for greater workload flexibility and portability, support for containerized applications will be key to OpenStack moving forward, especially as enterprise interest intersects both Linux containers and OpenStack.
The success of containers should not be ignored. A study undertaken by451 Research estimates containers will be a $2.7 billion market by 2020, playing a prominent role in cloud technologies going forward. They are already being used to help solve real business problems and drive business value across a variety of industries. We see four main drivers for businesses deploying containers. To run apps better; to build apps better (particularly making use of microservices); to enhance infrastructure and take advantage of hybrid cloud; and to enact large scale business transformation.
At some point, containers will be universally portable but this isn’t the case yet. For containers to be truly portable, there needs to be an integrated application delivery platform built on open standards and providing a consistent execution across different environments. Containers rely on the host OS and its services for compute, network, storage and management, across physical hardware, hypervisors, private clouds and public clouds. The ecosystem is the key here, there needs to be industry standards for image format, runtime and distribution in order for universal portability to become possible.
This need is recognised by the industry and relevant communities who formed entities to define and evolve these standards, such as the Open Container Initiative and Cloud Native Computing Foundation.
OpenStack services -- like Neutron for networking and Cinder for block storage -- can already be abstracted and made available via containers and Kubernetes- (container orchestration) based platforms. Container technology enables the use of underlying resources to deploy, upgrade and scale the OpenStack control plane effectively. While this is important, as container-based infrastructure grows, it’s not as impactful critical as the second need: running containers themselves on the OpenStack “tenant” side.
While containerized applications are, at their core, applications, they have a different set of needs than the traditional, typical virtual machine-based cloud applications that one would usually see on an OpenStack-based cloud.
To make OpenStack more container friendly, we need to better expose the underlying plumbing of OpenStack, the networking, storage and management pieces comprising the framework, to container technologies, so that the value of the healthy OpenStack ecosystem accrues without any “tax”. Also, OpenStack services, such as Keystone for authentication or Cinder Block Storage, to provide persistent storage for stateful applications, can be leveraged by container based applications without the need to reinvent the wheel. We’re already seeing the community rallying around this, projects likeKuryr but these efforts need to be expanded and delivered as supported products in the future.
As history of computing has shown, “and” is the most powerful value proposition to customers to offer investment protection and business continuity. By focusing on bringing the worlds of containers and OpenStack together, the community can help get us to a unifying open infrastructure management layer that spans physical, virtual and containers thereby getting us closer to fulfilling the vision of an open hybrid cloud.