The AWS re:Invent show floor in Las Vegas at the Sands Convention Center can take 20 minutes to walk. It’s the biggest cloud event of the year but still, what’s the buzz about? Docker, of course.
Unlike Google, AWS is expected to embrace Docker at its event this week. As GigaOm’s Barb Darrow pointed out, there are already signs of AWS support as illustrated in a tweet last week by Jeff Barr, perhaps most well-known for the evangelism he does for AWS and the hundreds of posts he has written on the AWS blog about its latest product news.
— Jeff Barr (@jeffbarr) November 4, 2014
What that means is anyone’s guess but it does show how different AWS views Docker in comparison to Google, which has gone to great lengths in explaining its own container engine technology and Kubernetes, the management system they have developed.
Google Container Engine
Earlier this week, Google Cloud Platform released new insights into how it envisions users will make use of the Google Container Engine (GKE), launched at last week’s Google Cloud Platform Live show. GKE — which draws on the open source Kubernetes project— allows users to create and launch portable Docker containers that can be managed in a cluster, said Brian Stevens, vice president of product management, Google Container Engine.
On Monday, Product Manager Craig McLuckie wrote a blog post to provide further clarification on how GKE intends to be portable across hybrid cloud and on-premise environments. In fact, Google says the whole motivation behind Google Container Engine’s release was to help customers who are looking for application development solutions that offer a high degree of mobility. To ensure portability is possible, GKE respects three core values, writes McLuckie:
- Container-based: McLuckie notes that decoupling application pieces from the operating system and infrastructure environment is what has made Docker such a popular container framework
- Modular: McLuckie insists that the use of Kubernetes as the backbone of the GKE means that everything is designed on a “rigorous and principled modularity” where each component can be unplugged and replaced
- Decoupled services: McLuckie acknowledges that developers need the ability to create hybrid cloud scenarios, that allow applications to be orchestrated as a series of micro-services hosted on a variety of multi-cloud and on-premises environments.
Being built on the open source Kubernetes project, “it also offers a high level of workload mobility, making it easy to move applications between development machines, on-premise systems, and public cloud providers,” Stevens wrote in a blog post at the time of the launch. Of course, the hope is that while container-based applications can run anywhere, “the combination of fast booting, efficient VM hosts and seamless virtualized network integration make Google Cloud Platform the best place to run them,” Stevens wrote at the time. It is a point McLuckie reinforces in his blog post today, where he suggests three scenarios where Google Cloud Platform can allow hybrid environments for testing and running applications (such as scaling out testing in the cloud where high throughput scale out testing can be charged by the minute, and then production remains on-premises).
Perhaps the news will give some reassurance to Docker ecosystem partners, who have been relatively quiet about the GKE release announcement.
Continuous integration tool, Shippable, is one of the largest Docker ecosystem partners at present, with around 20 to 25,000 containers in production according to CEO Avi Cavale, and is believed to be “the biggest Docker platform running in production at this stage”. Last week Shippable announced $8 million in series A funding to help them expand their engineering team and build out their product six months ahead of their roadmap schedule.
When software is built, it is usually built on one single machine, and that’s usually the developer’s laptop, Cavale said. “It is then pushed to an environment that mimics production. The real integration happens in this environment. It creates markups of a developer’s dependencies, and that’s when the real problems arise: when this is attempted in the architecture itself. “How do you actually figure out on whose box it was created? ,” he asked. “It’s painful to triage. Containers let us run that full test on a laptop. So I can run a full deployment before you merge it, so you know whatever you are merging is completely working.”
There is a propensity towards microservices when it becomes so easy to spin up a container, Cavale said. For example, developers are no longer doing big packet code drops. The systems required will evolve into smaller and smaller pieces that can run inside a container that can then be shipped.
“The focus is really on the developer workflow, how apps are built and how they are shipped.
“We focus on application lifecycle management: how do we build the shipping lines for containers,” Cavale said. “Enterprises have their own stuff, so there is a lot of things we have to do with integration and that’s what we are going to be focused on next.”
“Google have announced their cloud, and it is actually up to the developer to use whatever they want to choose. Then we create a standard way to deploy containers in the environment the developer has chosen,” Cavale says.
McLuckie echoed Cavale’s take on the un-opinionated nature of Shippable’s deployment environments, confirming that GKE is able to play nice with such Docker ecosystem partners: “Shippable is a continuous integration framework that let’s you build and deploy Docker containers. Shippable could be deployed either to a single unmanaged node (native Docker), or to a smart managed cluster (Kubernetes, or our hosted version Google Container Engine),” McLuckie said.
But Docker is not exactly singing GKE’s praises. In fact, the GKE news demonstrates how Google is telling a container story that puts little emphasis on Docker and more so on a generic “container” approach. It’s even arguable that Google is confusing the Docker story. This is certainly evident in the messaging. Google is pushing the name “Google Container Engine” which s strikingly similar to the “Docker Engine,” which Docker, Inc. has been marketing.
It shows how the two companies are competing in the container space. The news over the past week makes it arguable that GKE is disrupting the Docker momentum by positioning itself as middleware that can manage Docker containers.
The Docker View
GKE is a further validation of the Docker ecosystem and its growth, believes David Messina, vice president of marketing with Docker Inc., the commercial arm of Docker. But he was skeptical about how truly portable GKE will be with the containers it creates.
“The endpoint from our standpoint is still portability. The Google Container Engine is based on Docker containers, but it is basically a solution for the Google Cloud Platform.”
More worrisome for Messina is the confusion that can ensue from Google calling their alpha release product a Container Engine at all.
Messina sees the heart of the Docker open source project as being the platform that can be used to build and ship containers. And that platform is the Docker Engine.
“So the Google naming convention — in my experience speaking with customers — is that it is already confusing. It is a Google Cloud Platform specific solution for orchestrating specific Docker containers. It has nothing to do with building, shipping and running Docker containers overall.”
Maybe this is why reaction and commentary on the Google Cloud Platform announcement has been so minimal from within the Docker community to date. Even the demos presented throughout the GCP Live event did little to tip the hat in the direction of Docker, with few details previously available on how Google Container Engine will work as part of the wider Docker ecosystem. With this week’s blog post, Google is seeking to position itself as a platform for Docker containers that can orchestrate, manage and monitor applications without constraining the developer environment.
Does that jive with Docker’s strategy? Not really. Docker has aspirations to be a platform of its own and is building out its own tools to manage containers in cloud services.
And the AWS ecosystem is ready to embrace it. There are several startups here that are talking about Docker integrations with news expected from AWS in the days ahead. The AWS community gets Docker and they love it. Why? Ease of use, flexibility, etc.
How Docker fares under the bright lights has already been a surprise. They have been continually doubted with questions about its business model. For its part, Docker is viewed by many as a company that has interest in its own tools over those in the Docker ecosystem. As Google wants its own orchestration environment to control the containers, so does Docker want its own technologies that the enterprise adopts.
As for AWS? It appears to be fine in giving Docker the support it needs to build its own platform. How that will play out in the long run is the big question everyone at re:Invent would love to have answered.