【くらうどねいてぃぶ】

クラウドネイティブ とは?

💡 クラウド前提で生まれた「クラウド育ちのアプリ」
📌 このページのポイント
クラウドネイティブの4つの柱 コンテナ Docker Kubernetes 軽量な実行環境 マイクロ サービス 小さく独立した機能 CI/CD 自動化 ビルド→テスト →デプロイ自動化 DevOps Dev Ops 開発と運用の 一体化 迅速なリリース クラウドの利点を最大限活用するための設計思想・技術体系 CNCF(Cloud Native Computing Foundation)が推進
クラウドネイティブ:クラウド前提で設計する4つの柱
ひよこ ひよこ

クラウドネイティブって「クラウドを使う」こととどう違うの?

ペンギン先生 ペンギン先生

オンプレのシステムをそのままAWSに移しただけでは「リフト&シフト」と呼ばれて、クラウドネイティブとは言わないんだ。クラウドネイティブは最初からクラウドの特性(スケーラビリティ・障害への耐性・APIドリブン)を活かす設計をしていること。サーバーが1台落ちても自動復旧するし、負荷に応じて自動でスケールする、というのが当たり前の世界だよ。

ひよこ ひよこ

具体的にはどんな技術を使うの?

ペンギン先生 ペンギン先生

CNCFが定義する主要な柱は4つ。コンテナ(アプリをポータブルにパッケージ化)、マイクロサービス(機能ごとにサービスを分割)、宣言的APIKubernetesのように「あるべき状態」を宣言する)、CI/CD(継続的に自動デプロイ)。これらを組み合わせて、変更に強く復旧が速いシステムを作るんだよ。

ひよこ ひよこ

CNCFってたくさんプロジェクトがあるけど、全部使わないといけないの?

ペンギン先生 ペンギン先生

CNCFのランドスケープマップを見ると数百のプロジェクトが並んでいるけど、全部使う必要はないよ。KubernetesPrometheus監視)・Envoyサービスメッシュ)あたりがデファクトスタンダードで、あとは必要に応じて選べばいい。

ひよこ ひよこ

既存のシステムをクラウドネイティブに作り替えるのって簡単にできるの?

ペンギン先生 ペンギン先生

これは「クラウドネイティブ化」で多くの組織がぶつかる壁でね。技術的にはモノリスマイクロサービスに分割するのが王道だけど、どこで切るかの判断が極めて難しい。ドメイン知識がないとサービスの境界を間違えて「分散モノリス」という最悪の状態になる。マイクロサービス間の通信が増えて遅延や障害点が増え、しかもデプロイは独立にできないという、モノリスマイクロサービス両方のデメリットを背負い込む。最近は「まずモノリスで作って、必要な部分だけ切り出す」という「モノリスファースト」が再評価されているのはそういう背景があるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「クラウドネイティブ」って出てきたら「クラウドの特性を活かす前提で作られたアプリや設計思想のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cloud Native」 = クラウド生まれの
💬 Cloud(クラウド)+ Native(生まれの・土着の)。クラウドが母国語のように自然に使えるアプリ、というニュアンスだよ
← 用語集にもどる