クラウドネイティブ()は、クラウドコンピューティングの特性を前提として、アプリケーションを設計・構築・運用する考え方である。クラウドネイティブコンピューティング(cloud native computing)とも呼ばれる。Cloud Native Computing Foundation(CNCF)がこの語の定義文書を公開し、Kubernetesをはじめとする関連技術の開発を主催している。同文書は、これをワークロード(実行させる処理の単位)を大規模に、プログラムによって反復可能な形で開発・構築・配置できるようにする実践とし、疎結合なシステムを特徴に挙げる。
概要 クラウドの利用には、既存のアプリケーションをそのままクラウドへ移す方法もある。TechTargetは、こうしたアプリケーションを「クラウドベース」と呼び、大きなアーキテクチャの変更を受けずにクラウドへ移された既存のアプリケーションが多く、クラウドが本来もつ特性を十分には活用していないとしている。TechTargetはまた、クラウドネイティブとクラウドベースは混同されやすい語であり、いずれもクラウドの基盤上で動くが、最初からクラウドに向けて設計されるか否かという設計の点で異なるとする。
CNCFは、自らを非営利のLinux Foundationの一部であり、Kubernetes・Prometheus・Envoyなどのオープンソースプロジェクトを支えるコミュニティであると説明している。同財団が公開する定義文書「CNCF Cloud Native Definition」のバージョン1.1(2024年2月26日承認)は、この実践が、パブリッククラウド・プライベートクラウド・ハイブリッドクラウドといった環境で、組織の要求に応える形で行われるものとし、安全に、回復力があり、管理でき、持続可能で、観測できる形で相互運用される疎結合なシステムによって特徴づけられるとする。
同文書は、その技術とアーキテクチャは典型的には、コンテナ、サービスメッシュ(サービス間の通信を担う基盤層)、マルチテナント、マイクロサービス、不変インフラストラクチャ、サーバーレス、宣言型APIの組み合わせからなるとし、この列挙は網羅的ではないと注記している。なお、併載された公式の日本語訳は、英語本文と異なり、コンテナ・サービスメッシュ・マイクロサービス・イミュータブルインフラストラクチャ・宣言型APIの5つを代表例に挙げ、疎結合・回復性・可観測性といった訳語を用いている。
CNCFは、堅牢な自動化と組み合わせることで、組織が影響の大きい変更を、少ない労力と明確な関心の分離のもとで頻繁かつ予測どおりに行えるようになるとしている。
主な要素 CNCFの定義文書とTechTargetの解説記事で挙げられる主な構成要素は次のとおりである。
コンテナ アプリケーションと実行に必要なものを1つの単位にまとめ、OSをアプリケーション間で共有しながら軽量に実行するOSレベルの仮想化の技術。CNCFは構成する技術の1つに挙げている。 マイクロサービス アプリケーションを、独立した小さなサービスの集まりに分けて構成する方式。TechTargetは、クラウドネイティブアプリケーションがこのアーキテクチャを用いるとする。 宣言型APIとオーケストレーション 目標とする状態を宣言的に記述し、その状態に合わせて実行環境を自動的に調整させる方式。CNCFも宣言型APIを構成技術の1つに挙げる。Kubernetesの公式文書は同ソフトウェアを、コンテナ化されたワークロードとサービスを管理し、宣言的な構成と自動化を実現するオープンソースのプラットフォームと説明している。TechTargetも、Kubernetesのようなオーケストレーションの技術が用いられるとする。 不変インフラストラクチャとInfrastructure as Code 稼働中のサーバーを書き換えず、新しい実体を作り直して変更を反映する考え方。TechTargetは、Infrastructure as Code(コードによる基盤の定義)がこの考え方を促すとしている。 CI/CDとDevOps 変更の検証と配置を自動化する継続的インテグレーション・継続的デリバリー(CI/CD)と、開発と運用の連携を重視するDevOps。TechTargetは、クラウドネイティブアプリケーションがCI/CDパイプラインでテストと配置を自動化するとし、DevOpsの実践者がこれを用いるとしている。 オブザーバビリティ 稼働中のシステムの内部状態を外部から得られるデータで把握できるようにすること(オブザーバビリティ)。CNCFの定義文書は、観測できることをクラウドネイティブなシステムの特徴の1つに挙げる。CNCFがホストするOpenTelemetryの公式文書は、これがトレース・メトリクス・ログといったテレメトリーデータ(システムが出力する計測データ)の分析によって実現されると説明している。ログ管理や分散トレーシングも関連する分野である。
歴史 Kubernetesの公式文書によれば、Googleは2014年に同ソフトウェアをオープンソースとして公開した。翌2015年7月には、Docker・Red Hat・Google・IBMなどが主導してCloud Native Computing Foundationが発足し、Linux Foundationがその運営に協賛した。Publickeyは、同財団を、コンテナ型仮想化に対応し動的にスケジュールされるマイクロサービス指向のアプリケーションの推進を目的とした団体と説明している。2016年3月には、Kubernetesの知的所有権がGoogleから同財団へ正式に移管され、同財団が主催する最初のプロジェクトとして受け入れられた。
定義文書は公開リポジトリで公開されており、2024年2月26日にはCNCFの技術監督委員会(Technical Oversight Committee、TOC)と理事会(GB)がバージョン1.1を承認した。
2024年11月には、CNCFが基幹イベント「KubeCon+CloudNativeCon」を2025年6月16日と17日に東京で開催すると発表し、日本での開催は初めてとされた。
関連する概念 TechTargetは、クラウドコンピューティングのアーキテクチャに向けて設計されたプログラムを「クラウドネイティブアプリケーション」と定義している。
関連項目 クラウドコンピューティング Cloud Native Computing Foundation Kubernetes マイクロサービス DevOps オブザーバビリティ
脚注
参考文献
外部リンク CNCF Cloud Native Definition - Cloud Native Computing Foundation(英語・日本語訳併載) Cloud Native Computing Foundation(英語)