Today, where there are almost as many approaches to digital transformation as there are enterprise software vendors, Docker refocuses its strategy on providing the best unified container management platform for DevOps. Docker’s key value proposition is to enable developers to build an application once and then deploy it to any Kubernetes-driven private or public cloud, where DevOps teams and IT operations can manage it throughout its lifecycle and move it to another location at any point in time. However, Docker also aims to absorb traditional enterprise applications, edge and IoT workloads, big data apps, blockchain, and serverless functions, both on Windows and on Linux.
Before jumping into the analysis, we need to understand exactly how and when Docker makes money. Based on information provided by Docker, we know that the company currently has approximately 500 paying customers. These are customers that have purchased licenses and support for the Docker's commercial container management platform, Docker Enterprise Edition (Docker EE). These customers purchased Docker EE perpetual or subscription licenses to take advantage of a set of services added by Docker on top of the free Docker Community Edition Platform. These services all aim to simplify and security container management by offering features directed towards developers, operators, and security and compliance staff. While developers have historically been the driving force of Docker adoption, developers lean toward using the Community Edition, as they see Docker as a tool to help them ship software to the operations team. The operations team, specifically the application platform managers, need a solution to run dockerized apps alongside traditional VM-based and bare-metal applications. This is where Docker EE comes in with the ambition of offering a management platform that lets operators govern container security, compliance, availability, performance, infrastructure integration, and release automation.
Only if IT operations buys into this paradigm of centrally managing containers, independently of data center and cloud infrastructure, can Docker win in the market place. Competing vendors such as VMware/Dell/EMC, Red Hat, Cisco, IBM, and Microsoft are throwing their weight behind convincing enterprises of the superiority of a single operating model with a fully integrated stack managing bare metal, VMs, containers, PaaS, and FaaS. All five of these vendors emphasize the value of remaining technology independent when modernizing applications, instead of fully focusing on containers. At the same time, cloud vendors such as Google Cloud, Amazon Web Services, and Microsoft Azure aim to convince customers of the value of running applications on their fully managed container services (AKS, EKS, GKE.)
Within the previous month, we have observed a number of major partnership between enterprise software and infrastructure vendors on the one side, and major public cloud vendors on the other:
These are two significant partnerships that we have to keep in mind during our analysis.
At DockerCon 2018, Docker made three major announcements that underline the company’s commitment to dominating containers in the same way VMware dominated the early years of VMs. Is this a realistic goal or is Docker aiming too high, driven by the ambitions of its VCs?
Steve Singh, Docker's CEO, made clear that the company's mission is focused on enabling customers to get the most out of their internal and external development teams. Singh describes Docker's key goal as the enablement of developers to “focus on writing code and nothing else”. This may sound trivial, but typical developers spend approximately 30-40% of their time on assistance of product deployment, configuration, testing, debugging, and support challenges. Singh says it right when he states that only a coding developer is a happy and productive developer.
(Image source: blog.docker.com)
Docker Desktop constitutes Docker’s attempt to tie application developers closer to the Docker EE platform. Developers love their Docker Compose, but by now, they can use the compose function with any other Kubernetes management platform, such as Red Hat’s OpenShift, Rancher, or Cisco’s Container Management Platform. By enabling developers to select turnkey application templates or to click together their own custom application stack that can be opened, edited, and deployed straight from within their IDE of choice and then deployed to any Kubernetes cluster managed by Docker EE, Docker strategically tries to tie together the immensely popular Docker development platform and Docker’s path to revenue, the Docker EE product.
Which developer would not want to just click together the required stack for auto deployment and then later, ship that same stack with his or her latest code changes included, directly to the CI/CD pipeline. Developers can then use their timesaving to create their own best practice application templates to share across the enterprise. This centralization of application templates would enable security and compliance staff to review and certify these templates for specific use cases. This would turn Docker EE into a collaboration and compliance hub across the entire enterprise. This is great for development teams, but locks the overall organization into the Docker-way of managing containers. While the application itself will still continue to run when Docker EE is uninstalled, customers would need to go through an extensive evaluation and maintenance process to move to one or more competing vendors.
VMware: VMware is fully focused on making the intuitive argument of implementing a single operations model for the entire application stack, whether this stack is deployed to bare metal, VMs, containers, PaaS, FaaS, or public cloud services. While the VMware solution is in its infancy, VMware, Pivotal, and Dell are able to offer an interesting and much more integrated alternative to the Docker EE value proposition of centrally managing a global container layer.
Microsoft: While Microsoft participated in the DockerCon keynote, the company aims to establish its AzureStack hybrid cloud solution as the on premise bridge-head for the time when Windows Servers alone are becoming irrelevant. Of course, Microsoft’s sales team will try hard to convince customers to run their .NET applications on a full Microsoft stack, instead of “risking” the adoption of Windows containers on Kubernetes, managed by Docker. In short, in this partnership there is much more at stake for Docker than there is for Microsoft.
Red Hat: Red Hat has now repositioned its OpenShift platform as a full stack cloud management solution, with a distributed storage layer included. Red Hat has also partnered with Azure and IBM Cloud to enable customers to operate fully managed OpenShift on these respective clouds. Additionally, OpenShift is further along in terms of supporting the service mesh idea, where developers can connect to external application services with their container and VM-based apps, and manage the resulting service mesh app through a single interface.
IBM: IBM has its own multi-cloud strategy and product portfolio and therefore should not show much interest or commitment to proactively supporting Docker EE. As one of the founders of the idea of providing application and infrastructure patters, IBM is propagating customers use IBM patterns, as they are independent of the deployment model, while also able to run on Kubernetes.
AWS: AWS is in the middle of a “race up the stack” with Azure and Google Cloud and needs to differentiate its managed Kubernetes services (EKS and Fargate) from these two competitors. In other words, unless there is something that Docker has to offer in return, AWS has little to no reason to show much commitment.
Google: The fact that Diane Greene, Google Cloud’s CEO participated in the Cisco Live Keynote in parallel to DockerCon also shows that Docker cannot count on significant commitment form the side of Google Cloud.
In short: Only if Docker manages to absorb significant business will any of these vendors commit to fight on their side. Otherwise, they will be happy to use the Docker runtime and provide their own multi cloud management platform, where customers pay them instead of paying Docker.In short: Providing development teams with a set of standardized building blocks (templates) to get started and allowing them to ship their apps directly to Docker EE is a good move.
If you only look at one single slide to get the gist of DockerCon2018, it would be the following.
Docker EE as the unified deployment target for any application across any operating system and cloud (Image source: blog.docker.com)Docker aims to abstract and commoditize mainframe, bare metal, clouds, and edge devices by adding its Docker EE platform on top, as a centralized application container management layer. Docker EE now interfaces even with managed container platforms such as AKS, EKS, and GKE, abstracting away these platforms' differences and consistently providing its compliance, security, networking, and pipeline automation capabilities across data centers and clouds. This enables customers to freely move applications between clouds and data centers, provided they are using Docker EE to manage the application and the multi cloud infrastructure.
Providing a central consistent stack to manage apps, deployment processes, runbooks, security, and infrastructure sounds like the holy grail of enterprise computing. At EMA we see too many enterprise customers taking application and cloud silos as a given and we frequently encourage these customers to stop accepting these silos, as they are slowing down DevOps and business processes. Typically, the more applications are modernized within an organization, the more this organization requires a centralized management layer to ensure compliance, security, performance, availability, and consistent release automation.
If Docker wants to establish Docker EE as the standard container management platform, the company will need to seek out viable partnerships with the large cloud and infrastructure vendors. Currently, these vendors are waiting to see Docker's next moves, while working on their own strategies.
Kubernetes 1.9 and 1.10 offer beta support for Windows containers and experimental support for Hyper-V containers, however, there is a long list of restrictions, as of the time of this analysis (June 19, 2018), many of them network and security-related. The public can track bugs and feature progress on a specific Githab page (Windows Special Interest Group).
(image source: blog.docker.com)
What's in it for Docker: For Docker, Windows support on Kubernetes was low-hanging fruit, due to Docker EE's existing ability to manage Windows containers on its own Swarm orchestrator. Docker is now the first container vendor to manage .NET applications on Kubernetes. This underlines the company's ambition to become a one stop shop for any kind of container application.
What's in it for Microsoft: .NET is used by 40% of enterprise developers today, but the .NET developer community has not yet adopter Windows containers to a significant degree. To make .NET development sticky in a container world, Microsoft needs to actively support innovation in the container management space. However, we need to remember that Windows and .NET are no longer playing key roles within the Microsoft portfolio, as they have been replaced by Azure. Even SQL Server now runs on Linux, showing that Microsoft is gradually giving up its Windows fortress.
In short, while the Docker story of running Microsoft and Linux containers peacefully side by side sounds excellent, enterprise customers will only leverage this capability if they know that Microsoft stands behind it. Of course, Microsoft would strongly prefer customers to run containers on their own AKS and (soon) AzureStack platform, instead of spending project funds with the competition. Also, Kubernetes 1.10 offers beta support for Windows containers, with full support expected by the end of Q4.
The container management and DevOps automation market is difficult as customers can approach the same problem from numerous different angles. Here are the most important ones:
This will be an interesting market to watch.