With the AWS Cloud you have an on-demand, programmable infrastructure that you can manage using tools and practices from software development. You can create resources when you need and dispose of them when you don’t. Using Amazon CloudFormation you can describe your architecture in text files. To change your infrastructure, you edit those files. Having application and infrastructure code together in a single, robust, versioned repository like Git gives a lot of advantages. Using AWS Elastic Beanstalk you can link your Git branches to different infrastructure environments (e.g. test, production) and automate deployments. You can create test environments on-demand, even for a short time. Instead of continuously update your resources, you can recreate them quickly from scratch, simplifying lifecycle management and making deployments immutable. As a result, you have more time to focus on the unique features of your application.