I am developing static webpage that could be hosted anywhere. This webpage is pretty sophisticated, a single page app without a backend. I would like to experiment with continuous deployment -- releasing every successful build to production -- but I don't just want to swap 100% of users over to the latest commit every time I git push: I want canary releases:

At a high level, I think I could achieve this by having two versions of my app deployed at the same time: Release Candidate (RC) and Release (R). This would be the latest code and the code that 100% of users are currently using, respectively. I will slowly increase the percentage of users that go to RC while tracking the errors they encounter. If those errors go above some threshold over time, I'll reduce the RC percentage to zero so 100% of traffic goes back to R. If that threshold is never reached, the percentage of users that are going to RC will increase until it gets to a 100%, then RC is promoted to be the new R.

I really don't want to build this functionality myself, so here's my question: what free services out there can help me deploy Canary releases of a static webpage?

I have found two Google services that might be used for this: I could use Google analytics to collect events any time an error occurs. Then, I could use Google Optimize with a redirect test and somehow write some code that reads the events and modifies the redirect test % as mentioned above.

But these tools seem like they are not meant to be used this way. Are there other services out there that would be more appropriate for canary releases?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.