トピック

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

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

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

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

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

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

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

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

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

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

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

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

DevOps

DevOps is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness.

Understanding DevOps

Microservices

A microservices architecture breaks apps down into their smallest components, independent from each other.

Understanding microservices

APIs

An application programming interface (API) is a set of tools, definitions, and protocols for building application software. They connect products and services without having to know how they're implemented.

Understanding APIs

Containers

Containers allow apps to be packaged and isolated with their entire runtime environment, making it easy to move them between environments while retaining full functionality.

Understanding containers

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

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

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

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

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

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

Delivery

Apps get to customers faster when they can take advantage of a cloud-native environment.

Change

A cloud-native app will adapt quicker to changing markets and customer needs.

Development

New business opportunities mean you need new features and apps ASAP. Agile teams can develop cloud-native apps to meet time constraints.

Innovation

You need to innovate across your organization, and switching to a cloud-native development model frees up teams to do so.

The foundation you need for cloud-native apps

Cloud computing

A container and Kubernetes platform for faster deployment of cloud-native applications.

Cloud computing

A selection of application runtimes and frameworks well-suited for developing cloud-native apps.

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