クラウドネイティブ・アプリケーションとは
クラウドネイティブ・アプリケーションは、疎結合された小型で独立したサービスの集合です。ユーザーからのフィードバックを速やかに取り入れて継続的改善を実現する機能など、よく知られたビジネス価値の提供を目的に開発されています。つまりクラウドネイティブ・アプリケーション開発とは、新規アプリケーションの構築を迅速化し、既存アプリケーションを最適化して、すべてをつなげる手段です。その目標は、ユーザーが希望するアプリケーションをビジネスに必要なペースで提供することです。
それでは、クラウドネイティブ・アプリケーション開発の「クラウド」はどうでしょうか。アプリケーションが「クラウドネイティブ」である場合、そのアプリケーションはプライベート、パブリック、ハイブリッドクラウド全体で一貫した開発と自動化された管理を実現することを目的に設計されています。企業はクラウドコンピューティングを採用することで、アプリケーションのスケーラビリティと可用性を向上させます。こうしたメリットは、セルフサービスによるリソースのオンデマンド・プロビジョニングや、開発から本番稼働までのアプリケーションライフサイクルの自動化によって実現します。
しかし、これらのメリットを完全に活用するには、新しい形態のアプリケーション開発が必要です。
このニーズに応えるのがクラウドネイティブ開発です。これは、アプリケーションの構築とアップデートを迅速に行うとともに、品質改善とリスク低減も同時に実現するアプローチです。さらに具体的に言うと、応答性と耐障害性に優れたスケーラブルなアプリケーションを、パブリック、プライベート、ハイブリッドクラウド環境のいずれでも構築して実行する方法です。
クラウドネイティブ・アプリケーションについての概要
クラウドネイティブ・アプリケーション開発は、IT 業界の流行語の 1 つのようにも聞こえますが、イノベーションのスピードを迅速化しようとする組織が求める画期的な手段とも考えられます。クラウドネイティブ・アプリケーション開発とはどのようなものであると考えているか、Red Hat の副社長兼クラウド・プラットフォーム担当ジェネラルマネージャーである Ashesh Badani (アシェシュ・バダニ) に尋ねました。
クラウドネイティブ・アプリケーションの構築方法
必要なのは、組織内の人材と、それらの人材のコラボレーションをサポートする自動化プロセスです。つまり、開発チームと運用チームが共通の目的のもと、DevOps を通じて定期的にフィードバックを行う体制を作ることです。
このプラクティスを支えるのが、理想的なアプリケーションデプロイ単位であり自己完結型の実行環境であるコンテナの導入です。DevOps とコンテナを利用すると、開発者は 1 つの大規模なリリースの完成を待つ必要がなく、マイクロサービスのような疎結合のコレクションとしてアプリケーションを容易にリリースおよびアップデートすることができます。
クラウドネイティブ開発は、アーキテクチャのモジュール性、疎結合、サービスの独立性に主眼を置いています。各マイクロサービスは、ビジネス機能を実装し、固有のプロセスで実行され、アプリケーション・プログラミング・インタフェース (API) またはメッセージングを通じて通信します。この通信はサービスメッシュ層を通じて管理できます。
ただし、クラウドネイティブ・アプリケーションの一環としてアプリケーションの提供をスピードアップするには、マイクロサービスの導入から始めなくてはならないわけではありません。多くの組織は、実用的でサービスベースのアーキテクチャを使用してもレガシーアプリケーションを最適化できます。この最適化をサポートするのは、継続的インテグレーションおよび継続的デプロイメント (CI/CD) などの DevOps ワークフロー、完全に自動化されたデプロイメント運用、標準化された開発環境です。
DevOps
DevOps とは、ビジネス価値や対応スピードを向上することを目的とした、企業文化、自動化、およびプラットフォームの設計に対するアプローチです。
マイクロサービス
マイクロサービス・アーキテクチャは、アプリケーションをそれぞれが独立した最小単位のコンポーネントへと分割します。
API
アプリケーション・プログラミング・インタフェース (API) は、アプリケーション・ソフトウェアを構築するための一連のツール、定義およびプロトコルです。これにより、他の製品やサービスの実装方法を知らなくても、利用中の製品やサービスをそれらと通信させることができます。
コンテナ
コンテナを使用すると、アプリケーションをランタイム環境全体とともにパッケージ化して分離することができるため、機能を完全に維持しながら異なる環境間でアプリケーションを簡単に移動させることができます。
サーバーレス・アーキテクチャとは
クラウドネイティブ戦略の主なメリットは、コンピュート・リソースが複数の環境に分散している企業にとって、アプリケーション開発を迅速化できることです。たとえば、リソースの一部を Amazon サーバー、Google サーバー、オンプレミスで実行する Oracle データベースに格納している場合があります。クラウドネイティブ開発を採用すると、このようなハイブリッドクラウド・アーキテクチャからさらなる価値を引き出せます。ただし、そのためにはクラウドネイティブ戦略の一環として実行すべき追加の手順があります。
サーバーレスとは、アプリケーション開発者がサーバーのプロビジョニングやアプリケーションのスケーリングの管理を行う必要がない、クラウドコンピューティング・モデルです。こうしたルーチンタスクがクラウドプロバイダーによって抽象化されるため、開発者は従来のモデルよりもはるかに迅速にコードを本番環境にプッシュできます。
Red Hat でクラウドネイティブ・アプリケーションを構築する理由
電気通信、銀行、医療、さらには畜産業など、どの業界であっても企業は今や、アプリケーションをビジネス戦略の中枢に置くソフトウェア企業でもあります。このソフトウェア駆動型のビジネス変革には、新しいアプリケーションを迅速に開発して、さらに高い品質を求めるようになっているユーザーに提供する必要があります。これは簡単な仕事ではありません。現代の変化の激しい市場で競争に勝つためには、プロセス、インフラストラクチャ、アーキテクチャへの投資が必要だと Red Hat は考えています。
Red Hat を利用してアプリケーションを構築すると、アプリケーションおよびサービスの提供場所や形態にかかわらず、それらの間のセキュアな通信リンクを提供する Red Hat Service Interconnect などのソリューションをご利用いただけます。つまり、レガシーアプリケーションを引き続き元の環境で独立して稼働させつつ、今後構築してデプロイする新しいアプリケーションとの接続を維持できます。
多くの企業は、マイクロサービス・アーキテクチャや、より先進的な開発・運用ツールなどのアプローチを使用して、リリースサイクルの短縮と信頼性の向上を実現する必要があることを認識しています。従来、最も大きな課題の 1 つとなっていたのは、レガシー環境の変更に必要なロードマップでした。OpenShift Application Runtimes は、このような変革を単純化し、クラウドネイティブ開発を開始する上での労力とリスクを軽減します。
