Cloud adoption continues to significantly increase by every year, also looking at the future, we can assume that this will keep on increasing every year for next decade.
Although migrating to cloud is a major challenge in Cloud adoption but there are many other challenges aswell, as per recent survey given below..
Managing and deploying resource is one of the major challenges among all, One needs a expert knowledge to govern and manage resources, interms of AWS it is less complicated as AWS provides wide range of service for your deployment and management needs one of which is Amazon CloudFormation.
AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources.
Lets see what Cloudformation provides for being one of the most preffered service for deployments and management on AWS..
Infrastructure as code : Cloudformation gives you ablity to manage your Infrastructure as Code. The process of managing and provisioning computing infrastructure and their configuration is done through code rather than physical hardware configuration or the use of interactive configuration tools.
You can automate the process of setting up and configuring a virtual machine or container, this way you have a fast and repeatable method for replicating the process. So if you build a virtual environment for the development of application, once you are ready to deploy you can repeat the process of creating that VM simply by running the same code.
Embracing Infrastructure as code is primarily going to keep your developers happy. That means two indirect benefits: a reduction in the notorious “shadow IT,” and reducing expenses from man hours and make the process faster and eliminates human error.
OOD (Object Oriented Design) : Cloudformation gives you ablity to design your templates were you just have to drag drop the AWS resources. Other than providing graphical representation, it also gives you the ability to define the new resources, their functions and events without even messing with template code and also validates the code, hence no more missing closing brackets and missing commas..
This works in inverse as well, think that you’ve newly joined as DevOps and you have a task to deploy a stack with some Cloudformation templates already present, now the real challenge for you is to figure out what resources will be launched, what are their dependencies etc; what you can do is to upload the same template to cloudformation designer and boom!! You have a graphical represenation of whole stack, the pain to going through each and every line of code it gone forever.
React to changes faster : As we know changes are inevitable hence it necessary that whatever you build should be change friendly, interms of AWS, Cloudformation is a service which can help you deploy and update a template and its associated collection of resources (called a stack) easily which helps make quick alterations to your existing stack when there is a high computing need, shrink the number of VMs when there low usage of resouces without affecting other resources.
This help alot to reduce time of developers to deploy the updates quickly or for sysadmin to change instance sizes quickly. It can be managed using the AWS Management Console, AWS Command Line Interface, or APIs.
There alot more to a cloudformation template :
Replicate stacks : You can use can replicate existing stacks using AWS Cloudformer tool which will basically turn which ever resources you select to a template which you can use anywhere in any account. The major setback with this as per me is you cannot replicated the dependencies or configuration of the resources which makes it a half deployment with the configuration part still to be manually replicated.
Rollback your deployments : Cloudformation provides flexiblity for all cloudformation deployments, you can easily rollback your deployments without affecting any other resources not associated to the stack. Sysadmins can use these to decomission the resources from the stack
Available in multiple languages : Cloudformation is basically written in JSON language which is difficult to learn if you haven’t used JSON bfore, until recently AWS has also included YAML language support for Cloudformation.
Plan your deployments : One can create a sequence events to make sure the dependencies are take care off while launching the template.
Complaince firendly : You can isolate resource communication to fullfill PCI data security standard (DSS) compliance for development and production environments
Customizable : You can use parameters to customize aspects of your template at run time, when the stack is built. For example, you can pass the RDS database size, EC2 instance types, database, and web server port numbers.
I surely would recommend the use of AWS cloudformation for your every AWS deployment and it automates alot of task and helps you concentrate more on development of your product.
Thanks for reading
References : https://aws.amazon.com/cloudformation/