Comparing AWS Cloudformation and Azure Resource Manager

 In AWS

comparing-aws-azure

One of the major advantage of the Cloud is that it provides a Programmable Infrastructure and ecosystem. Automation or Orchestration of Cloud Infrastructure is easier because of its programmable nature. Cloud Service providers are providing Templates alias DSLs (Domain Specific Languages) for simplifying the automation. This blog outlines the details of Templates services offered by Amazon Web Services (AWS) and Microsoft Azure.

 

AWS Cloudformation Templates

AWS Cloudformation provides an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion through Templates. Some of the highlights of AWS Cloudformation are given below,

 

  • Cloudformation is a Separate service with in AWS and it provides option to build and deploy Cloudformation Templates.
  • Cloudformation Templates are used for repeating the same set of actions. The deployed resources are managed as a Stack.
  • Cloudformation allows to update or delete a Stack.
  • Cloudformation allows to view the topology of the deployed stack and allows to view the different resources with events.
  • Applies all IAM Rules applicable for resource provisioning.
  • Provides cost of the Stack.

 

Azure Resource Manager (ARM) Templates:

ARM Templates provides an easy way to create and manage one or more Azure resources consistently and repeatedly in an orderly and predictable manner in a resource group. It also provides option to define dependencies between deployed resources. Some of the highlights of ARM are given below,

 

  • Repeatedly deploy solution using Templates
  • Provides security, auditing, and tagging features to help you manage your resources after deployment.
  • Define the dependencies between resources so they are deployed in the correct order.
  • Applies access control to all services in resource group as Role-Based Access Control (RBAC) is natively integrated into the management platform
  • ARM template is a subset of ARM.
  • Provides cost of the Resource Group
  • Resource group can be locked.
  • Provides option for monitoring the resources within resource group
  • Support for Keyvault for password.
  • Allows Template linking other templates.

The table below compares AWS CFN and Azure Resource Manager Templates.
 

Cloudformation Templates ARM Templates
Template Format Support JSON, YAML JSON
Anatomy of Template Components Format Version
Description
Metadata
Parameters
Mappings
Conditions
Resources
Outputs
schema
contentVersion
description
metadata
parameters
variables
resources
outputs
Parameters Parameters are defined in the template to capture values during execution of the template. The following properties are allowed to be defined in CFN Template,

AllowedPattern

Allowedvalues
Constraintdescription
default
description
Maxlength
Maxvalue
Minlength
MinValue
NoEcho
Type
AWS Specific Parameter Type

Parameters are defined in the template to capture values during execution of the template. The following properties are allowed to be defined in ARM Template,

Defaultvalue
allowedvalues
minvalue
Maxvalue
minlength
maxlength

description

Datatype Data type is one of the property for a Parameter. The following data types are supported,
string
number
list
Commadelimtedlist
Data type is one of the property for a Parameter. The following data types are supported,
string
securedstring
int
bool
object
securedobject
array
Supported Services Almost all AWS Services or supported through AWS CFN. For a full list refer
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-supported-resources.html
All Azure services are supported through ARM. For a full list refer
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services
Support for Custom Resources Yes. Supports through AWS::CloudFormation::CustomResource Yes
Supported Intrinsic functions Fn::Base64
Condition Functions
Fn::FindInMap
Fn::GetAtt
Fn::GetAZs
Fn::ImportValue
Fn::Join
Fn::Select
Fn::Sub
Ref
Numeric Functions: add, copyIndex, div, int, mod, mul, sub

String Functions: base64, concat, length, padLeft, replace, skip, split, string, substring, take, toLower, toUpper, trim, uniqueString, uri

Array Functions: concat, length, skip, take

Deployment Value Functions: deployment, parameters, variables

Resource Functions: listKeys and list{Value}, providers, reference, resourceGroup, resourceId, subscription

Support for discrete
actions on individual resource
No (The templates are used only for provisioning). No (The templates are used only for provisioning)
Supported Configuration Management Chef, Puppet Chef, Puppet, PowerShell
Template Cost Provides estimated cost per template based on the resources within the template Provides estimated cost per template based on the resources within the template and option to track the cost incurred for the resource group.
Template Repository https://aws.amazon.com/quickstart/
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-applications-us-west-2.html
https://azure.microsoft.com/en-us/documentation/templates
https://github.com/Azure/azure-quickstart-templates
Template Designer AWS Cloud formation designer allows to build templates through Visualizer. Accessible through
https://ap-south-1.console.aws.amazon.com/cloudformation/designer/home?region=ap-south-1
ARM Visual designer allows to visualize the built templates.
http://armviz.io/designer
Management option CLI, Management Console, API, CLI, Management Console, API
Template Generator AWS Cloudformer which allows to generate CFN template from existing resources The resource group provides option to generate templates from existing resources
API create-stack
delete-stack
describe-stacks
cancel-update-stack
get-template-summary
list-stack-resources
list-stacks
set-stack-policy
signal-resource
update-stack
validate-template
wait
continue-update-rollback
list-change-sets
create-change-set
describe-change-set
describe-stack-events
describe-stack-resource
delete-change-set
describe-account-limits
estimate-template-cost
execute-change-set
get-stack-policy
get-template
Create template Deployment
Delete template deployment
get template deployment information
Cancel template Deployment
get template information
list all template deployment operations
list all template deployments
References http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html https://azure.microsoft.com/en-in/documentation/articles/resource-manager-template-best-practices/
Recent Posts
Showing 2 comments
  • aws training
    Reply

    I was surfing the web for AWS and I saw your Blog. I read a few of your posts and think they were awesome. Thank you.

  • logavanig
    Reply

    hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples.thank you for sharing this blog.

Leave a Comment

Start typing and press Enter to search