クラウドネイティブでは、アプリケーションの保存場所の記述が減り、構築方法や導入方法の記述に重きが置かれます。
次の動画、「クラウドネイティブとは」では、Andrea Crawfordが主要な概念の一部について、その概要を説明しています。
マイクロサービス(またはマイクロサービス・アーキテクチャー)は、独立して導入可能な、疎結合された多数の小さなコンポーネント またはサービスで1つのアプリケーションを構成する、アーキテクチャー・アプローチです。 これらのサービス(マイクロサービスともいいます)は通常、データベースとデータ・モデルを含む独自のテクノロジー・スタックを持ち、 REST API、イベント・ストリーミング、および メッセージ・ブローカーの組み合わせを介して相互に通信します。
マイクロサービスは、相互に影響を与えたり、エンド・ユーザーによる体験を中断したりすることなく、個別に導入したり再導入したりできるため、 継続的インテグレーション/継続的デプロイメント(CI/CD)やDevOpsなど、自動化された反復デリバリーの手法に最適です。
マイクロサービスは、まったく新しいクラウドネイティブ・アプリケーションの作成だけでなく、従来型のモノリシック・アプリケーションをモダナイズするためにも使用できます。
IT部門の幹部、開発部門の幹部、および開発者を対象とした最近のIBMの調査によると、マイクロサービスのユーザーの87%が、マイクロサービスの採用は費用と労力を投じる価値があることに同意しています。
開発者はしばしば、任意の環境でコードを実行するために必要な オペレーティング・システム (OS)のすべてのライブラリーと 依存関係 とともに、 マイクロサービスをコンテナ内にデプロイします。コンテナは、アプリケーション・ソースコード(この場合はマイクロサービス・コード)を組み合わせた軽量で稼働可能なアプリケーション・コンポーネントです。 仮想マシン (VM)よりも小さく、リソース効率が良く、移植性が高いコンテナは、最新のクラウドネイティブ・アプリケーションの 事実上の 計算ユニットです。
コンテナは、 パブリッククラウド、プライベートクラウド およびオンプレミスのインフラストラクチャーなど、ハイブリッド・マルチクラウド環境全体で一貫性のある導入体験とマネジメント体験を実現することにより、マイクロサービスのメリットを増強します。 しかし、クラウドネイティブ・アプリケーションの数が増えるにつれ、コンテナの数とその管理の複雑さも増します。 コンテナ化されたマイクロサービスを使用しているほとんどの組織は、Kubernetesなどのコンテナ・オーケストレーション・プラットフォームも使用して、コンテナの導入と管理を大規模に自動化しています。
IBMのお客様は、既存のアプリケーションの改良、新しいアプリケーションの構築、ユーザー体験の向上に取り組む必要性がさらに高まっていることを認識しています。 クラウドネイティブ・アプリケーションは、アプリケーションのパフォーマンス、柔軟性、拡張性を向上させることで、これらの要求に応えます。
メリット
デメリット
クラウドネイティブ・アプリケーションは、多くの場合、特化された複数の機能を備えています。 旅行関連のWebサイトでクラウドネイティブ・アプリケーションがどのように使用される可能性があるか考えてみましょう。 フライト、ホテル、車、特別プランなど、サイトで取り上げられる各トピックは、そのサイトの独自のマイクロサービスです。 各マイクロサービスは、他のマイクロサービスとは独立して新機能を展開できます。 特別プランや割引は、個別にスケールアウトすることもできます。 この旅行サイトは全体として顧客に提示されますが、各マイクロサービスは独立したままであり、他のサービスに影響を与えることなく、必要に応じて拡大縮小または更新できます。 以下は、その他のクラウドネイティブ・アプリケーションの例の一部です。
IBM Cloud Garageは、IBMのお客様に、拡張性の高い革新的なクラウドネイティブ・アプリケーションを迅速に構築するためのコンサルティングの専門知識を提供します。 このサービスは、あらゆる規模の企業が実際のビジネス・ニーズを解決するアプリケーションを設計して構築できる、イノベーション・ハブを提供します。
新しいクラウドネイティブ・アプリケーションを作成する場合も、既存のアプリケーションをモダナイズする場合も、開発者は以下の一貫した原則に従います。
クラウドネイティブ・アプリケーションは、多くの場合、コンテナに依存します。 コンテナの魅力は、柔軟性があり、軽量で、移植性があることです。 初期のコンテナ利用は、あるユーザー・セッションから次のユーザー・セッションにユーザー・データを保存する必要のないステートレス・アプリケーションに焦点を合わせる傾向がありました。
しかし、より多くのコア・ビジネス機能がクラウドに移行されるにつれ、永続ストレージの問題をクラウドネイティブ環境で対処することが必要になってきています。 そのために、開発者は、クラウド・ストレージへの新しいアプローチの方法を検討する必要があります。
クラウドネイティブ・アプリケーションの開発にマイクロサービスとモジュラーのアプローチが採用されているように、クラウドネイティブ・ストレージにも新しいアプローチが必要です。 クラウドネイティブ・データは、イベント・ログやシステム・ログ、リレーショナル・データベース、ドキュメント・ストアやオブジェクト・ストアなど、さまざまな場所に存在する可能性があります。
データのロケーション、保存の要求、移植性、プラットフォームの互換性、セキュリティーは、開発者がクラウドネイティブ・ストレージを計画するときに考慮しなければならない側面のほんの一部です。
クラウド利用可能アプリケーションとは、従来のデータセンターに導入するために開発されたアプリケーションですが、クラウド環境でも実行できるように後で変更されたものです。 一方、クラウドネイティブ・アプリケーションは、クラウドでのみ動作するように構築されています。 開発者は、拡張性が高く、プラットフォームに依存しない、複数のマイクロサービスで構成されたアプリケーションとなるように、クラウドネイティブ・アプリケーションを設計します。
クラウド・コンピューティングの短い歴史の中で、「クラウド対応」の意味は何度か変わりました。 当初、この用語は、インターネット上で機能するように設計されたサービスまたはソフトウェアに使用されていました。 今日、この用語は、クラウド環境で動作するアプリケーション、またはクラウド環境用に再構成された従来のアプリケーションを表すために、より頻繁に使用されています。 「クラウドネイティブ」という用語の歴史はさらに短く、クラウドでのみ動作し、クラウド・アーキテクチャーの特性を活用するために最初から開発されたアプリケーション、またはクラウドネイティブの原則でリファクタリングまたは再構成された既存のアプリケーションを指します。
クラウド・ベースのサービスまたはアプリケーションは、インターネットを介して提供されます。 これは、さまざまなクラウド・オファリングに自由に適用される一般的な用語です。 「クラウドネイティブ」は、より具体的な用語です。 クラウドネイティブは、クラウド環境で動作するように設計されたアプリケーションを表します。 この用語は、マイクロサービス、継続的インテグレーション、および継続的デリバリー(CI/CD)に依存し、任意のクラウド・プラットフォームを介して使用できるアプリケーションのことを指します。
クラウド・ファーストは、組織が新しいITサービスを立ち上げたり、既存のサービスを更新したり、レガシー・テクノロジーを置き換えたりする際に、クラウド・リソースを優先的に使用することをコミットするビジネス戦略を示します。 コスト削減と運用効率向上がこの戦略の主な意図になります。 クラウドネイティブ・アプリケーションは、クラウド・リソースのみを使用し、クラウド・アーキテクチャーの特性のメリットを活かすように設計されているため、クラウド・ファースト戦略に適しています。
IBM Cloudは、クラウドネイティブ・アプリケーション開発のリーダーであり、非常にオープンで安全な統合プラットフォーム上でエンタープライズ・アプリケーションを迅速に構築するための信頼できるパートナーです。
可用性の高いフルマネージドのKubernetesクラスターを、お客様のコンテナ化されたアプリケーションに、ワンクリックで導入できます。
コンテナ・イメージ、バッチ・ジョブ、またソースコードをサーバーレス・ワークロードとして実行します。サイジング、デプロイ、ネットワーキング、スケーリングは不要です。