Guest Post: Ercenk Keresteci – Principal @ Fullscale180.com
Deploying a multi node Couchbase Server cluster for the first time on many of the public cloud platforms could take a long array of operations that have to be carefully followed. With the new Azure Resource Manager (ARM), you can deploy a multi-node Couchbase Server cluster with a simple but powerful template on Azure cloud.
Why Azure Resource Manager (ARM)?
As the new features come to any software technology, utilizing them with higher abstraction levels becomes a need. Microsoft’s Azure platform is also seeing this trend. Just checking the service updates feeds is enough to see the fast pace the new updates and features coming to the platform.
Traditionally, provisioning Azure resources on the platform was through a set of published REST operations. For example, in order to create a Couchbase cluster with 4 VMs of size D14 will include calling the operations like the following (not an exhaustive list, pointing out important ones to make the point):
- Create 4 storage accounts (Size D14 maximum number of data disks is 32, so we need to use one storage account per VM when not using premium storage, because of the limits set in storage accounts performance targets). Call this operation 4 times,
- Create a cloud service,
- Create VM deployment configuration in XML, and make 4 VM deployments, thus call the operation for 4 times,
- Modify network configuration, call the get configuration operation once to bring the configuration over, modify it, and then call this to save back.
- And many more, depending on the scenario
A lot of the cases, the calls to those REST operations are not done directly, but through other client tools such as Azure PowerShell module, Cross-Platform CLI (X-PLAT CLI), .NET management libraries.
Microsoft had debuted the Azure Resource Manager (ARM) last year, which provided the administrators to provision Azure resources in a declarative way. ARM was limited to Azure WebSites and a few other resources when first introduced. Microsoft announced the preview for template based deployments of Compute, Networking and Storage resources during the Build conference in April. The template language, enables Azure users to declaratively associate multiple resource types and deploy them.
Full Scale 180 worked with Microsoft to develop some of the templates for deploying close to real life examples of common solutions in the market. Those templates can be found at github.com. A Couchbase cluster template is one of them. The example template allows Azure users to deploy clusters, using different VM sizes, implementing Azure and Couchbase best practices.
You can learn more about the template and various ARM templating tips and tricks at http://blog.fullscale180.com/building-azure-resource-manager-templates