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