エンジニアはこわくない

好きなように書く

そういえばBlue/GreenDeploymentってなんだっけ?ということで調べた


スポンサーリンク

こんにちは、つじたく(@Tsuji_Taku50)です。

この前こんな記事を読みました。ただタイトルを見た瞬間に思ったのが「Blue/GreenDeployment」ってなんだっけ・・・?ということでした。 dev.classmethod.jp

最近ボクの目にするところではちょくちょく聞くようになったなという印象だったのですが、

結局今の今まで調べずに放置していたので少し調べてみました。

参考文献を読んで自分なりに解釈したものなので間違ってるかもしれません。 何かあればコメントなどで教えて頂ければと幸いです。

Blue/GreenDeploymentとは

まずBlueとGreenという2つのまったく一緒の環境を用意します。

例えばBlue環境が動いていて、Green環境は動いていない(待機系)と仮定します。

dev環境、stg環境などでテストまで終わった!

じゃあ本番にデプロイしよう!となった時にGreen(待機系)環境にデプロイまで行います。

最後にLBを切り換えてGreen環境を動かして、Blue環境を待機系に変更します。

このようなデプロイ方法をまとめてBlue/GreenDeploymentというっぽいです。

迅速なロールバックが可能

このBlue/GreenDeploymentが優れている点は迅速なロールバックが可能という点です。

デプロイが完了して、リリースが終わった!

と思った5分後くらいに「なんか本番がおかしいです」と言われた日には変な汗が出ますよね(経験済み)

ただBlue/GreenDeploymentならLBを切り替えるだけで先程まで動いてた環境(バグが出ている1つ前の環境)に切り替えることができます。

1つ前の安全Verに切り戻した後に、対応策やバグの原因を探ればいいですね。

超簡単に図にしてみた

A,Bという2つの環境があります。

片方がBlue(稼働中)でGreen(待機系)とします。

f:id:tsujitaku50:20170201201816p:plain

さぁリリースです!デプロイも終わったので環境を切り替えましょう!

f:id:tsujitaku50:20170201202038p:plain

切り替え完了です!

f:id:tsujitaku50:20170201202206p:plain

もし切り替えたことによってバグが出たのであれば、戻せば良いだけですね。

という感じに簡単に図にしてみました。

参考文献

こちらを参考にしました。 www.publickey1.jp