第1章. クラウド・ネイティブ・アプリケーションとは何か?
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
言葉の中で最も危険なフレーズは、"我々はいつもこのやり方でやってきた "というものだ。1
グレース・ホッパー、『コンピューターワールド』誌(1976年1月号)
この本を読んでいるということは、少なくともクラウドネイティブという言葉を耳にしたことがあるに違いない。もっと言えば、ベンダによって書かれた、息をのむような称賛とドル記号を目に浮かべた多くの記事のいくつかを目にしたことがあるだろう。もしこれが、この言葉に関するあなたの経験の大部分だとしたら、この言葉を曖昧でバズワード的なもの、つまり、最初は便利なものであったかもしれないが、その後何かを売りつけようとする人々に乗っ取られてしまった一連の市場的な式の1つに過ぎないと考えるのも無理はないだろう。以下も参照のこと:Agile、DevOps。
同じような理由で、「クラウドネイティブ定義」をウェブ検索すると、アプリケーションがクラウドネイティブであるために必要なことは、「正しい」言語やフレームワークで書かれていること、あるいは「正しい」テクノロジーを使っていることだと思うかもしれない。2またはフレームワークで書かれていること、あるいは「正しい」テクノロジーを使用していることだと思うかもしれない。確かに、言語を選択することで、生活が大幅に楽になったり、大変になったりすることはあるが、アプリケーションをクラウドネイティブにするために必要でも十分でもない。
では、クラウドネイティブとは、単にアプリケーションの実行場所の問題なのだろうか?クラウドネイティブという言葉は、確かにそれを示唆している。あなたがする必要があるのは、不便な古いアプリケーションをコンテナに入れ、Kubernetesで実行することだけだ。3古いアプリケーションをコンテナに入れ、Kubernetesで実行するだけで、クラウド・ネイティブになるのだろうか?そうではない。あなたがしたことは、アプリケーションのデプロイと管理を難しくしただけだ。4Kubernetesで動く粗雑なアプリケーションは、粗雑なままだ。
では、クラウド・ネイティブ・アプリケーションとは何か?この章では、まさにそれに答える。まず、現在に至るまでの(そして特に)コンピューティング・サービス・パラダイムの歴史を検証し、絶え間ないスケールへのプレッシャーが、しばしば膨大なスケールで高レベルの信頼性を提供するテクノロジーの開発と採用を推進した(そして今も推進している)経緯について説明する。最後に、このようなアプリケーションに関連する特定の属性を特定する。
これまでのストーリー
ネットワーク化されたアプリケーションの物語は、スケールへのプレッシャーの物語である。
1950年代後半、メインフレームコンピューターが登場した。当時は、あらゆるプログラムやデータが1台の巨大なマシンにストアされ、ユーザは演算能力を持たないダム端末を使ってアクセスすることができた。すべてのロジックとすべてのデータは、ひとつの大きな幸せなモノリスとして同居していた。よりシンプルな時代だった。
1980年代、安価なネットワーク接続PCの登場ですべてが変わった。ダム端末とは異なり、PCはそれ自身である程度の計算ができるようになり、アプリケーションの ロジックの一部をPCにオフロードすることが可能になった。プレゼンテーション・ロジック、ビジネス・ロジック、データを分離したこの新しい ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access