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


「ネイティブ」という言葉は、さまざまな国の人が国際語として英語を話すときに、母国語訛りがないかどうか、つまり英語そのものが母国語かどうかを示す文脈で、よく耳にする表現です。まぁ人それぞれ、「ネイティブ」という言葉との出会いはいろいろでしょうが、おそらく一般的にはネイティブ スピーカー(母国語話者)の「ネイティブ」が多いだろうと思います。

本来の「ネイティブ」は、実はあーだこーだ説明する必要はなくて、日本語に直せばそのままズバリ「土着民」です。別に言語に限った話ではなく、そこで生まれ育った人とよそ者を区別しているだけで、世田谷ネイティブの人もいれば、春日部ネイティブの人もいます。人類みな、どこかのネイティブです。寅さんだって、「わたくし、生まれも育ちも・・・」なんて長口上しなくても、「わたくし、柴又ネイティブです」と言えば、ひとことで済みます。けっこう便利な言葉です。

と、すれば、クラウドで生まれ育った人がクラウドネイティブとなるわけですが、クラウドでは人は育たないので、システムを擬人化しているわけですね。クラウド上で作られて、運用されているなら、それがクラウドネイティブなシステムということになります、言葉の上では。

現実には、クラウドネイティブは、「マイクロサービス」や「コンテナ」の普及と同時に盛んに使われ出した表現で、マイクロサービスやコンテナを活用することとほとんど同義で使用している人が大半です。単にクラウドを利用して開発・運用しているだけでは、クラウドネイティブとは認めてくれない、厳格なクラウドネイティブ奉行にも何度か遭遇しました。

とはいえ、言ったもん勝ちという側面もあって、履歴書に「英語はネイティブレベル」と盛って書いたりするように、実際どこからどこまでが真のネイティブか曖昧な状況では、とにかくクラウドネイティブと名乗っとけ、みたいなシステムもあるようです。決して盛っているわけではなく、「うちもクラウド使いだしたし、今日から我が社はクラウドネイティブだ!」と本気で思っているケースもあります。

それもこれも、クラウドネイティブの定義が曖昧なせいで、誰が悪いわけでもありません。

では、クラウドネイティブの元締め的な存在とも言えるCloud Native Computing Foundationの定義を見てみましょう。曰く、

『クラウドネイティブ技術とは、パブリック クラウド、プライベート クラウド、ハイブリッド クラウドのような先進的で動的なクラウド環境において、スケーラブルなアプリケーションを構築して運用するために有力となる技術であり、このアプローチの代表例としては、コンテナ、サービスメッシュ、マイクロサービス、イミュータブル インフラストラクチャ、宣言型APIが挙げられる。

これらの手法により、回復性と可観測性を備え、管理がしやすい疎結合システムの実現が可能となる。それに安定した自動化を適用することで、エンジニアはシステムの動作に影響するような変更を、簡単かつ頻繁に行え、予測どおりの結果を得ることができる。』

コンテナやマイクロサービスはクラウドネイティブな技術の例にすぎないのですね。重要なことは、クラウド環境でスケーラブルな疎結合システムを実現すること、のようです。

これは言い換えれば、クラウドならではの特性を生かした開発をすれば、あなたは立派なクラウドネイティブですと言っているようなものです。

順番としては、クラウドネイティブになるためにコンテナやマイクロサービスを使うのではなくて、以下のステップをたどるべきです。

コストやリソースの効率化を目指してクラウドを使いたい

クラウドを使うなら、その特性を生かしたい

その特性を生かすための技術を導入したい(例:コンテナ、マイクロサービス、Kubernetes)

それを効率よく管理するアプローチを採用したい(例:CI/CD、DevOps)

気付いてみたら、すっかりクラウドネイティブ!

この順番が逆になると、やっかいです。たとえば、「クラウドネイティブになりたい!」がスタート地点だったり、「Kubernetesが流行っているから、とにかく使ってみたい!」という動機から始めると、あとあと、「ん⁉ そもそも何がしたかったんだっけ」と、行き詰ってしまう危険性があります。本来、便利で合理的なはずのKubernetesも、「何で使うのか?」の目的を見失うと、複雑怪奇なシロモノになりかねません。

「クラウドネイティブになる!」という目標ではなく、何を解決するのか → そのための最善策は何かからスタートして、もし、クラウドがベストの選択なら、それを生かす方策を選択しながら結果的にクラウドネイティブになりましょう。

英語のネイティブスピーカーだって、よし、なろう!と思って、なれるものではありません。英語で意思を伝える、という目標を達成するための手段として、ネイティブスピーカーに発音をできるだけ近づける方法もあれば、たとえアクセントが強くても、誰にでも聞き取りやすい発音法を会得する、という方法もあるでしょう。より効果的に目標が達成されるのであれば、ネイティブになる必要はないのです。

関連トピックス:
カテゴリー: クラウド・仮想インフラ タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事のトラックバック用URL