Category: Application components

Understanding the target architecture of the DevSecOps pipeline – Implementing DevSecOps with AWS

Posted on


A pipeline definition in AWS CodePipeline consists of at least two stages, and corresponding actions within each stage. We covered the constructs of AWS CodePipeline in detail in Chapter 5, Rolling Out a CI/CD Pipeline. Typical stages that come to our mind when we think of the entire life cycle of software delivery are source, […]

Enable developers to identify and fix security issues – Implementing DevSecOps with AWS

Posted on


The shared responsibility approach means that developers and operators should feel equally responsible and capable of identifying and fixing security issues. This can only happen whenthe security professionals invest time and effort in making other team members aware of the security risks, identifying the right solutions, and enabling them to leverage those solutions. Automation goes […]

The rapid evolution of application architectures – Implementing DevSecOps with AWS

Posted on


An important dimension that we cannot overlook is the evolution of application architectures over the past years, which, in a way, has added an additional burden to security investigations and sign-offs. These days, monolith applications are broken down into microservices, resulting in hundreds or thousands of APIs. Previously, you just needed to safeguard countable entry […]

Instrumenting application metrics with Amazon Managed Prometheus – Enabling the Observability of Your Workloads

Posted on


As discussed previously, instantiating the Prometheus client inside our Flask application additionally enabled a /metrics endpoint that exposed application metrics to scrapers – in our case, the OTEL collector. You can also look at these raw metrics by hitting the application load balancer URL, with the /metrics suffix at the end. In my case, accessing […]

Insights and operational visibility – Enabling the Observability of Your Workloads

Posted on


This category of offeringsis a huge differentiator when it comes to providing ready- made solutions that extract data from multiple sources and deriving insights out of those to provide actionable next steps to the user. Container insights When working with AWS services in the container landscape, you can use CloudWatch container insights to summarize metrics […]

Initializing the Flask application and MongoDB connection – Running Containers in AWS

Posted on


We can use existing Python modules to interact with Flask and MongoDB. These dependencies have been defined in the requirements.txt file inside the application directory: After importing the necessary modules, we initialize a DB client, database, and corresponding collection that will host our JSON documents in MongoDB. Now, we can move on to defining the […]

Defining the CDK stack constructs – Running Containers in AWS

Posted on


We will define the previously discussed infrastructure components inside a CDK stack. The complete CDK project is available in your Cloud9 IDE, in the chapter-7/chapter-7-cdk/ directory. We will not go through the CDK project initiation steps in detail as these were already covered in the previous chapter, A Programmatic Approach to IaC with AWS CDK. […]

Deploying our CDK stack in an AWS account – Running Containers in AWS

Posted on


Finally, let’s trigger a deployment of the CDK stack in one of our AWS accounts to see the application in action. We will start by securing a new session for our Cloud9 IDE. Once we are inside the CDK project folder, chapter-7/chapter-7-cdk/, we can trigger an installation of NPM modules, followed by the cdk synth […]

Load testing your application to generate data – Enabling the Observability of Your Workloads

Posted on


A simple way to load test your To-Do List Manager application could be to run a curl query that targets the application load balancer URL, from within your Cloud9 IDE’s terminal. For hash generation, we can leverage the RANDOM variable and derive a md5 checksum value from it, using the following command: echo $RANDOM | […]

Exposing long-running tasks with ECS – Running Containers in AWS

Posted on


Often, you will want to have long-running versions of your tasks. This is a common use case for web applications. ECS has a scheduler component that monitors your running tasks and reschedules them automatically when they fail. ECS also allows you to configure placement strategies and constraints if you like to customize how the scheduler […]