Upgrade to Pro — share decks privately, control downloads, hide ads and more …

安心してリリース!〜Blue/Greenデプロイ戦略の実体験〜 - NIFTY Tech Da...

安心してリリース!〜Blue/Greenデプロイ戦略の実体験〜 - NIFTY Tech Day 2023

ニフティ株式会社

November 27, 2023
Tweet

Video


Resources

NIFTY Tech Day 2023

https://techday.nifty.co.jp/2023/

More Decks by ニフティ株式会社

Other Decks in Programming

Transcript

  1. 自己紹介 2 ニフティライフスタイル株式会社 システム開発部 浜村 純 Jun Hamamura • 新卒5年目

    • Webエンジニア • 主にニフティ不動産サイト の開発を担当 趣味:旅行、ドライブ
  2. 4

  3. Copyright ©NIFTY Corpora2on All Rights Reserved. 7 過去の課題とデプロイ自動化 Blue/Green デプロイ戦略の手順

    恩恵を損なわないための注意点 まとめ Blue/Green デプロイ戦略で得られた恩恵 今後の展望
  4. Rolling Update 17 メリット • サーバ台数を増やさずに入れ替えできる デメリット • デプロイ中、新旧の環境が混在する →

    「予期せぬ動作」が起きる可能性がある • 例: (Webサイトの場合) • ページ遷移したときに、新旧の環境を行き来する • HTMLはv2、CSS・JavaScriptなどはv1から取ってきて、 存在しないクラスや関数を呼び出そうとし、 表示崩れ・エラーが発生 v2 v1 v1
  5. 比較 20 Rolling Update Blue/Green Deploy メリット デメリット 採 用

    サーバ台数を増やさずに 入れ替えできる サーバ台数を一時的に 2倍にする必要がある デプロイ中、 新旧の環境が混在する → 「予期せぬ動作」が 起きる可能性がある デプロイ中、 新旧の環境が混在しない → 「予期せぬ動作」が 起こりにくい → 「予期せぬ動作」を起こさないための考慮が増えると、デプロイ自動化の恩恵が薄れそう
  6. Blue/Green Deploy 24 ユーザ サーバ (コンテナ) ロードバランサー v 1.0 開発者

    従来の手法では、既存サーバに 新しいファイルを配置後、 サーバを再起動 (インプレースデプロイ) → デプロイ作業中に 一時ダウンタイムが発生
  7. Blue/Green Deploy 25 ユーザ サーバ (コンテナ) ロードバランサー v 1.0 v

    2.0 開発者 既存サーバの横で v2のコードでサーバを作る
  8. Blue/Green Deploy 26 ユーザ サーバ (コンテナ) ロードバランサー v 1.0 本番環境

    v 2.0 本番テスト環境 本番テスト環境 開発者 本番環境
  9. Blue/Green Deploy 30 ユーザ サーバ (コンテナ) ロードバランサー v 1.0 本番テスト環境

    v 2.0 本番環境 開発者 v2 再度切り替える だけで切り戻せる
  10. 34

  11. 36

  12. 37

  13. 40

  14. 43

  15. 44

  16. DB でも Blue/Green を採用 76 • 現在、Webサーバのみ Blue/Green を採用している •

    Amazon RDS も Blue/Green に対応している • 今後のバージョンアップ対応などで活用を検討したい
  17. 要点まとめ • Blue/Green デプロイ戦略は ニフティ不動産サイトの信頼性向上に繋がっている • 本来、リリース後に気づくようなバグにリリース前に気付けたり、 テストで見逃しがあっても「即」切り戻し時ができるため、 Blue/Green デプロイ戦略の導入はおすすめ

    • 費用が一時的に2倍になるデメリットは、 一定時間経過後にもう片方の環境を自動終了させる設定に することにより費用削減できる • 一度導入してしまえば、あとは利用するだけなので、 改修が多いサービスの場合、価値のある投資になりやすい 79
  18. 83