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

Synthesizing the template – Programmatic Approach to IaC with AWS CDK

The synthesizing process generates a valid CloudFormation YAML template. At this point, you could also deploy it directly within your AWS environment, or instruct CDK to do so. For now, let’s trigger template synthetization with the cdk synth command: The 40-odd lines of code we added to the lib/chapter-6-stack.ts file resulted in a template 10 … Read more

Key concepts used by Docker – Running Containers in AWS

To offer a consistent experience to the application developers, some key concepts are used in Docker’s architecture that are worth discussing. Docker images A Docker image is a reusable read-only template that includes code, dependencies, runtime, and tools that can be replicated by one or more containers. It is usually based on another parent image … 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

What is CI/CD? – Rolling Out a CI/CD Pipeline

CI stands for continuous integration and CD is often used interchangeably between continuous delivery and continuous deployment. The scope of what teams end up achieving within each of these varies a lot. Some teams begin with automated testing procedures after code is merged into the main branch, and others might go as far as testing … 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

Amazon CloudWatch event integration – Rolling Out a CI/CD Pipeline

You can monitor and build automations when specific events occur in your repositories. Among several others, events such as creating pull requests, adding comments, or reacting to comments could be automatically captured and forwarded to a Lambda function, which then notifies the team over Slack or email, for example. Data protection for meeting compliance requirements … Read more

Deployment group – where to deploy stuff – Rolling Out a CI/CD Pipeline

Deployment groups identify the targets where application artifacts are placed. In our hands-on exercise, we will be working with EC2 instances hosted in an Auto Scaling group. This group of instances is clubbed together and called a deployment group. The actions that you define in the deployment configuration are performed on these servers. Deployment configurations … 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