At DockerCon Europe 2018, held in Barcelona, the core announcements included the preview of container-based migration tooling for .NET and Java applications, support for digital transformation efforts and technology integration projects, the launch of Docker Desktop Enterprise, the open sourcing of Docker Compose on Kubernetes, and the announcement of the Cloud Native Application Bundle (CNAB) specification in collaboration with Microsoft.
Steve Singh, chairman and CEO, opened the conference keynote by sharing research from IDC's 2018 Container Infrastructure Software Survey, in which 76% of respondents stated that their company is running mission-critical applications in containers in production. Software developers are part of the economic engine of the world, said Singh, and "digital transformations" are the new normal. Accordingly, the future of Docker is focused on offering end-to-end "security, agility and choice" for enterprise engineers, via container-powered platforms that are built upon open source.
It was evident from the copious amounts of live demonstrations within the keynote that Docker is investing heavily on the legacy application migration component of digital transformation. Attention is also being focused on providing an "easy on-ramp for engineers new to the Docker ecosystem" (and on a related topic, an informal survey by Singh at the opening keynote revealed that over 50% of the audience was attending a DockerCon for the first time).
Elton Stoneman, developer advocate at Docker, and Lee Namba, professional services practice manager at Docker, demonstrated a simple method for containerising a legacy .NET application, using Image2Docker (I2D). They also showed how to migrate the base image from Windows Server 2008 (which undergoes "end of support" in January 2020) to the more modern Windows Server 2019.
Gareth Rushgrove, product manager at Docker, and Amn Rahman, data engineer at Docker, also provided a preview of a "docker assemble" command that automatically generated a Dockerfile after being pointed at an existing Java application. This generation and application build process looked somewhat similar to that of a typical buildpack process (as seen in Platform as a Service offerings like Heroku and CloudFoundry), and also resulted in OS, Java platform and application dependency metadata being generated and stored as labels within the resulting container image. This metadata, Rushgrove stated, is essential information for managing dependencies and determining application provenance within a software supply chain, particularly in relation to security and risk management.
Patrick Chanezon, member of technical staff at Docker, and Darrin Solomon, client architect at Mulesoft, demonstrated a migration process consisting of containerising applications using Docker and integrating them as "microservices" via generated API layers and SOAP to REST transformations using Mulesoft's range of tools. Not everyone was convinced of this approach, with Sam Newman, author of Building Microservices, musing on Twitter that the number of API layers proposed may add excessive (accidental) complexity, such as that seen within the Gartner's PACE Layered Application Strategy.
The explicit acceptance/codification of different types of API as outlined in one of the slides is a major problem in the enterprise, and is reinforced by all the PACE layered stuff out there.
It flies in the face of what Microservices are aimed at. Rather than building tooling to accept and codify the status quo, it would be nicer to see vendors find ways to challenge this
Docker also used this flagship European event to launch Docker Desktop Enterprise, which builds upon the functionality provided by the open source Docker Desktop application that enables the Docker Engine with Swarm and Kubernetes to be installed on the desktop via a single binary. Docker Desktop Enterprise allows automated installation, and provides policy options to allow system administrators to "securely configure, deploy and manage development environments that align to corporate standards and practices." A technical support SLA is also included from Docker.
Key new features of Docker Desktop Enterprise for application developers include configurable version packs that "instantly replicate production environment configurations on the local desktop", and the Application Designer interface allows for template-based workflows for creating containerized applications; "no Docker CLI commands are required to get started". Administration teams and application architects can also use the tool to present developers with "application templates" designed specifically for their team, "to bootstrap and standardize the development process and provide a consistent environment all the way to production."
Previously only available within Docker Enterprise, Docker Compose on Kubernetes was also released as open source. In response to the question "why is Compose needed when Kubernetes already uses declarative configuration files", Rushgrove states that although the Kubernetes API is "amazingly general purpose", it is quite large, which "can lead to a verbosity in configuration, which then needs to be managed by you, the developer". To use Docker Compose on Kubernetes a custom controller must be installed; the latest version of Docker Desktop comes with Kubernetes and the Compose controller pre-installed.
The final headline announcement at DockerCon EU was the Cloud Native Application Bundle (CNAB). To address the current challenge of cloud native application installation and configuration -- and the general tool sprawl and management hassle of working with various configuration languages -- Microsoft in collaboration with Docker and HashiCorp have proposed CNAB as "an open source, cloud-agnostic specification for packaging and running distributed applications." Chanezon has provided more details on the Docker Blog:
CNAB unifies the management of multi-service, distributed applications across different toolchains into a single all-in-one packaging format.The CNAB specification lets you define resources that can be deployed to any combination of runtime environments and tooling including Docker Engine, Kubernetes, Helm, automation tools and cloud services.
The previously released experimental Docker App tool, which aims to make Compose files more reusable and shareable, now also has CNAB support in preview, with a demonstration project available via the GitHub repository. Initial responses on Twitter were generally positive, although several people, such as Joe Beda of VMware (and previously co-founder of Heptio), noted that the project was "very meta" and potentially overly generic. Others, such as Darren Shepherd of Rancher Labs, commented that "CNAB is cloud native 'curl | sh -'", which is simple to run, with a well-defined interface, and is "secure if you trust the source, and it can do whatever the hell it wants."
In summary, this DockerCon provided a core message that Docker is focused on offering platforms, tooling, and support for enterprise migrations and digital transformation efforts. The history of the humble Docker container was acknowledged many times, and the celebration of engineers as "builders" was evident throughout both keynotes, but the technology shift has now been directed towards developers who are new to the concept of containers, or application developers who simply aren't concerned with platform implementation details.
Docker appears to be continuing to embrace open source, and is also attempting to engage with the wider community around standardisation for core points of friction within cloud-based software delivery, such as the packaging of applications and services. Time will tell how this move plays out alongside the commercialisation of open source by large public cloud vendors and the community building and special interest groups being developed by organisations such as the Cloud Native Computing Foundation (CNCF).