π This is not properly displayed? Here is the online version! π‘
Hi Reader ππ½
A continuous integration and delivery system (CI/CD) is a must-have for developers because it automates the process of merging code changes, running tests, and deploying applications, ensuring faster and more reliable software releases.
It also helps identify and fix issues early on, leading to improved collaboration and overall development efficiency.
In this issue, we want to talk about AWS CodeBuild & CodePipeline, the fully-managed CI/CD services by AWS.
Let's dive into it!
β
Excited to learn the basics? Explore our infographics that cover everything you need to know to get started with AWS's managed continuous integration & delivery services.
β
Compiling applications usually requires a π€ specific environment that offers all the necessary tools, languages, and frameworks that are part of the build process.
Additionally, you want to ποΈ regularly deploy changes to your application or product to ensure that the current development version available for internal or external testing doesnβt differ too much from the latest state of development. And surely, it passes regressions and therefore doesn't break existing features.
Thirdly, even a small team of developers is usually very diverse, not only from a cultural perspective but also from a technical point of view. Everyone has their own preferences for π οΈ development tools or even operating systems.
We also want to decouple the development process from the release process and π restrict manual production access by developers and team members. This is important to avoid human error. Itβs often necessary to fulfill compliance requirements that may apply in a given country.
Lastly, in cases of issues, we want to be able to π’ easily roll back to a previous version to restore a healthy application state.
This can be summarized as follows: We need a dedicated development environment with a reliable set of tools that can run automatically and securely, without any human intervention.
This is precisely what continuous integration and delivery services, such as AWS CodeBuild and CodePipeline, are designed for.
β
AWS CodeBuild is not limited to just building applications. It can also handle tasks like infrastructure manipulations, modifying routing destinations, creating backups, triggering Lambda functions, and running any other scripted process. Since CodeBuild can run any container image, it has no limitations on the types of tasks it can handle.
A well-structured delivery process involves coordinating multiple jobs for reliable and secure code or infrastructure deployment. AWS CodePipeline serves as the orchestration tool for CodeBuild, allowing you to create pipelines that connect jobs into stages. This enables you to establish a replicable and comprehensible multi-step rollout process.
To understand how CodeBuild and CodePipeline work, we need to review their key terms and fundamentals.
As mentioned before, the build specs define the tasks and requirements of a job. Build specs can be divided into multiple phases to effectively plan and execute the job.
Let's have a look at an example:
As seen, besides running our build commands, archiving our distribution package, and caching our dependencies, we're also able to easily access parameters and secrets via the SSM Parameter Store or the AWS Secrets Manager.
We learned that pipelines are a coordinated set of build projects.
They enable the organization of continuous integration and deployment into stages, which include builds, quality checks, and actual deployments.
β
Your CodeBuild and CodePipeline projects perform the most important actions in your AWS account. Therefore, monitoring is essential, just like it is for any other resource.
You can also customize the events for which you receive notifications. For example, you may choose to only be notified for failures.
Both CodeBuild and CodePipeline have several strengths.
But there are also some downsides of AWS CodeBuild and CodePipeline, including:
There's always a common saying that "the grass is always greener on the other side", but nonetheless, AWS CodeBuild and CodePipeline excel and are suitable options for almost any requirement.
β
You've made it to the end of this newsletter! π
Thank you for reading! π§‘
Have a great week!
Sandro & Tobi
Still hungry for AWS content? Have a look at our blog! π β
β
Join our community of over 9,300 readers delving into AWS. We highlight real-world best practices through easy-to-understand visualizations and one-pagers. Expect a fresh newsletter edition every two weeks.
AWS FOR THE REAL WORLD β±οΈ Reading time: 6 minutes π― Main Learning: Understanding Amazon Aurora DSQL pricing structure including DPUs, storage costs, and free tier π Blog Post π₯ YouTube Video Hey Reader ππ½in December 2024 AWS announced the preview of the serverless database DSQL and just in May it was generally available. With the announcement of the general availability, the pricing was also announced. The pricing is not super straightforward, so let's dive into it. Click to watch this video...
AWS FOR THE REAL WORLD β±οΈ Reading time: 8 minutes π― Main Learning: Building & Testing Lambda@Edge Functions with LocalStack π Blog Post Hey Reader ππ½we hope you have a great week! End of last year the CDN Edgeio was deprecated. Tobi's client company used it and the only thing that saved his day was CloudFront and Lambda@Edge Functions. But we realized that testing them and executing them locally is a pain. When we started to look for a solution we found Localstack - let's see how we can use...
AWS FOR THE REAL WORLD β±οΈ Reading time: 8 minutes π― Main Learning: Migrating from Edgio to CloudFront π Blog Post π» GitHub Repository Hey Reader ππ½After a busy week in Prague, both Tobi and I (Sandro) delivered our talks and we got quite some good feedback! We will share them in a separate newsletter soon.But this newsletter is all about accessing S3 within a VPC via Gateway endpoints vs. Internet routing. We know these networking issues are not the fanciest onces (looking at you AI) but...