Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
More than 1 year has passed since last update.

マイクロサービスが主流になってきている今の時Deploy戦略をおさらいしておきたくて調べてまとめます。

今回は代表的なDeploy戦略としてRolling、Blue/Green、Canaryについて書きます。

Rolling

Rolling Deployは1つずつ旧バージョンを新バージョンへ交換していく戦略!
サービス中のサーバー1台を除き、そのサーバー以外に新しいサーバーを追加すます。
その間旧バージョンから新しいバージョンへトラフィックを移していきます。この戦略はサーバー数に制約がある場合有効だが、Deploy中にはインスタンス数が減るのでサーバー処理要領を考慮する必要があります。

Blue/Green

Blue/Green Deployentは旧バージョンから新バージョンへ一気に変換する戦略!
旧バージョンと新バージョンのサーバーを同時に並列で構成し、deploy時点になるとトラフィックを新バージョンへ向けます。一つのバージョンのみ本番になるのでバージョン管理問題を防げるのと、早いロールバックが可能となりメリットがあります。また他のメリットとしては運用環境に影響を与えずに実際のサービス環境で新バージョンのテストが可能になります。でもサーバーの台数が倍になるのでコストがかかるのと、新環境へのテストが必要になるのでテストに必要な時間も増えるデメリットがあります。

Canary

'Canary(カナリア)'の用語の語源を知ることで理解しやすいです。カナリアという鳥は体に悪いガスなどに敏感で、過去鉱山の労働者はこのカナリアを隣に置いてカナリアの具合が悪くなることで危機を検知し退避したと言われています。

カナリアデプロイは危機を早く検知するデプロイ戦略!
旧バージョンの新バージョンのサーバーを構成し、一部のトラフィックを新バージョンへ分散しエラーを検知します。この方法ではA/Bテストも可能で、エラー率や性能のもイーターにも有用です。分散後結果によって新バージョンの運用環境を変えれるし、また旧バージョンへ戻すことも可能です。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
pursang81
phpをメイン言語として使っているゲームの開発経験を積んで現在はゲーム開発に必要なウェブサービスを中心に開発やマネージャー業務を行っています。主にはサーバーサイドがメインですが、最近はvuejsを利用したfrontendも開発を進んでいます。 サーバーサイドは主にAWSを利用して色んなサービスを開発していて日々充実な時間を過ごしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?