GP - Fotolia
An expanded partnership between Docker and Microsoft centered on Azure could help developers more easily move from their local desktop development environments to deploying apps remotely in the cloud.
San Francisco-based Docker extended its existing pact with Microsoft at the company's DockerCon 2020 virtual event this week. New aspects of the partnership focus on integrating Docker more closely with Azure Container Instances (ACI), such that developers will be able to natively run Docker commands in ACI and manage how they switch from local development to a cloud container service, said Justin Graham, vice president of products at Docker, in an interview.
This approach provides greater developer productivity, and is just "way easier," Graham said. The companies also introduced tighter integration with Microsoft's Visual Studio Code to provide a better developer experience from local VS Code and Docker Desktop development to remote deployment in ACI, Graham said.
"The big thing is to see Microsoft and Docker being so closely aligned on improving the developer experience and giving people more options to run containers in the cloud," said Elton Stoneman, director at London-based Sixeyed Consulting, an independent consultancy on cloud, DevOps, Docker and Kubernetes. "Kubernetes has become the default choice -- but it's a complex platform with a steep learning curve, and it's great to have an alternative which builds on technologies that developers already love."
The Compose Specification
Moreover, the tighter integration with VS Code means developers can start new language-specific projects in Node.js, Python, .NET Core and C#, tap into the Docker Compose Specification and manage how they switch from local development to a serverless cloud container service while remaining in the Docker CLI user interface or VS Code, Graham said.
The Compose specification simplifies the code-to-cloud process for developers. The standard is used to define a complex stack in a single file and run it with a single command. This eliminates the need to build and start every container manually, which saves time, Stoneman noted.
Compose is now used by millions of developers and GitHub hosts more than 650,000 related files, said Ben De St Paer-Gotch, a principal product manager at Docker, in a blog post.
For Microsoft developers, Azure is typically the first choice for cloud deployments, but like all hyperscalers, the number of service offerings is substantial. It can be difficult to navigate, keep up with new features and products and understand the path from local development to production.
However, "the close integration with Docker and ACI -- particularly the support for Docker Compose -- means you'll have the option to run your apps in Azure, with all the scale and reliability you need, using the same simple Compose files you use in dev," Stoneman said.
Although ACI has been a viable option for running Linux and Windows apps in containers, developers had to model their apps differently for different environments, using Docker Compose for dev, and then ARM templates or scripts from the Azure command-line interface (CLI) to deploy to the cloud.
"You also had different tools and processes to manage ACI containers," Stoneman said. "Now you can use one set of technologies -- the Docker CLI and the Compose spec -- to define, run and manage containers in every environment."
An alternative to Kubernetes
Stoneman consulted with WindSim, a Tonsberg, Norway-based wind farm planning software provider, to help the company move its 15-year-old core application to containers with no code changes using ACI, he said.
The Docker/Microsoft integration provides an alternative architecture for enterprises that want to move their apps into containers and into the cloud, but don't want to tackle Kubernetes.
Elton StonemanDirector, Sixeyed Consulting
"I love Kubernetes myself -- it's powerful and flexible, the feature set is incredible and it's supported by all the major clouds -- but it's a lot for clients to take on," Stoneman said.
Thus, organizations need to look at "skilling up" developers and operators and dealing with the increased management overhead of running in Kubernetes, "but many are happy to do that to get a managed container runtime in the cloud," he said. "Deploying to ACI from Docker Compose gives them the same managed service without the Kubernetes ramp-up, so I like to be able to propose that."
The expanded Docker integration with Azure will become generally available in the second half of 2020.
Microsoft partnership marks broader goals for Docker
Docker spun off its enterprise business to Mirantis last year and restructured to focus on the developer experience with tools integrations such as this one, Graham said. The company had experienced a few Kubernetes-related missteps that impacted customers.
"We refocused the company last November and came out with a new strategy around helping developers build great apps through simplifying what we call the code-to-cloud middle -- between source control and apps running in a production runtime," Graham said. "We've placed our focus on the individual developer and the development team."
Earlier this month Docker entered into a partnership with Snyk to provide native vulnerability scanning of container images in Docker to help make the application development process more secure for developers.
Meanwhile, during his DockerCon 2020 keynote, Docker CEO Scott Johnston called Docker and VS Code two of the "most beloved" developer tools around and noted that amid the coronavirus pandemic developers are in demand more than ever to create cloud-native, microservices-based apps.
In addition, the closer integration between Docker and Microsoft also means developers can share their work via Docker Hub and do remote pair programming and real-time troubleshooting, Graham noted.