クラウドネイティブとは

サーバー・ラックのドアが開いたデータセンターのミディアムショット

クラウドネイティブとは

クラウドネイティブとは、アプリケーションが存在する場所ではなく、アプリケーションがどのように構築およびデプロイされるかを指します。クラウドネイティブ・アプリケーションは、あらゆるクラウド環境に統合できるよう設計された、マイクロサービスとして知られる個別の再利用可能なコンポーネントで構成されています。

  • クラウドネイティブ・アプリケーションは、あらゆるクラウド環境に統合できるよう設計された、個別の再利用可能なコンポーネントで構成されています。
  • マイクロサービスは構成要素として機能し、多くの場合コンテナにパッケージ化されています。

  • マイクロサービスは全体として連携してアプリケーションを構成しますが、自動化およびオーケストレーション・プロセスを通じて、それぞれを個別に拡張し、継続的に改善し、迅速に反復することができます。

  • 各マイクロサービスの柔軟性により、クラウドネイティブ・アプリケーションの俊敏性と継続的な改善が強化されます。
ビジネス街をバックにスマホを持つ手

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

マイクロサービスとコンテナ

マイクロサービス(マイクロサービス・アーキテクチャーとも呼ばれます)は、単一のアプリケーションを、より小規模で疎結合で独立して展開できる多数のコンポーネントまたはサービスで構成されるアーキテクチャー・アプローチです。これらのサービス(マイクロサービスとも呼ばれます)には通常、データベースやデータ・モデルを含む独自のテクノロジー・スタックがあります。これらは、REST API、イベント ストリーミング、メッセージ ブローカーの組み合わせを介して相互に通信します。

マイクロサービスは、互いに影響を与えたり、エンドユーザー・エクスペリエンスを中断したりすることなく、独立して導入および再デプロイできるためです。これらは、継続的統合/継続的デプロイメント(CI/CD) やDevOpsなどの自動化された反復的なデリバリー手法に最適です。

マイクロサービスは、まったく新しいクラウド ネイティブ アプリケーションの作成に使用されるだけでなく、従来のモノリシック アプリケーションを最新化するためにも使用できます。

IT幹部、開発責任者、開発者を対象としたIBM®の調査によると、マイクロサービス利用者の87%が、マイクロサービスの導入には費用と労力をかける価値があると同意しています。

開発者は多くの場合、コンテナ内にマイクロサービスを展開しますマイクロサービスは、アプリケーションのソース コード (この場合はマイクロサービス コード) と、あらゆる環境でコードを実行するために必要なすべてのオペレーティング システム (OS) ライブラリおよび依存関係を組み合わせた、軽量の実行可能なアプリケーション コンポーネントです。コンテナは、仮想マシン (VM)よりも小さく、リソース効率が高く、移植性に優れており、現代のクラウドネイティブ・アプリケーションの事実上のコンピューティング ユニットです。

コンテナは、パブリック クラウドプライベート クラウド、オンプレミス インフラストラクチャなどのハイブリッド マルチクラウド環境全体で一貫した展開と管理エクスペリエンスを実現することで、マイクロサービスの利点を拡大します。しかし、クラウドネイティブ・アプリケーションが増えるにつれて、コンテナとその管理の複雑さも増大します。コンテナ化されたマイクロサービスを使用するほとんどの組織は、大規模なコンテナの展開と管理を自動化するために、Kubernetes などのコンテナオーケストレーションプラットフォームも使用しています。

アプリケーション開発

さあ、クラウドでエンタープライズ・アプリケーション開発を始めましょう

この動画では、Peter Haumer博士が、IBM Z Open Editor、IBM Wazi、Zoweなどのさまざまなコンポーネントとプラクティスを実演しながら、ハイブリッドクラウドでの最新エンタープライズ・アプリケーション開発について説明します。

メリットとデメリット

IBMのお客様は、既存のアプリケーションの改善、新しいアプリケーションの構築、ユーザー・エクスペリエンスの向上といった課題を常に抱えています。クラウドネイティブ・アプリケーションは、アプリのパフォーマンス、柔軟性、拡張性を向上させることで、これらの需要に応えます。

メリット

  • 従来のモノリシックなアプリケーションと比較して、クラウドネイティブアプリケーションは、アジャイルおよびDevOpsプロセスを用いた反復的な改善が行われるため、管理が容易になる場合があります。
  • 個々のマイクロサービスで構成されたクラウドネイティブ・アプリケーションは、徐々に自動的かつ段階的に改善され、継続的に新しく改善されたアプリケーションの主要な機能を追加していくことができます。

  • 改善は非侵入的に行うことができ、ダウンタイムやエンドユーザーのエクスペリエンスの中断を引き起こすことはありません。

  • クラウドネイティブアプリを支える弾力性のあるインフラストラクチャーによって、スケールアップやスケールダウンが容易になります。

  • クラウド ネイティブの開発プロセスは、今日のビジネス環境に求められるスピードとイノベーションにより適合します。

デメリット

  • マイクロサービスは、アプリケーションの改善に対する反復的なアプローチを可能にしますが、より多くの要素を管理する必要性も生み出します。1つの大規模なアプリケーションではなく、はるかに小規模な個別のサービスを管理することが必要になります。

  • クラウドネイティブ・アプリには、DevOpsパイプラインを管理し、従来の監視構造を置き換え、マイクロサービス・アーキテクチャーを制御するための追加のツールセットが必要です。

  • クラウドネイティブ・アプリケーションは迅速な開発とデプロイメントを可能にしますが、そのイノベーションのペースに対応できるビジネス文化も求められます。

アプリケーションの例

クラウドネイティブ アプリケーションには、多くの場合、特定の機能があります。クラウド ネイティブ アプリケーションを旅行ウェブサイトでどのように使用できるかを考えてみましょう。航空券、ホテル、車、特典など、このサイトで取り上げられる各トピックは独自のマイクロサービスです。各マイクロサービスは、他のマイクロサービスから独立して主要な機能を展開する場合があります。特典や割引も個々に拡張することができます。旅行サイトは全体として顧客に表示されますが、各マイクロサービスは独立したままであり、他のサービスに影響を与えることなく必要に応じて拡張または更新できます。

IBM Cloud Garageは、スケーラブルで革新的なクラウドネイティブ・アプリを迅速に構築するためのコンサルティング専門知識を、IBMのお客様に提供します。あらゆる規模の企業が現実世界のビジネス・ニーズを解決するアプリを設計・構築できるイノベーション・ハブを提供します。

開発原則

新しいクラウドネイティブ・アプリケーションを作成する場合でも、既存のアプリケーションをモダナイズする場合でも、開発者は一貫した一連の原則に従います。

  • マイクロサービス・アーキテクチャー・アプローチに従う: アプリケーションを単一機能サービス(マイクロサービス)に分割します。マイクロサービスは、疎結合ではありますが、独立性を維持しているため、ダウンタイムを発生させることなく、アプリケーションを段階的、自動化、継続的に改善できます。

  • 柔軟性と拡張性を最大限に実現するコンテナを利用する: コンテナは、ソフトウェアをすべてのコードと依存関係とともに1か所にパッケージ化し、どこでもソフトウェアを実行できるようにします。これにより、マルチクラウド環境での柔軟性とポータビリティーが最大限に実現します。コンテナでは、ユーザーが定義したKubernetesオーケストレーション・ポリシーを使用して、高速なスケールアップまたはスケールダウンも可能です。

  • アジャイル手法の採用: アジャイル手法により、作成と改善のプロセスが迅速化されます。開発者は、ユーザーからのフィードバックに基づいて更新を迅速に繰り返すことができ、動作するアプリケーションのバージョンをエンドユーザーの期待に可能な限り近づけることができます。

ストレージ

クラウドネイティブ・アプリケーションは多くの場合、コンテナに依存しています。コンテナの魅力は、柔軟性、軽量性、移植性にあります。コンテナの初期の使用では、あるユーザー・セッション間でユーザー・データを保存する必要のないステートレス・アプリケーションが中心になる傾向がありました。

しかし、より多くのコア・ビジネス機能がクラウドに移行するにつれて、永続ストレージの問題はクラウドネイティブ環境で対処する必要が生じます。このため、開発者はクラウド ストレージへの新しいアプローチ方法を検討する必要があります。

クラウド ネイティブ・アプリケーションの開発がマイクロサービスとモジュラー アプローチを取るのと同様に、クラウド ネイティブ ストレージも必要です。クラウドネイティブデータは、イベント ログやシステム ログ、リレーショナル データベース、ドキュメント ストアやオブジェクト ストアなど、さまざまな場所に保管できます。

データの場所、保存の必要性、移植性、プラットフォームの互換性、セキュリティーは、開発者がクラウドネイティブ・ストレージを計画する際に考慮しなければならない側面のほんの一部にすぎません。

クラウドネイティブと従来のアプリケーションの比較

クラウドネイティブとクラウド対応

クラウド対応アプリケーションとは、従来のデータセンターにデプロイするために開発されたが、後にクラウド環境でも実行できるように変更されたアプリケーションのことです。しかし、クラウドネイティブ・アプリケーションは、クラウド上でのみ動作するように構築されています。開発者は、クラウドネイティブ・アプリケーションを、スケーラブルで、プラットフォームに依存せず、マイクロサービスで構成されるように設計します。

クラウドネイティブとクラウド対応

クラウド コンピューティングの短い歴史の中で、「クラウド対応」の意味は何度も変化してきました。当初、この用語はインターネット上で動作するように設計されたサービスまたはソフトウェアに適用されていました。現在、この用語は、クラウド環境で動作するアプリケーションや、クラウド環境用に再構成された従来のアプリを表すために使用されることが多くなっています。「クラウドネイティブ」という用語は歴史が短く、当初からクラウドでのみ動作するように開発されたアプリケーションを指しました。また、クラウド アーキテクチャの特性や、クラウド ネイティブの原則に従ってリファクタリングおよび再構成された既存のアプリを活用することもできます。

クラウドネイティブとクラウドベースの比較

クラウドベースのサービスまたはアプリケーションはインターネット経由で提供されます。これは、さまざまなクラウド サービスに広く適用される一般的な用語です。クラウドネイティブはより具体的な用語です。クラウドネイティブとは、クラウド環境で動作するように設計されたアプリケーションのことです。この用語は、マイクロサービス、継続的統合、継続的デリバリー (CI/CD) に依存し、任意のクラウド・プラットフォーム経由で使用できるアプリケーションを表します。

クラウドネイティブとクラウド・ファーストの違い

クラウド ファーストとは、組織が新しい IT サービスを開始するとき、既存のサービスを更新するとき、またはレガシー テクノロジーを置き換えるときに、最初にクラウド リソースを使用することを約束するストラテジーを指します。コスト削減と運用効率がこのストラテジーを推進します。ネイティブクラウド・アプリケーションは、クラウドリソースのみを使用し、クラウドアーキテクチャの有益な特性を活用するように設計されているため、クラウドファースト戦略とよく組み合わせられます。

関連ソリューション
IBMのエンタープライズ向けJavaアプリケーション・サービス

Javaアプリケーションを開発および配信するためのフルマネージドのシングルテナント・サービス。

Javaアプリの詳細はこちら
DevOpsソリューション

DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。

DevOpsソリューションの詳細はこちら
エンタープライズ・アプリケーション開発サービス

クラウド・アプリケーション開発は、一度構築すれば、迅速に反復し、どこにでもデプロイできます。

アプリケーション開発サービス
次のステップ

IBM Cloudアプリケーション開発コンサルティング・サービスは、クラウド戦略を合理化するための専門家のガイダンスと革新的なソリューションを提供します。IBMのクラウドおよび開発のエキスパートと提携して、アプリケーションをモダナイズ、拡張、高速化し、ビジネスに変革をもたらします。

アプリケーション開発サービスの詳細はこちら IBM Cloudを無料で構築開始