CNAPで実現するプラットフォームエンジニアリング:Kubernetesの真価を引き出す鍵 (第2弾)

2025年7月29日掲載

キービジュアル

前回の記事「プラットフォームエンジニアリングとは?(vol.1) ー なぜ今、必要なのか?」では、プラットフォームエンジニアリングの基本的な概念と、それが現代のソフトウェア開発においてなぜ重要なのかについて解説しました。その中で「Platform Engineeringの6原則」についてもお話ししました。

第2弾では、Platform Engineeringの原則を実現する代表的な存在である「Kubernetes」環境に焦点を当て、Kubernetesが持つ大きな可能性と、課題について解説します。また、ソフトバンクが開発するCloud Native Application Platform (以降 CNAP) がそれをどのように支援するかを紹介します。

目次

Kubernetesの強み

Kubernetesを使ったことがない、または詳しくない方は、Kubernetesに対してコンテナ技術を活用したコンピューティングリソースのようなものとお考えかもしれません。確かにそのような側面もありますが、それだけではありません。Kubernetesは、豊富なエコシステムによって拡張が可能であり、アプリケーションのデプロイやクラウドサービスとの連携など、数多くの機能を実現できます。こうした拡張性の高さが、現代のアプリケーション開発・運用を力強く支えています

現代の「クラウドネイティブ」なアプローチ、つまりクラウド環境の特性を最大限に活用して設計・開発されるアプリケーションにおいて、Kubernetesはコンテナオーケストレーションプラットフォームのデファクトスタンダードとしての地位を確立しています

具体的にKubernetesがどのような価値を提供してくれるのか、その主な強みと機能を以下にまとめました。

カテゴリ主な機能 / メリット概要 / ユーザーにとっての価値
アプリケーション管理宣言的な構成管理

「あるべき状態」を定義するだけでKubernetesがその状態を維持し、再現性と一貫性が向上します。

オートスケーリング

負荷に応じてコンテナ数を自動調整し、リソース効率化と安定稼働を実現します。

サービスティスカバリと負荷分散

マイクロサービス間の連携を容易にし、オートスケール機能と連携しトラフィックを適切に分散します。

運用自動化自己修復機能

ノード障害やコンテナクラッシュ時に自動復旧することで高い可用性を実現します。

インフラ柔軟性ポータビリティ

オンプレミス、各種クラウドで一貫した運用を可能にし、特定の環境への乗り換えが困難な状況(ロックイン)を回避します。

クラウドサービスとの連携
(ロードバランサー、ストレージ等)

Kubernetesからクラウドプロバイダーが提供する各種サービスを効率的に管理・活用可能です。

開発効率とエコシステム必要な技術を必要なときに試せる環境

既存リソースを活用し、新しいツールやサービスを迅速に検証できるため、開発サイクルの短縮に貢献します。

活発なエコシステム(CNCF)

CNCFを中心とした巨大で活発なコミュニティにより豊富なツールや情報・サポートを得られます。

これらの特性により、Kubernetesはアプリケーションの迅速なデプロイ、高い可用性、スケーラビリティを実現するための強力な基盤となります。

Kubernetesを導入する際の課題

これほどまでに強力なKubernetesですが、そのパワーを最大限に引き出すにはいくつかの課題が存在します。

課題カテゴリNo課題名概要
運用・保守1バージョンアップの困難性Kubernetesはリリースサイクルが早くサポート期間が短いため、継続的に最新バージョンへ追従する必要があり、API変更や互換性問題のリスクも伴います。OSSツール等を導入した場合も同様に追従が必要となります。
2運用の複雑性

多機能であるがゆえに、運用には深い知識と経験を求められ、日々の管理・監視にも相応の工数がかかります。

3小規模システムには Too much

Kubernetesは柔軟かつ高機能なオーケストレーション基盤である反面、システム規模に対して過剰な設計・構成となるケースも多く、小規模システムや単一アプリの運用においては、導入効果よりもコスト・複雑性の方が上回ることがある。

学習・スキル4

学習コストの高さ

コンセプトやコンポーネントが多く、習得には時間と努力が必要です。

5

PaaS含めた一元管理が困難

Kubernetes単体ではシステムを完結できず、PaaS(例:DB、メッセージング、ID管理など)などの外部サービスと連携する必要があります。しかし、GitOpsの枠組みでこれら外部PaaSを一元的に管理することは容易ではありません。マルチクラウドで管理する場合は、さらに困難になります。

設定・管理6

CI/CDを別途準備必要

マネージドKubernetesはCI/CDそのものは提供しないため、ツールの導入・設計・運用が別途必要になり、準備に大きな工数がかかる傾向があります。

7

設定ファイルの煩雑さ

マニフェストファイルの記述量が多くなりがちで、管理が煩雑になることがあります。YAML地獄やkubectl地獄と揶揄されることもあります。

セキュリティ8

セキュリティ設定の難しさとリスク

柔軟な設定が可能である反面、セキュリティ設定の考慮漏れが重大なインシデントにつながる可能性があります。

この中でも最たる課題は、「バージョンアップの困難性」だと考えています。
その理由は、下記の5点となります。

  1. リリースが速い&サポート期間が短い: 年に3回ほどバージョンが上がり、各バージョンのサポート期間も1年程度と短めです。常に最新バージョンを追いかけないと、あっという間にサポート切れになります。

  2. APIの変更で動かなくなるリスク: バージョンアップのたびに、使っていたAPIが「非推奨」になったり「削除」されたりします。これに対応しないと、今まで動いていたマニフェストや自作ツールが突然エラーを起こして動かなくなる、という状況が発生します。

  3. 周辺ツールとの互換性: Kubernetes本体だけでなく、ネットワーク(CNI)、ストレージ(CSI)、Ingressコントローラー、監視ツールなど、連携する無数のコンポーネントとのバージョン互換性を維持する必要があります。これが非常に複雑で、1つ間違うと全体が機能不全に陥ることもあります。

  4. 本番環境でのアップグレードは超高難易度: サービスを止めずにアップグレードするのは至難の業。綿密な計画、徹底的な事前検証、段階的なロールアウトなど、膨大な手間と時間がかかります。それでも「何か起きるんじゃないか」というプレッシャーが常につきまといます。

  5. アップデートを怠った場合に生じる深刻な影響: アップデートを怠ると、セキュリティの脆弱性が放置されるだけでなく、サポート切れによりトラブル時の支援も受けられず、新機能の活用機会も失われるなど、結果的により深刻なリスクに直面します。

Kubernetesバージョンアップの困難性を示す事例として、社内のプロジェクトで実際に発生した2つのケースを紹介します。

1点目は、運用工数の話です。

とあるプロジェクトでは年に最低1回、数名がかりで丸1ヶ月をかけてKubernetesのバージョンアップを実施していました。作業には高度なKubernetesの知識が必要となるため、専門知識を持つ人員が長期間この作業に専念することになります。

2点目はバージョンアップにおけるリスクの話です。

社内で利用するシステムをAKSで構築していましたが、工数の関係からバージョンアップをしばらく見送っていました。しかし、ここ半年ほどの間にマイグレーションを実施した際、バージョンアップに伴ってシステムが全く動作しなくなり、対応に苦慮した経験があります。

この章で述べた点を考慮しつつ保守の工数や計画を綿密に立てて運用すれば、Kubernetesは期待以上の効果を発揮するでしょう。しかしこれらの課題は、特に大規模な組織や多数の開発チームを抱える環境では、Kubernetes導入の障壁となったり、導入後の効果を十分に得られない原因となったりすることがあります。

CNAPが実現する主要なメリット

そこで登場するのが、ソフトバンクが開発したCNAPです。

CNAPは、Kubernetesの柔軟性と拡張性を活かしながら、複雑な設定やバージョン管理、セキュリティガバナンスを一元的に解決できるプラットフォームです。以下のようなGitOpsやIaCの原則を採用し、誰もが再現性の高いインフラ運用を実現できる環境を提供します。

  • GitOpsのアプローチ: Fluxなどのツールを活用して、宣言的な状態管理と自動的な同期を実現します。
  • IaC(Infrastructure as Code)の徹底: Terraformによるインフラ定義やHelmによるアプリケーションパッケージングを通じて、再現性と効率性を高めます。
  • 自動化と標準化: CNAP開発チームによる徹底した事前検証と自動適用により、安全なバージョンアップを実現します。

下記画像は、実際の設定ファイル記載例(左側)と、その設定ファイルが展開された後のイメージ(右側)となります。これによりアプリケーション開発者もGitOpsを活用して、インフラをコードで管理できるようになります。

GitOps

CNAPを導入することで、以下の通り前述のKubernetesの課題を解決し、開発・運用チームの負担を大幅に削減することで開発サイクルの高速化に寄与します。

issue and solution

CNAPの機能は、これらの課題に対する解決策であり、その具体的な内容について、次回の記事で紹介します。

CNAPで実現する、より良い開発と運用の未来

Kubernetesは、クラウドネイティブ時代におけるアプリケーション開発・運用のための非常に強力な基盤です。 しかし、その反面、導入や運用のハードルは高く、プラットフォームエンジニアリングの考え方と、それを具現化するソリューションが不可欠です。

ソフトバンクが提供するCNAPは、まさにこの課題に応えるものです。CNAPはKubernetesの複雑さを適切に隠蔽し、以下のメリットをもたらします。

  • 開発者には: 迅速なデプロイ、セルフサービスによる俊敏性の向上、インフラを意識しない開発体験
  • インフラチームには: 標準化された運用、強化されたガバナンス、運用負荷の軽減

これにより、企業全体としてソフトウェアデリバリーの速度と品質を向上させ、ビジネス価値を最大化します。つまり、開発者の認知負荷を軽減し、優れた開発体験を実現するための中核技術であるKubernetes、その運用課題をCNAPが肩代わりすることで、プラットフォームエンジニアリング全体を加速させる起爆剤となり得るのです

CNAPにご興味をお持ちいただけましたら、ぜひお気軽にお問い合わせください。Kubernetesを活用したプラットフォームエンジニアリングの実現を、私たちがサポートします。

次回は、CNAPの具体的な機能、効果、導入事例について、さらに詳しく紹介できればと考えています。

関連サービス

CNAPは標準化されたアプリケーション実行環境を手軽に利用できるサービスです。リリースプロセスを自動化し、開発者自身がセルフサービスで実行環境を準備できるようになります。

MSPサービスのフレームワークを活用し、お客さまのDX実現につながる環境づくりをトータルサポートします。

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません