We currently have four environments in AWS, development, test, beta and production. Previously, we released from develop to beta at the end of each sprint (2 weeks). We would create feature branches off of develop.
We would then deploy to beta and production every month by merging across environments. Such as merging beta into production, test into beta. This process was both slow to deliver value, and high-risk as lots of changes by different teams would build-up.
So I've attempted to alter the process so we branch off of master, and create pull requests into each environment instead. With the intention of releasing smaller deliverables, more often.
However we're now in a position where we're dealing with misaligned branches, changes getting out of sync. Being unable to pull any change other than master into our feature branches, otherwise we 'pollute' our feature branches with other teams changes.
My initial intention was for us to deploy things to beta/production as soon as they're ready, but the business is insisting on two week cycles still. Which means changes are building up again.
So it's led me to despair, surely it's possible to just deploy small sets of changes across several environments? I just wondered if anyone has a solution to this, or any advice at all?