Azure Resource Manager Promises Better Container Orchestration
Microsoft says it will make it easier to create and manage clusters of Docker hosts.
With increased use of containers to package applications comes the increased problems of deployment and management. Those problems are compounded when containers are used in cloud scenarios. And Microsoft, being one of the largest public cloud providers in the world, is starting to come up with solutions for its platform.
Amid the slew of announcements at this week's AzureCon (a series of Channel 9 videos released by Microsoft outlining milestones and the future of the company's enterprise cloud service), Microsoft revealed how its Azure Container Service will simplify the way organizations build, configure and manage clusters.
Specifically, Microsoft announced the Azure Container Service Resource Provider for the Azure Resource Manager (ARM) and released a preview of its new Azure Quickstart Templates, which are available for download on GitHub.
Making the Azure Container Service Resource Provider for ARM is noteworthy because ARM is the new canvas for deploying and managing virtual machines on Azure IaaS. Microsoft recently rolled out ARM as an alternative to and intended long-term replacement for the Azure Service Manager (ASM). Microsoft describes ARM as a much more agile way of deploying and administering virtual machines and containers to Azure than the current ASM.
That's because ARM has a simpler API set than the existing ASM APIs, which power functions such as the Azure portal and are baked into all the Azure tooling, said Michael Collier, a Microsoft cloud solution architect who spoke Tuesday at the Visual Studio Live! developer conference, taking place this week in Brooklyn, N.Y. (Like this site, Visual Studio Live! is produced by 1105 Media.) While ASM isn't going away, Collier indicated Microsoft is emphasizing its development efforts on ARM.
"You will see a lot more focus on Azure Resource Manager going forward," Collier said. "It's where everything is happening and not much innovation is going to be happening with the legacy [Azure Service Manager] API."
The Azure Container Service is the outgrowth of Microsoft's work with Docker and Mesosphere to allow for the deployment and management of scalable clusters of hosts where containerized applications can be deployed, orchestrated and managed, explained Ross Gardler, an Azure program manager at Microsoft, in a blog post. "By leveraging ARM, Azure Container Service will make it easy for you to create and manage clusters of hosts pre-configured with Docker, Apache Mesos, Marathon and Docker Swarm," Gardler wrote. "This work couples Azure's hyper-scale and enterprise-grade cloud with proven open source technologies to deliver the foundation for the container deployment, orchestration, and management service any team building container apps will need."
While he underscored that the initial goal of the Azure Container Service is to ease the building and configuration of clusters using either Docker and Docker Swarm for code compatibility, and orchestration and management tools such as Marathon, Chronos and Apache Mesos to ensure scalability to tens of thousands of containers, Gardler explained that the to-be-released Azure Container Service Resource Provider for ARM will let IT pros define and manage the resulting clusters using the ARM APIs. That will make the configuration much simpler, he said, because of the knowledge it requires.
"Our Resource Provider will abstract away much of this complexity," Gardler said. "Those thousands of lines will be reduced to tens of lines for default configurations. This simplification means fewer configuration errors when deploying and managing these complex clusters. This new Resource Provider will also allow you to utilize Azure features such as integrated tagging of resources, Role-Based Access Control (RBAC) and the Azure management portal. The result is that you can take advantage of the enterprise-grade features of Azure while still maintaining code portability from the orchestration layer up."
In addition to scaling software, Gardler said it's critical to scale hardware. Hence, Microsoft will leverage the Azure Virtual Machine Scale Sets (VMSS), a service that instantiates functions such as create/delete/update on a group of identical VMs through a single API call. "For Azure Container Service those identical VMs are the agents on which containers will be hosted," he said. "Since all VMs in a VMSS have the same configuration, VMSS supports rapid auto scaling of VMs."
Jeffrey Schwartz is editor of Redmond magazine and also covers cloud computing for Virtualization Review's Cloud Report. In addition, he writes the Channeling the Cloud column for Redmond Channel Partner. Follow him on Twitter @JeffreySchwartz.