【くらうどねいてぃぶ】
クラウドネイティブ とは?
最終更新:
💡 クラウド前提で生まれた「クラウド育ちのアプリ」
クラウドの特性(必要に応じた拡張、自動化、障害からの回復)を活かすことを前提に、アプリを設計・構築・運用する考え方。コンテナ・マイクロサービス・宣言的APIなどの技術が代表例。
📌 このページのポイント
- クラウドの伸縮性や分散環境を前提に、疎結合で、回復しやすく、観測・管理しやすいシステムを目指す
- CNCFの定義(v1.1)は、コンテナ・サービスメッシュ・マイクロサービス・イミュータブルインフラ・宣言的APIなどを代表例に挙げている
- CNCF(Cloud Native Computing Foundation)が定義を公開し、Kubernetesなどのオープンソースプロジェクトを支援している
- オンプレのシステムを作りを変えずにクラウドへ移しただけのものは、ふつう「クラウドネイティブ」とは呼ばない
クラウドネイティブって「クラウドを使う」こととどう違うの?
具体的にはどんな技術を使うの?
CNCFってたくさんプロジェクトがあるけど、全部使わないといけないの?
全部使う必要はないよ。CNCFの定義も、挙げた技術は例であって全部ではないとしている。たとえばコンテナの管理にKubernetesを選んだとしても、監視や通信の道具は、自分たちの課題に合わせて必要なものだけ選べばいいんだ。
既存のシステムをクラウドネイティブに作り替えるのって簡単にできるの?
もっと詳しく知りたい人へ
オンプレミスやプライベートクラウドでも「クラウドネイティブ」と言えるの?
言えます。CNCFの定義(v1.1)は、対象の環境としてパブリッククラウドだけでなく、プライベートクラウドとハイブリッドクラウドも挙げています。決め手は「どこで動かすか」ではなく、疎結合な構成と自動化によって、変更や障害に強いシステムを繰り返し同じ手順で作れるかどうかです。たとえば自社データセンターでKubernetesを使い、宣言的な設定と自動化で運用している場合もクラウドネイティブな作り方に当たります。
まとめ:ざっくりこれだけ覚えればOK!
「クラウドネイティブ」って出てきたら「クラウドの特性を活かす前提で作られたアプリや設計思想のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cloud Native」 = クラウド生まれの
💬 Cloud(クラウド)+ Native(生まれの・土着の)。クラウドが母国語のように自然に使えるアプリ、というニュアンスだよ