I'm implementing continuous delivery with some technologies and services, such as docker, shippable, AWS Elastic beanstalk, etc. However, it takes a few(5~7) minutes to the application to be automatically deployed to the production server, from pushing to the git repository.
It's quite neat, but sometimes I may want to apply a tiny change for hotfix immediately, then this time of 5~7 minutes is too long to wait, because it's mostly about building the docker image and uploading/downloading it, or running npm test
and npm install
commands. Sometimes I want to skip these steps and apply the change immediately.
I'm thinking about several ideas but they have some problems:
- Open some secret URI interface through HTTP in the server for patching and restarting themselves
- There are two problems for this; we'll have to give different github keys for the containers, and it's too complex to ensure every instances to be patched because there are multiple instances behind the load balancer
- Manual labor. Connect directly to the instances and patch them
- But we launched continuous delivery system to avoid this
Is there any best practice for this kind of problem?