トピック

クラウドネイティブ・アプリケーションについて理解する

変化のペースが速いソフトウェア駆動型の市場で企業が成功を収めるには、アプリケーションを設計、構築、使用する方法を変化させなければなりません。クラウドネイティブ・アプリケーション開発は、クラウド・コンピューティングで確立されたテクニックとテクノロジーに基づいてアプリケーションを構築、実行、改良するアプローチです。  

クラウドネイティブ・アプリケーションとは

クラウドネイティブ・アプリケーションは、緩やかに結合された小型で独立したサービスの集合です。ユーザーからのフィードバックを継続的改善に速やかに取り入れる機能など、よく知られたビジネス価値の提供を目的に開発されています。つまりクラウドネイティブ・アプリケーション開発とは、新規アプリケーションの構築を迅速化し、既存アプリケーションを最適化して、すべてをつなげる手段です。その目標は、ユーザーが希望するアプリケーションをビジネスニーズに応じて提供することです。

それでは、クラウドネイティブ・アプリケーション開発の「クラウド」とは何でしょうか?アプリケーションが「クラウドネイティブ」である場合、プライベート、パブリック、ハイブリッドの各種クラウドで一貫した開発と自動化された管理を実現することを目的に設計されています。企業はクラウド・コンピューティングを採用することで、アプリケーションのスケーラビリティと可用性を向上させることができます。こうしたメリットは、セルフサービスによるリソースのオンデマンド・プロビジョニングや、開発から本番稼働までのアプリケーション・ライフサイクルの自動化によって実現します。

しかしこれらのメリットを完全に活用するには、新しい形態のアプリケーション開発が必要です。

このニーズに応えるのがクラウドネイティブ開発です。アプリケーションの構築とアップデートを迅速に行い、品質改善とリスク低減も同時に実現するアプローチです。具体的には、応答性と耐障害性に優れたスケーラブルなアプリケーションを、パブリック、プライベート、ハイブリッドのいずれのクラウド環境にも構築する方法です。

クラウドネイティブ・アプリケーションの概略

クラウドネイティブ・アプリケーション開発は、 IT 業界の流行語の 1 つのようにも聞こえますが、イノベーションのスピードを速めようとする組織が求める画期的な手段とも考えられます。クラウドネイティブ・アプリケーション開発とはどのようなものであると考えているか、Red Hat の副社長兼クラウド・プラットフォーム担当ジェネラルマネージャーである Ashesh Badani (アシェシュ・バダニ) に質問しました。

クラウドネイティブ・アプリケーションの構築方法

必要なのは、組織内の人材と、コラボレーションをサポートする自動化プロセスです。つまり、DevOps によって、開発チームと運用チームが共通の目的のもと、定期的にフィードバックを行う体制を作ることで、2 つのチームを連携させます。

コンテナを採用すると、アプリケーション・デプロイ・ユニットと自己完結型実行環境が理想的な形で実現し、こうした手法がサポートされます。DevOps とコンテナを利用すると、大規模な 1 つのリリースの完成を待つのではなく、マイクロサービスのような疎結合のコレクションとしてアプリケーションをリリースしてアップデートするほうが容易になります。

クラウドネイティブ開発は、アーキテクチャのモジュール性、疎結合、サービス独立性に主眼を置いています。各マイクロサービスは、ビジネス機能を実装して固有のプロセスで実行し、アプリケーション・プログラミング・インタフェース (API) またはメッセージングを通じて通信します。

ただし、クラウドネイティブ・アプリケーションの一環としてアプリケーション提供をスピードアップするには、マイクロサービスの導入から始めなくてはならないわけではありません。多くの組織は、実用的でサービスベースのアーキテクチャを使用してもレガシーアプリケーションを最適化できます。このような最適化は、継続的インテグレーションおよび継続的デプロイメント (CI/CD) や自動化されたデプロイ処理などの DevOps ワークフローによってサポートされます。

DevOps

DevOps とは、ビジネス価値や対応スピードの向上を目的とした、カルチャー、自動化、プラットフォームの設計に対するアプローチです。

DevOps について理解する

マイクロサービス

マイクロサービス・アーキテクチャは、アプリケーションを互いから独立した最小単位のコンポーネントへと分割します。

マイクロサービスについて

API

アプリケーション・プログラミング・インタフェース (API) は、アプリケーション・ソフトウェアを構築するための一連のツール、定義、およびプロトコルです。実装に関する詳細な知識がなくても、製品とサービスを接続できます。

API について

コンテナ

コンテナを使用すると、アプリケーションをランタイム環境全体とともにパッケージ化して分離することができるため、全ての機能を維持しながら異なる環境間でアプリケーションを簡単に移行できます。

コンテナについて理解する

Red Hat でクラウドネイティブ・アプリケーションを構築する理由

電気通信銀行医療、さらには酪農まで、どの業界に属していても、あらゆる企業はアプリケーションをビジネス戦略の中枢に置くソフトウェア企業でもあります。このソフトウェア駆動型のビジネス変革には、新しいアプリケーションを迅速に開発し、提供する必要があります。しかもユーザーはさらに高い品質を求めるようになっています。これは簡単な仕事ではありません。Red Hat では、現代の変化の激しい市場で競争に勝つには、プロセス、インフラストラクチャ、アーキテクチャへの投資が必要だと考えています。

このような課題の解決を支援するため、Red Hat は、アーキテクチャ、インフラストラクチャ、プロセスへの改善を実現するには新しいプラットフォームが必要だと考えています。最終的な目標は、高品質のアプリケーションをさらに俊敏に提供できるようにすることです。

多くの企業は、マイクロサービス・アーキテクチャや、より先進的な開発/運用ツールなどのアプローチを使用して、リリースサイクルの短縮と信頼性の向上を実現する必要があることを認識しています。従来、最も大きな課題の 1 つとなっていたのは、レガシー環境の変化に必要なロードマップでした。OpenShift Application Runtimes は、このような変革を単純化し、クラウドネイティブ開発を開始する上での労力とリスクを軽減します。

クラウドネイティブ・アプリケーションで高速化されるもの

クラウドネイティブ・アプリケーションを構築するということは、チームのコラボレーションの仕方を変え、チームをサポートするツールとプロセスを追加するということです。これらの変化により、分散システム環境のアプリケーションの構築が容易になるだけでなく、ビジネスを加速させるために必要なものをチームは得ることができます。

デリバリー

クラウドネイティブ環境を活用すれば、アプリケーションをより迅速に顧客へと届けられます。

変化

クラウドネイティブ・アプリケーションなら、変化する市場や顧客のニーズに対してより迅速に適応できます。

開発

新たなビジネスチャンスを発見した場合、早急に新しい機能やアプリケーションが必要となります。アジャイルなチームならば、時間的な制約にも対応しながらクラウドネイティブ・アプリケーションを開発できます。

イノベーション

イノベーションは、組織全体で起こす必要があります。クラウドネイティブ開発モデルに切り替えることで、チームはイノベーションのための作業に専念できるようになります。

IT リーダーに有益なヒントをメールでお届け

Red Hat Shares ニュースレターは、このようなクラウドネイティブ・アプリケーション開発のアドバイスなど、技術面で重要な情報をお届けします。

現時点では英語版のみです

クラウドネイティブ・アプリケーションに必要な基盤

クラウド・コンピューティング

コンテナと Kubernetes のプラットフォームにより、クラウドネイティブ・アプリケーションのデプロイを迅速化します。

クラウド・コンピューティング

クラウドネイティブ・アプリケーションの開発に適したアプリケーション・ランタイムとフレームワークを提供します。

クラウドネイティブ・アプリケーションについてさらに詳しく知る