Need a guide for CI/CD to enable parallel development & streamline releases

0

currently, we are using codepipeline for CI/CD with ECS fargate as a launch type and we have everything setup in CDK. the problem I am facing is we have a main branch (github branch) which is bind to codepipeline. this single branch hold release changes so when release is planned to production, I can not really merge anything to main as freeze time is started. This is a bit of crunch for us as we can not do parallel development and I want to understand how can we solve this with codepipeline in efficient way.

one thought was to create development branch where we can parallely push the changes and override the containers with development code and when we need the original release ready code then we can add a step in codepipeline to redo the build.

And yes, we thought of creating a separate codepipeline for development and separate environment for it but does not seem a good solution as it involves additional cost.

so I am looking for better solutioning here!

asked 8 months ago274 views
1 Answer
0

I think it's not an AWS-specific thing. A common solution is to decouple deployment from releases of features by using feature flags. There are solutions like https://launchdarkly.com, or simply a GitHub-hosted repo to host key-value, or just use Parameter Store(AppConfig was supposed to be a feature flag solution, however its design couples with the deployment). A lot of feature flag solutions also include analytics(handy for cleaning up old redundant flags, manually or automatically), audit logs, target evaluation...

You would still plan releases - but independently from the continuous deployments. Release/Rollback is in a sec and auditable.

profile picture
answered 8 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions