At my last company, we were deep into AWS. Everything — from infrastructure to pipelines — was written as code using AWS CDK. While AWS offers some seriously powerful infrastructure, let's be honest: tools like CodeCommit, CodeBuild and CodePipeline aren't exactly known for their developer experience. Functional? Sure. Luxurious? Not so much.
At my current startup, we had a new challenge. We needed to:
So we decided to take a hybrid approach: keep using AWS where it shines (infrastructure and delivery), but move our CI to GitHub Actions, where the developer experience is best-in-class.
GitHub Actions gave us an instant productivity boost. We used it to:
All our continuous integration logic lived in GitHub. It was fast, transparent, and integrated seamlessly into our developer workflows.
Once our CI passed, we needed to hand off the result to AWS for deployment. There are many ways to do this — but we wanted something simple and effective. Here's what we did:
This S3 bucket became our handoff point between GitHub CI and AWS CD.
On the AWS side, we leaned on CDK to manage our entire continuous delivery pipeline. Here's how it works:
This hybrid architecture gives us the best of both worlds: great CI with GitHub Actions, and AWS-native CD that leverages our existing expertise and infrastructure.
We could have. GitHub Actions supports running CDK commands like cdk synth
and cdk deploy
, and you can use OIDC to grant GitHub secure access to your AWS accounts.
But that comes with added complexity: setting up IAM roles, trust policies, and ensuring secure, reliable access between GitHub and AWS. It's absolutely possible — and worth it at scale — but not necessarily the right starting point for every team.
Our goal was speed and confidence. So we took a pragmatic route: start with a hybrid handoff model and defer full GitHub-native CD until later.
If you're currently all-in on AWS native CI/CD but looking to modernize, here's what I recommend:
That hybrid handoff — CI in GitHub, CD in AWS — is a sweet spot. You can always move further into GitHub later, but even this middle ground delivers massive value fast.
CI/CD is all about confidence and speed. With this hybrid approach, we optimized both — enjoying the rich developer experience of GitHub Actions while maintaining the deep integration and control of AWS-native delivery.
If you're considering a similar migration: start hybrid. Keep it simple, deliver value, and evolve your pipeline from there.