- Keep application code and infrastructure in the same repository
- Make infrastructure changes repeatable across multiple environments, AWS accounts, AWS regions.
- To enable continuous testing, replicate production in a staging area
- You can replicate production in a performance testing environment that you only use for the time it takes to run a stress test
- Release infrastructure changes using the same tools that code changes to ensure that deployments include infrastructure upgrades
- Software development best practices can be applied to infrastructure management. This includes code reviews or deploying small changes often.
Developers now have the option to choose modern programming languages with familiar tools such as editors, integrated development environments (IDEs), and so forth. Danilo Poccia, AWS evangelist, wrote today’s blog post (July 11): “Personally, I really like that you can use the AWS CDK to build your application, including infrastructure, in your IDE using the same programming languages and with the support for autocompletion, parameter suggestion, and other modern IDEs have in place, without having do a mental switch from one tool or technology to another.” The AWS CDK makes it easy to quickly configure your AWS infrastructure and code it up with your application code. He contrasted this with the traditional text-based approach. He said that configuration files are used to manage your infrastructure. However, they were traditionally implemented in YAML or JSON text file format. This way you miss most of the benefits of modern programming languages. It can be difficult to spot a file that has been cut while being transferred to another system or a missing line when you copy and paste from one template to the next, especially with YAML. Developers can create projects to use the AWS CDK. These projects are executed to generate CloudFormation template via the AWS CDK command-line or as part a continuous delivery system. [Click on the image to see a larger view.] AWS CDK (source AWS) Poccia highlighted the benefits of the new release for DevOps workflows. He stated that “Managing your Infrastructure as Code offers great benefits and is often used as a stepping stone to a successful application DevOps practices.” Administrators and developers can automate provisioning compute, storage, and other services as required by their applications. This is an alternative to manually performing steps. You can find the CDK on GitHub. Developers can also find examples.