Apache MesosからKubernetesへ受け継がれた「分散基盤をOS化する」発想
共通の運用作法を実現するために必要不可欠な3つの要素が、GitOps、ポリシー、ライフサイクル/フリート管理だ。
GitOpsは、アプリケーションのデプロイやインフラの構成変更といった変更作業を安心・安全に実行するための仕組みだ。変更の入口をGitに一元化することで、何が変更されたかの差分の可視化、いつ誰が変更したかの履歴管理、そして問題発生時の確実なロールバックが可能になる。変更ポイントが明確になることで、「このシステムは怖くて触れない」という状況が減り、安心して継続的なリリースができるようになる。
ポリシーを整備する狙いは、禁止事項を増やすのではなく、最低限守るべき基準を自動で担保することにある。権限管理やネットワーク境界の設定、ソフトウェアサプライチェーン、脆弱性の最低基準といった、毎回設計やレビューが必要になりがちな要素から整備を始めるのが有効だ。開発者にとってこれらはコーディングと直接関係しない領域であり、共通化によって本来の作業に専念できるようになる。
KubernetesなどのOSSを活用する上で、ライフサイクル管理も必要不可欠だ。OSSでは、新しいバージョンや機能のリリースが頻繁に行われ、脆弱性やバグへのタイムリーな対応が求められる。そのため、いかに更新作業を安定・安全かつ効率的に実行できるかが重要だ。
具体的には、更新前の検証や段階的な適用手順を整備し、障害の影響範囲をコントロールしながら、本番に適用し続けねばならない。そこでKubernetesクラスタの作成・更新・廃棄の流れを自動化前提で設計することがポイントになる。これを怠ると、環境が増えるにつれて差異が拡大し、アップグレードが先送りされ、限られた人材しか対応できないリスクが高まる。
このリスクを軽減する上で、一元管理への転換も重要だという。つまり、クラスタを個別に管理するのではなく、環境や目的に応じてグループ化(フリート)し、フリートごとにライフサイクルの自動化を適用していく。そうすることで、運用のスケーラビリティを確保しつつ、環境間の差異を極力なくしていくことにつながるという。
これらの設計思想の源流は、2010年代前半、TwitterやAirbnbといった新興企業がトラフィックの急増によるスケールに苦しんでいた時代に遡ると、町田氏は歴史を振り返る。その際、大規模分散処理基盤の技術としてKubernetesと並んで注目されていたのが「Apache Mesos」だ。「分散基盤をOS化する」というMesosの発想と、大規模分散環境運用の知見は、コマーシャルサポートを担ったMesosphere社からD2iQへ、そしてNutanixへと受け継がれた。
その技術は現在、Nutanix Kubernetes Platform(NKP)として結実している。NKPはクラスタのライフサイクル管理、セキュリティ/ポリシー管理、GitOps、可観測性などを標準搭載し、本セッションで紹介された共通プラットフォームと推奨ルート(Golden Path)の整備を一気通貫で支援するソリューションだ。
最後に町田氏は「本日お伝えしてきたGolden Pathの、最初の一歩を整備するところから始めてほしい」と呼びかけ、講演を締めくくった。
ニュータニックス・ジャパン合同会社からのお知らせ
本セッションでご紹介したサービスにご興味を持たれた方は、ぜひ公式サイトをご覧ください。

