ECS constructs and security features – Running Containers in AWS

Being an opinionated container management service from AWS, some constructs are unique to the ECS service. Since they are not commonly used across other tools or platforms in the container ecosystem, let’s briefly discuss them. Important constructs used by ECS Similar to how we declaratively define the state of our resources in a CloudFormation template, … Read more

Scaling containerized deployments beyond simple use cases – Running Containers in AWS

Running one or two container instances on your local system is easy. For CI/CD use cases, teams often run multiple in parallel. This does require some additional development effort on top of the interfaces exposed by respective tools (for example, GitLab CI/CD pipeline templates), but it is still manageable. The real challenge, however, comes up … Read more

Summary – Programmatic Approach to IaC with AWS CDK

In this chapter, we learned about the basics of working with AWS CDK to create infrastructure resources using general-purpose programming languages. This approach to managing cloud infrastructure is particularly useful for teams who are used to working with CloudFormation, have experience using the service in an enterprise-grade environment, and would now like to take the … Read more

Accessing private VPC resources – Rolling Out a CI/CD Pipeline

By default, you cannot access your VPC resources when running CodeBuild projects. However, if required, the service can be configured to run the build environments within your designated VPCs and subnets. This allows it to access your private resources in the cloud or on-premises. This unlocks a lot of possibilities as you can run integration … Read more

Automating builds and tests with CodeBuild – Rolling Out a CI/CD Pipeline

Ever faced issues with spiky build and test loads toward the end of a sprint? I certainly have my share of experiences. Managing build infrastructure has very similar challenges to what is observed when supporting the dynamic nature of application environments. The customers – the software developers, in this case – should be able to … Read more

Why is continuous deployment hard to implement? – Rolling Out a CI/CD Pipeline

It mainly comes down to trust in deploying to productive environments at scale. Teams who want to adopt this model spend a lot of time thinking and developing the right (and complete) test suite before adopting this for production. What is more important is to define a minimal set of essential business features that need … Read more

Identifying what works best for you – Rolling Out a CI/CD Pipeline

Having noticed software teams adopting code delivery practices, tools, and procedures from the internet as-is, I recommend caution with this approach. More often than not, what works for another organization might not directly fit into your tooling landscape, long-term technology commitments, and the variety of software applications you are working with. Just like containerizing your … Read more

Stages – isolation boundaries for your environments –Rolling Out a CI/CD Pipeline

Think of pipelines as templates that can have multiple executions going on in parallel. Ideally, every single commit that ends up in the repository is a new change you would like to run the pipeline against. Stages are the processes you would like to avoid concurrent executions for. For example, you don’t want to deploy … Read more

Key concepts in CDK– Programmatic Approach to IaC with AWS CDK

The three most important CDK concepts are constructs, stacks, and apps. All of them are represented as classes in the respective programming languages. Let’s clearly define the role of each of these concepts in realizing your infrastructure on AWS. Constructs A CDK construct is the underlying AWS resource that you would like to manage as … Read more

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