
Kubernetes導入によるインフラ考えの変化
2022年05月22日 単 続龍
技術動向
18世紀初頭に蒸気機関が発明されて産業の変革と、それに伴う社会構造も変革を起こしておりました。当時の手作業から仕事が機械化にしたり、遠距離で効率よく人やモノを輸送できるようになりました。そして電力の導入による第2次産業革命、コンピューターの導入による第3次産業革命と、IoTやAIを用いて第4次産業革命と言われて世の中に猛スピートで進化を加速していることが感じられます。
速い発展に伴ってアジャイル開発および開発したアプリケーションをなるべく小さい単位で、短いサイクルでデプロィするニーズが出ており、ビジネスそのものを変革させるデジタルトランスフォーメーションの期待が高まります。
オンプレミスからクラウドへの進化
オンプレミス環境を構築することに当たってリソースを確保するために初期費用が高くて調達に必要な時間がかかるデメリットがあり、特に近年の半導体枯渇問題でハードウェアの調達による納期が間に合わないケースが出ております。一方、クラウドにもメリットとデメリットがありますが、クラウドを利用する場合、リソースの調達が必要なく初期費用で即時に利用できるメリットがあります。従来データセンターでサーバーを構築する作業から解放され、インターネット経由でクラウドに仮想サーバーおよびデータベースを自由に構築することができました。
コンテナーとクラウドの組み合わせ
マイクロサービスの概念から可搬性を持つコンテナーの利用が増えていく波になっておりますが、コンテナーを動かすときは、負荷分散や可用性を考慮することによって複数のホストマシンからなる統合分散環境を構築する必要があります。コンテナーを統合管理できるツールがコミュニティで数多く開発されていますが、代表的なコンテナーオーケストレーションツールは、Docker(Swarmモード)、Apache Mesos/Marathonがあります。
Kubernets(コンテナーオーケストレーションツール)の登場
kubernetsは大規模な稼働環境において数少ないエンジニアでコンテナーアプリケーションを管理することができるオーケストレーションツールです。
従来システムが持たない自律性と自己修復機能を持ち、Podやノードの自動スケールアウトとスケールインの拡張性と高可用性のアーキテクチャを提供します。マニフェストファイルに宣言的設定を記述してシステムのあるべき型を定義し、障害が発生しても人間が関与する必要がなく、あるべき型に収束することができます。
開発責任範囲の変化
従来のアプリケーション開発では、開発環境でコードを書いてビルトされた実行モジュールをテスト環境に配備します。期待された動作を確認してバグ修正を含めて対応します。
kubernetsを利用することによって開発者とシステム管理者の責任範囲の変化も生じます。
アプリケーションの実行に必要なすべてのファイルをコンテナーイメージにまとめてコンテナーイメージをコンテナーレジストリにアップロードすることは開発担当者の作業範囲になります。コンテナーイメージの可搬性を活用して環境依存せずにシステム管理者がテスト環境、ステージング環境の順番にコンテナーイメージをデプロイします。リリース承諾プローに従って本番環境へサービスインおよびバージョンアップを実施します。
システム管理者考え方の変化
オンプレミス構築の減少に伴ってシステム管理者が物理作業のラッキングがなくなる一方、開発と近いマニフェストファイルの書く能力が要求されます。手順書を作成してその通りで実施することは、本来インフラの主業になりますが、手順書の代わりにマニフェストファイルでシステムのあるべき型の記述が必要となります。また、システム管理者はログ分析やエラーの特定だと思われる開発者の強みを習得する必要があり、そのような技能を期待しております。
kubernets導入によるサービスの展開
お客様サービスを提供するため、マイクロサービスのアプリケーションを運用する型で、弊社がAzure kubernets Serviceを利用しております。万単位マルチテナントおよび百万単ユーザーへのサービスを提供してkubernetsの水平スケーリング・自己復旧・負荷分散機能を活用しております。また、Azure kubernets ServiceとAzure Active Directoryと連携して多要素認証や条件付きポリシーを利用することによってセキュリティ高いサービスを提供することを目指しております。