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

大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46

大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現 というタイトルで日本経済新聞社のSREチーム 石上 椋一 さんが発表しました。
NIKKEI Tech Talk #46
https://nikkei.connpass.com/event/391773/

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. ハッシュタグ #nikkei_tech_talk 本日話すこと • 報道機関に求められる事業継続性 • 共通基盤の Vessel とは •

    大規模災害時のサービス継続手順と課題 • 改善アプローチとその効果 • まとめ・今後の展望 3
  2. ハッシュタグ #nikkei_tech_talk 4 各チームに 便利なシステム基盤 を提供する SREの実践を助ける 指南書や確認ポイント を提供する プラットフォーム

    SRE イネーブルメント SRE 日経 SRE ー2つの活動分野 Vessel:アプリケーション基盤 Cage: 負荷試験の基盤 Titan: 可観測性の基盤 SREガイドライン SREトレイルマップ SREクライテリア
  3. ハッシュタグ #nikkei_tech_talk 5 各チームに 便利なシステム基盤 を提供する プラットフォーム SRE 日経 SRE

    ー2つの活動分野 Vessel:アプリケーション基盤 Titan: 可観測性の基盤 Cage: 負荷試験の基盤 Vessel(ベッセル)とは • 自社開発の共通基盤 • アプリケーションコンテナを載せている ◦ 日経電子版サービス • コンテナ船(container vessel)
  4. ハッシュタグ #nikkei_tech_talk 日本経済新聞の購読者 10 媒体 購読数 購読数合計 約231万人 朝刊販売部数 約125万人

    電子版有料会員数 約106万人 デジタル購読数 約120万人 日経電子版 有料会員数 年数 2010 2017 2025 約10万人 約50万人 約106万人 朝刊: 2025年12月時点 その他: 2026年1月時点
  5. ハッシュタグ #nikkei_tech_talk 共通アプリケーション基盤 Vessel について • SREチームが管理/運用する信頼性の高い基盤 ◦ 基盤としてサービスの信頼性を担保 ▪

    開発チームが意識せずとも高い信頼性を実現 13 Vessel アプリ コンテナ アプリ コンテナ アプリ コンテナ アプリ コンテナ アプリ コンテナ 開発チーム
  6. ハッシュタグ #nikkei_tech_talk 【現在】 障害時=リージョン切り替え TOKYO US Cluster-1 Cluster-2 GCLB Cluster-1 Cluster-2

    GCLB Cluster-BCP Cluster-1 Cluster-2 GCLB Cluster-BCP ①障害発生 ②USリージョンに クラスタ構築 ③トラフィック 切り替え 18 TOKYO US TOKYO
  7. ハッシュタグ #nikkei_tech_talk 【現在】 障害時=リージョン切り替え TOKYO US Cluster-1 Cluster-2 GCLB Cluster-1 Cluster-2

    GCLB Cluster-BCP Cluster-1 Cluster-2 GCLB Cluster-BCP ①障害発生 ②USリージョンに クラスタ構築 ③トラフィック 切り替え 19 TOKYO US TOKYO
  8. ハッシュタグ #nikkei_tech_talk クラスタ構築フェーズでの作業内容 • 全リソースを一から新規構築 GKE クラスタ・ノード、Pod作成に該当 • 基盤コンポーネントのセットアップ ◦

    IstioやArgoCDを手作業でインストールする • 60 を超えるアプリケーションの起動確認 20 調査 コンポーネントのセット アップ アプリの起動確認 ①障害の検知&調査 ②USリージョンにクラスタ構築 ③トラフィック切り替え クラスタ作成 GCLB切り替え
  9. ハッシュタグ #nikkei_tech_talk Cluster-1 Cluster-2 GCLB 24 Cluster-1 Cluster-2 GCLB 変更前

    変更後 東京-大阪マルチリージョンアクティブ構成 TOKYO TOKYO OSAKA
  10. ハッシュタグ #nikkei_tech_talk Cluster-1 Cluster-2 GCLB Cluster-1 Cluster-2 GCLB Cluster-1 Cluster-2

    GCLB ①通常時の運用 ②東京で障害発生&検知 ③東京を切り離す 25 東京-大阪マルチリージョンアクティブ構成の                        サービス継続手順 TOKYO OSAKA TOKYO OSAKA TOKYO OSAKA
  11. ハッシュタグ #nikkei_tech_talk • ダウンタイムがほぼ発生しない • 作業工数を大幅に削減可能 ◦ クラスタの構築→トラフィック切り替えのみ 26 削減

    調査 コンポーネントのセット アップ アプリの起動確認 クラスタ作成 GCLB切り替え 東京-大阪マルチリージョンアクティブ構成の利点 調査 GCLB切り替え
  12. ハッシュタグ #nikkei_tech_talk BCP クラスタ常時稼働の課題 • 常時稼働のクラスタが1つ増加 • コストが 1.5 倍になり、許容できない

    ※BCPクラスタは、復旧時に構築するクラスタである 30 ¥ cost Cluster-BCP Cluster-1 Cluster-2 Cluster-1 Cluster-2 TOKYO TOKYO US
  13. ハッシュタグ #nikkei_tech_talk ゼロスケール構成におけるサービス継続手順 Cluster-1 Cluster-2 GCLB ①通常時の運用 (USに常時クラスタ起動) ②東京で障害発生&検知 ④トラフィック変更

    32 Cluster-BCP Cluster-1 Cluster-2 GCLB Cluster-BCP Cluster-1 Cluster-2 GCLB Cluster-BCP Cluster-1 Cluster-2 GCLB Cluster-BCP ③ノード(Pod)を起動 ゼロスケール ゼロスケール US TOKYO US TOKYO US TOKYO US TOKYO
  14. ハッシュタグ #nikkei_tech_talk ゼロスケール構成の作業内容 33 • GitHub Actionsでノードの起動(Podの起動) ◦ 従来は、手作業で実施 クラスタ(USリージョン)

    ノード ノード Pod Pod Pod Pod … … 起動 ②災害時、ノードを起動 クラスタ(USリージョン) ノード ノード Pod Pod Pod Pod … … ①通常時、ノードを起動しない
  15. ハッシュタグ #nikkei_tech_talk ゼロスケール構成の利点 • 作業工数を削減可能 ◦ クラスタセットアップが完了した状態で作業開始 ▪ IstioやArgoCDがインストール済み ◦

    ノードとPodの起動のみでサービスが復旧 • 現在のクラスタ設計を変更する必要がない →復旧時間の短縮を迅速に実現可能 34 クラスタ作成 コンポーネントの セットアップ アプリの起動確認 アプリの起動確認 ノード起動
  16. ハッシュタグ #nikkei_tech_talk 従来の手順との比較 35 旧復旧手順 ゼロスケール構成 USクラスタ 災害時のみ起動 常時起動 クラスタセットアップ

    手作業で実施 完了済み 復旧方法 クラスタを1から構築 ノード(Pod)を起動のみ 作業内容 手作業でクラスタ構築 GHAで自動的に起動
  17. ハッシュタグ #nikkei_tech_talk 時間短縮 • 1時間22分 → 33分 ◦ クラスタ構築完了までの作業時間短縮 •

    自動化実現 ◦ 作業者のスキルに左右されない 36 クラスタ作成 コンポーネントの セットアップ アプリの起動確認 ノード起動 1時間22分 33分 アプリの起動確認