Adopting a declarative approach – Programmatic Approach to IaC with AWS CDK

Once the needs grow beyond basic scripting solutions, organizations typically take the next steps with more advanced services such as CloudFormation and Terraform. In some cases, they might even adopt these services directly, depending on the existing experience and knowledge within the company. These services offer a declarative approach to infrastructure definition, where the user … Read more

Summary – Rolling Out a CI/CD Pipeline

In this chapter, we established a foundational understanding of what CI/CD is and how it supports the software delivery processes. This is key for software automation, which further drives digital innovation. Selecting a tool from countless options available these days can be a difficult task. We discussed key areas that could simplify the selection process. … Read more

Deploying infrastructure and application stacks – Rolling Out a CI/CD Pipeline

Before we can deploy pipeline resources, we need to have the underlying infrastructure and application components available. This is mainly to ensure that inter-stack dependencies are met so that the pipeline stack to be deployed successfully: We now have all the resources that we need in our AWS account to roll out application changes automatically. … Read more

Creating a base AMI for the application instances – Rolling Out a CI/CD Pipeline

Let’s start a new session on our Cloud9 IDE before switching to the chapter-5/ directory and using packer to build the AMI: aws-devops-simplified:~/environment/chapter-5/packer $ packer build ami_build.json … … … Build ‘amazon-ebs’ finished after 6 minutes 1 second. ==> Wait completed after 6 minutes 1 second ==> Builds finished. The artifacts of successful builds are: … Read more

Different approaches to managing infrastructure in AWS – Programmatic Approach to IaC with AWS CDK

Many years back, when I was starting with infrastructure automation on AWS, I used to bundle together some CLI commands in a Bash script and fire it off when new AWS accounts required bootstrapping. It worked like a charm for basic setups but surfaced limitations in other areas such as ongoing management, updates, stack removals, … Read more

Pulumi versus CDK– Programmatic Approach to IaC with AWS CDK

Under the hood, AWS CDK is more of a transpiler. Transpilers are programs that convert a piece of source code from one high- level language into another. The output from these programs has the same level of abstraction as the input. This is fundamentally different from compilers as they produce low-level code that directly interacts … Read more

Defining CDK constructs for application components – Programmatic Approach to IaC with AWS CDK

Note The steps in this section have already been completed for you, inside the chapter-6/ directory, so you may just skim through them for your understanding. In its current state, the project directory provides a bare-bones structure that does not deploy any resources as such. Let’s go ahead and add relevant construct definitions referenced in … Read more

Bootstrapping a new CDK project – Programmatic Approach to IaC with AWS CDK

The very first step before we can work with AWS CDK is to bootstrap an empty directory with one of the supported programming languages. To make this task easier for users, CDK offers a command-line interface utility that is pre-installed for you in the Cloud9 IDE that we have been using throughout this book. Note … Read more

Understanding the different components of the image recognition application– Programmatic Approach to IaC with AWS CDK

In addition to using Amazon Rekognition under the hood, our test application also depends on a few others to offer an end-to-end workflow for the user. Here is a list of all the components and the role they play: The entire workflow is depicted in Figure 6.2: Figure 6.2 – Automatic image labeling with Amazon … Read more

Triggering actions in other regions – Rolling Out a CI/CD Pipeline

CodePipeline actions let you perform operations not only in the region where the pipeline is hosted but in others. The elegance of this feature is that the respective input artifacts are made available in the other region by the service itself. You just need to ensure the presence of an artifact bucket in the target … Read more