カナリアリリース
プロダクトやサービスの新機能を一部ユーザーのみが利用できるようにリリースし、新機能に問題がないことを確認しながら段階的に全体に向けて展開していくデプロイ手法……かつて炭鉱でのガス漏れ事故を防ぐために、無臭ガスに敏感な鳥(カナリア)を鳥かごに入れて炭鉱に持ち込んだ、生理学者John Scott Haldane氏による実験が由来とされる。 一部ユーザーとして、カナリアのように敏感なユーザーを選ぶということなのだろうか?
全ユーザが不具合踏むよりかはマシ、という判断ですよねmiyamonz.icon
それはそうなんだが、不具合踏んだユーザが可哀想という気持ちもある
最近はマイクロサービスの1つが不具合起こしてもリトライしたり代替コンテンツ返すなどもあるので、顕在化することは少なそうinajob.icon
カナリアバージョンをユーザーがインストールするので、適当に選んで無理やり当てはめるわけじゃないと思いますmtane0412.icon
そういうユーザーは新機能を早く試したいとか、contributeしたいという欲求で動いている
例) Chrome Canary
Canaryで検証されたのがdev版へ
利用者が選ぶのではなくてランダムな例もあると思いますinajob.icon
それをカナリアリリースと呼ぶのだろうかmtane0412.icon
迷惑なA/Bテストは確かにある
カナリアリリースは、リリースの手法の1つです。初めからリリースするバージョンを全体に公開するのではなく、公開する対象を一部のユーザーだけに絞りつつテストを行い、定められた基準を満たした場合のみ全体に公開するリリース方法のことを指します。
言いそうmtane0412.icon
Chrome Canaryのようなカナリア版を配布するのが逆にレアなのか
RC版とかディベロッパープレビューとかそういうやつですかねinajob.icon
この辺もそういう意図で書かれてそうinajob.icon
自分もそういう意味で言うことがある
カナリアのように敏感なユーザーを選ぶ わけではないですね、多分inajob.icon
先行して一部のサービスをリリースして、それをカナリアとして扱う(何かあったら死ぬのでそれを確認する的な意味でのカナリア)ということ
すごい世界だmtane0412.icon
研究で実験参加者の同意とれないと研究倫理に反してできないのとギャップを感じる
同意とかデブリーフィングとか必須になる
ユーザーメリットがあるアプリのアップデートで同意をとっていたらなかなか進まなそう基素.icon
新機能のテストへの参加の同意をイメージしてますmtane0412.icon
テストで想定される不利益の程度が炭鉱のカナリアのイメージに引っ張られて過大になっていそうmtane0412.icon グラデーションが大きな言葉なのだと思います基素.icon
+1mtane0412.icon
(大きな)新機能のアルファ版の参加
普通にアルファ版と呼称するもの
Google Chrome Canaryみたいなやつ
mtane0412.iconさんが想定しているのはこれ
完全にこれだったmtane0412.icon
小さな1機能のアップグレードや、ユーザーからはそもそもわからない内部的な改善を試しに一部のユーザー対象に切り替えること
最終的に順次全員にリリースされる
どのサービスでもやっていると思う
Twitterで新機能きている人と来ていない人がいたりする
これは引き当てたらお得感あるmtane0412.icon
iOSだとあるけどAndroidだけどない、とかも大枠ではこれ(でもカナリアだともっと小規模なイメージ)
こっちのイメージがまるでなかったですねmtane0412.icon
全員に適用されるアプリのアップデートはそもそも利用条件に入っていそう
明示的でなくても
サービス利用時によくわからん文言で予め同意するとかチェックさせられてるのかな
完成度次第じゃないですかね?inajob.icon
クラウドサービスのバージョンアップなんて同意なしにバンバンされてるし
なるほど、実験してるわけじゃなくて最終確認段階っぽいですもんねmtane0412.icon
サービスによって考え方は違いそう基素.icon
α版の限定公開 と言えばいいだけでは? 増井俊之.icon
+1sta.icon
カナリアはかわいいから…mtane0412.icon
上で教えてもらったことを経て、カナリアリリースが指す概念にカナリアという言葉が適切なのか疑問が沸いたmtane0412.icon
不具合を踏む可能性もあるけど新機能や改善された体験に先行アクセスできる利益がある
炭鉱のカナリアはカナリアにとってリスクと不利益しかない
インフラエンジニアからすると、カナリアは悲鳴をあげるサーバ上のプログラムのイメージinajob.icon
開発者目線だと「バグってるかも」な不安が強いからカナリアなのかなぁ基素.icon
N台で負荷分散しているサービスのうちM台(MはNより十分小さい)を最新版に切り替えて様子を見る手法と理解しているinajob.icon
カナリアはM台のサーバ
最新版に不具合があるとこのカナリアでアラートが上がるので、リリースを中断して引っ込める
MはNに比べて十分小さいので、障害の影響は少なく、またすぐに引っ込めることができる
利用者に迷惑をかけない方式だとシャドーテストというのがある
本番環境と同じリクエストをシャドー環境にも投げて、出力が同じか、非機能要件を満たすかなどを確認する手法
利用者には本番環境のレスポンスが返る
シャドー環境の処理が本番環境に対して副作用を及ぼさないことが大前提
DBのレコードを書き換えるなど
めっちゃ勉強になったmtane0412.icon