-
Notifications
You must be signed in to change notification settings - Fork 0
Description
tl;dr for @kingshyg : our deploy scripts is too heavy now, let’s update it.
It has become painfully obvious that our deploy workflow might need to get a little love.
The workflow that @jnorgan put together for suripu-admin is close to ideal.
- Merge
masterintoproduction - Travis sets maven version to be
$TRAVIS_BUILD_NUMBERand deploys jar to our maven s3 repo. - [optional] maven boxfuse plugin creates a unikernel/AMI
sanders deploy/confirm/sunsettakes care of deploying.
The one limitation of this new deploy flow is the dependency on two 3rd-party services: travis and boxfuse. To overcome this limitation, it’d be great to have a fallback plan.
The current deploy flow for suripu-app/service/workers is long, tedious and way too manual.
./release.sh./config.sh X.X.X- Wait for travis to build the jar and push to maven repo
- ssh into dev
- deploy
dev/stagingversion - update
pkg.shwith newX.X.Xversion - run
./pkg.sh cd packer-templateson local machine- run
./build.sh - wait for packer to build AMI
- create launch config with
sanders create - [optional]
sanders canary sanders deploysanders confirmsanders sunset- [optional] do it all over again for another app.
That’s quite involved.
Given that our services are all bundled into uber-jars, we make very little use of provisioning AMIs, we hardly every install anything but ntp and open-jdk7.
If we give up a little immutability (!), we could be using user-script data from EC2 in the launch configuration to download a jar and create an upstart script. Which would replace ssh to dev to build .deb files. It also removes the need to use packer for custom immutable AMIs, they are almost all identical anyways.
We introduce a runtime dependency on S3 to download jar or .deb file built by travis, but we potentially save ~10 minutes per deploy, which is good for velocity. Fewer steps ~= fewer mistakes too.
The launch configuration could/should be created during the travis build.
and right now I believe only I have IAM permissions to do this.
@jnorgan, do you want to give this is a shot when you’re back in office?
@jakepic1 any suggestions?
@kingshyg would that work for you?