Tidy Cloud AWS issue #32 - Continuous delivery, Pulumi, Terraform, AWS CDK ninjas and CloudFormation
Welcome to the next issue of the Tidy Cloud AWS bulletin! In this issue .there are a few Pulumi items, some good material around continuous delivery, Terraform, CloudFormation and the final part of the infrastructure-as-code ninja series.
AWS CDK view in CloudFormation console
Recently AWS added a tree view in the CloudFormation console interface, for the resources in a CloudFormation stack. This view recognises if AWS CDK metadata has been added to describe the resources in the stack, and displays the resources based on that hierarchy.
This is a nice addition, and I hope AWS continues on this path to add more direct and visible support for AWS CDK.
The road to continuous delivery
Continuous delivery is an engineering discipline that I believe we should strive for, both for application development as well as platform/infrastructure development. Some of the details are different when looking at application development versus platform and infrastructure, but in general the ideas and concepts are similar.
Recently, Dave Farley posted a video interview with Bryan Finster on his YouTube channel, titled Continuous Delivery vs. Gitflow & CD At Scale.
It is a pretty good conversation about various aspects of continuous delivery. The comments for the video has also some useful links, which are worth checking out even if you do not look at the whole interview.
I want to specifically mention the Minimum CD website, which has some great material on how to get started with continuous delivery and the minimum needed to actually do continuous delivery for real and not “Fake CD”.
When you start a new infrastructure-as-code project, you can in some cases use the command line tool of choice and generate some scaffolding for a new project. With Pulumi, you get a few different options which are actual working solutions of different kinds.
Templates include, for AWS:
- A static web site
- A kubernetes cluster with EKS
- A serverless soluition (API Gateway, Lambda and S3)
- A container solution (ECS Fargate with load balancer)
You can look at the templates at Pulumi templates.
I think this a great way to allow people to start with various types of projects, and also that it is something that is actually working and not just some random infrastructure example.
Good work, Pulumi!
Terraform: Up & running
The 3rd edition of the book Terraform: Up & running is now available. It is a quite popular book when it comes to learning about Terraform and the 3rd edition has now been updated to include features up to version 1.2 of Terraform. It also has additional content added, which the author Yevgeniy Brikman from Gruntwork has described in two blog posts with 10 new items covered by the 3rd edition of the book:
The blog posts provide a short description and outline of the new items covered, with more in-depth promised in the book itself.
Pulumi Challenge part 1 - Startup in a box
In issue 30 of Tidy Cloud AWS bulletin I mentioned about the Pulumi Challenge, where you perform an infrastructure provisioning task, and can get some Pulumi swag for the effort.
I did the first challenge there, called Startup in a box, which was to set up a static website using AWS S3 and AWS Cloudfront, and monitor the website using Checkly. In addition, the challenge included to create a dynamic provider to notify about a successfully completed challenge to get the swag reward.
The challenge itself was pretty easy, since most of the code (in Typescript) was already available and written. My main issue had actually nothing to do with Pulumi, but with AWS, who did not allow me to provision Cloudfront on the account I used - it had to be verified first. The account itself had been around for more than a year, but still…
Anyway, a support request (other account issues) to AWS fixed that problem, and I could complete the challenge.
The goal with these challenges are of course not to make something truly challenging and hard, but rather showcase various aspects of Pulumi in an enjoyable way. I think they are doing a pretty good job there.
Pulumi challenge part 2 - One quickstart to rule them all
The second Pulumi challenge is called One quickstart to rule them all, and in this case the code is in Python. It uses a Pulumi template to provision a serverless solution with an API Gateway backed with an AWS Lambda function. Pretty straightforward.
The next step is to use the policy-as-code features of Pulumi to run a policy check, and use that policy check to submit a request for swag.
This one was pretty quick to complete. I liked that they took a different language and both pointed to that Pulumi has templates to do a quickstart for a project, and also that they have a policy-as-code feature.
I am on the fence here though that these challenges might be too short and quick. I still like the general idea though, good stuff!
On October 4th to 6th, Hashicorp has its global conference, HashiConf Global. The event is both onsite in Los Angeles and virtual, with the virtual event taking place on October 5th and 6th.
It is a mix of a few regular talks, as well as learn events, which are essentially hands-on labs. There is no need to register in advance specifically for those labs, just drop in when they are running. You have to register to the conference itself though, which is free if you attend virtually.
How to become an infrastructure-as-code ninja - the final
I recently published part 8 of the article series How to become an infrastructure-as-code ninja, using AWS CDK. This is the final part of that series, which has been delayed for quite some time now.
Next step here is to include both material from this series, as well as other articles in a more suitable format for longer form data, an online book. More about that in the near future!
You can find older bulletins and more at Tidy Cloud AWS. You will also find other useful articles around AWS automation and infrastructure-as-software.
Until next time,