Canary release strategy vs. Blue/Green

前端 未结 5 1304
迷失自我
迷失自我 2021-01-29 17:30

My understanding of a canary release is that it\'s a partial release to a subset of production nodes with sticky sessions turned on. That way you can control and minimi

5条回答
  •  无人共我
    2021-01-29 17:58

    Blue-green releasing is simpler and faster.

    You can do a blue-green release if you've tested the new version in a testing environment and are very certain that the new version will function correctly in production. Always using feature toggles is a good way to increase your confidence in a new version, since the new version functions exactly like the old until someone flips a feature toggle. Breaking your application into small, independently releaseable services is another, since there is less to test and less that can break.

    You need to do a canary release if you're not completely certain that the new version will function correctly in production. Even if you are a thorough tester, the Internet is a large and complex place and is always coming up with unexpected challenges. Even if you use feature toggles, one might be implemented incorrectly.

    Deployment automation takes effort, so most organizations will plan to use one strategy or the other every time.

    So do blue-green deployment if you're committed to practices that allow you to be confident in doing so. Otherwise, send out the canary.

    The essence of blue-green is deploying all at once and the essence of canary deployment is deploying incrementally, so given a single pool of users I can't think of a process that I would describe as doing both at the same time. If you had multiple independent pools of users, e.g. using different regional data centers, you could do blue-green within each data center and canary across data centers. Although if you didn't need canary deployment within a data center, you probably wouldn't need it across data centers.

提交回复
热议问题