For the most part, this is fine. We keep
masterin a deployable state, and that’s always the desired version to deploy. Thus, the whole system is stateless…
But, it also means that we can’t use our fancy “change branch” or “deploy commit” operations very much. If we do, then the desired version is no longer what the AMI will auto-deploy when new instances launch from it. We have to either build a new AMI (for the branch) or restore the deployability of
masterbefore any new instances launch.
If we reach the “deploy from tarball” goal, then life would be easier. Builds could happen from any branch or commit naturally, and we could prevent a broken tarball from auto-deploying by simply deleting it.