π 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.
Hey Reader ππ½ We've been talking a lot about how great SST's switch to Pulumi was, and many of you have asked us how to use plain Pulumi directly. So today, we're sharing our quick guide to Pulumi - a tool we're really excited about since it lets us build infrastructure with languages we already know and love. No more learning weird syntax - just TypeScript, Python, or whatever we're comfortable with! We spent the last few days playing with it, and here's what we've learned... AWS Community...
Newsletter Header AWS FOR THE REAL WORLD β±οΈ Reading time: 8 minutes π Main Learning: Migrating from Edgio to CloudFront βοΈ Blog Post π» GitHub Repository Hey Reader ππ½ this newsletter is about π₯ AI π€ We haven't talked too much about AI, Bedrock, MCPs, and agents yet - so we want to change that. Please let us know if this it interests you to build AI on AWS, or if you are much more interested on hands-on fundamentals services. Should we focus on AI Services? Yes, I want to learn to build...
Newsletter Header AWS FOR THE REAL WORLD β±οΈ Reading time: 8 minutes π Main Learning: Migrating from Edgio to CloudFront βοΈ Blog Post π» GitHub Repository Hey Reader ππ½ This newsletter edition is all about saving Lambda costs. I (Sandro is writing this one) was recently involved in saving Lambda costs for a client. So, I thought writing down my thought process was a good idea. Have fun with it! If you need help saving AWS costs or improving your infrastructure, just reply to this email! Now...