
Cloud-Native Applications at the Speed of Low-Code
Available Now • On-Demand
クラウドはアプリケーションの開発方法を変えます。そして、組織の競争力を高めるために必要な俊敏性をもたらします。これはどういうことを意味するのでしょうか。
このガイドではその答えを探るとともに、クラウドコンピューティングに関するあらゆる疑問に答えます。また、クラウドネイティブについても詳細に説明します。さらに、デジタルトランスフォーメーションの一環としてクラウドおよびクラウドネイティブ開発の導入を成功させる方法も紹介します。
クラウドネイティブとは、クラウドコンピューティングインフラが持つ柔軟性、拡張性、レジリエンス、弾力性というメリットをフルに活用して、アプリケーションの設計、作成、実行を行うアプローチです。
ただし、クラウドコンピューティングとは少し違います。
クラウドネイティブは最新のアプリケーション構築方法です。開発・デリバリープロセスにおいて、継続的統合と継続的デリバリー(CI/CD)の原則、コンテナベースのエンジン、オーケストレータを使用します。
アプリケーションのデプロイ先(オンプレミス、パブリッククラウド、プライベートクラウド、ハイブリッドクラウド)よりも、開発方法が重視されます。
クラウドネイティブアプリケーションはクラウド上で実行できるように設計されています。疎結合であり、クラウド向けにパフォーマンスが最適化されていて、クラウドベンダーが提供するマネージドサービスに向いています。クラウドネイティブアプリケーションは継続的デリバリー手法で構築されます。
クラウドとクラウドネイティブの比較: クラウドネイティブ化というパラダイムシフトの考察
革新的なアイデア、エクスペリエンス、改善をソフトウェアとして着実にデリバリーできるため、スピードやカスタマーエクスペリエンスが向上し、競争上の優位性につながります。
Netflix、Uber、Airbnbなどは「初めからクラウドを前提としている」企業です。こうしたクラウドサービス企業は、従来のオンプレミス構成に頼らず、クラウドのインフラとデリバリーを最大限活用することに特化しています。
ここまではクラウドネイティブアプリケーションの概要を説明してきました。次はアーキテクチャを見ていきましょう。通常、クラウドネイティブアーキテクチャは以下の要素で構成されます。
コンテナは、軽量でポータブルなスタンドアロンのソフトウェアパッケージです。アプリの実行に必要なコード、ランタイム、システムツール、システムライブラリ、設定などがすべて含まれています。小型で効率的なソフトウェアであり、Dockerなど専用のPaaSで開発され、必要に応じていつでもすばやく簡単に複製してデプロイできます。
Kubernetesは、コンテナのスケジュール、負荷分散、デプロイを処理するオーケストレータです。コンテナの起動、停止、修復を実行します。また、必要に応じてアプリの拡張、不要になったコンテナの削除、障害が発生したコンテナのリプレースを実行します。
Kubernetesのパフォーマンス
ローコードプラットフォーム
マイクロサービスは、大型のモノリシックアプリケーションを分割し、互いに連携する独立したサービスとして用意するという発想で作成された、小型のソフトウェアです。コンテナに格納され、Kubernetesクラスタにデプロイされます。マイクロサービスアーキテクチャでは、アプリケーション全体ではなく1~2個のマイクロサービスに手を加えれば変更が終わるため、アプリケーションの更新、変更、再デプロイを高速に実行できます。
サービスメッシュは、アプリケーションのデータ共有方法を管理するためにアプリに組み込まれた、参照可能な専用インフラレイヤーです。アプリが拡張して最適化が必要になった際に通信を文書化するための重要な手段になります。
開発(Dev)から本番(Ops)へアプリケーションを移行するプロセスの統合・自動化をベースとした手法であり哲学であるDevOpsは、CI/CDのプラクティスをサポートします。IT組織はソフトウェアを小さく分けて継続的に開発、テスト、リリースします。熟練の開発スタッフやITスタッフを抱える大規模なエンタープライズであれば、この方法で1日に複数回(ときには数百回)ソフトウェアをデプロイできます。
企業は急速なデジタルトランスフォーメーションの真っ只中にあり、顧客、パートナー、従業員のエクスペリエンスを改善・強化するためのプロセスデジタル化に取り組んでいます。
以前は従来のIT組織には2つの方法がありました。
いずれの方法を選択した場合も、ソリューションはいつかレガシーシステムになり、組織はそれに伴って発生する問題への対応を迫られます。
クラウドネイティブは、この状況にパラダイムシフトを起こしました。DevOpsやCI/CDの原則に従ってリリースサイクルの高速化を実現する動的な環境をもたらし、クラウド環境で迅速に進化・拡張させることができるソフトウェアを構築できるようにしたのです。
ここで、クラウドネイティブアプローチのメリットをいくつか詳しく見ていきましょう。
CI/CDとDevOpsに加え、コンテナやコード、その他のコンポーネント(API、ルール、ワークフローなど)といった構成要素を再利用できるため、開発が高速化し、リリース頻度も増加します。モジュール化によってスピードとシンプルさがもたらされ、ソフトウェアのテストや本番へのデリバリーが加速します。
DevOpsプラクティスを採用すると、ITスタッフがソフトウェアをすばやく開発、連携、テストして、できあがったものを漸次的にデプロイできます。「早く失敗し、早く修正する」というアプローチにより、ユーザーに提供する前の早い段階で問題を特定・解決し、全体的なエクスペリエンスを向上させることができます。CI/CDプロセスでは、ソフトウェアをシームレスに更新でき、ユーザーへの提供を中断する必要もありません。さらに、顧客主導型のサービスを市場にすばやく提供できます。
クラウドネイティブ環境では、クラウド環境を管理するという作業全般がさらに自動化されます。必要に応じてスケールアップやスケールダウンができるエラスティックコンピューティングでは、インフラの常時稼働が不要になります。
開発面では、新たなテストサイクルを実行することなくテスト済みのマイクロサービスを他のクラスタに組み込むことができるため、リソースを削減できます。また、反復的なプロセスをITによる自動化で管理するため、スタッフの時間の削減にもつながります。さらに、ダウンタイムの減少により間接的にも影響を及ぼします。
Amazon Web Services(AWS)、Microsoft Azure、Google Cloudなどの大手クラウドベンダーがサーバーレスプラットフォームを提供しています。つまり、こうしたベンダーがネットワークの構成、プロビジョニング、拡張、クラウドインスタンスの管理を代行してくれるのです。開発者はコードやイベントトリガーを用意して実行するだけです。
事業継続性は先進的なデジタルエンタープライズにとって非常に重要です。サービスが疎結合になっているクラウドネイティブアーキテクチャは、冗長性、耐障害性、自動リカバリに優れています。
コンテナとKubernetesを使用するアプローチでは、障害が発生したコンテナは自動的に除外され新しいコンテナがデプロイされるため、ダウンタイムが大幅に短縮されます。レジリエンスが高いことで、コストの削減、ITの他の優先事項へのリソースの配分、信頼性の向上といったメリットも生まれます。
組織はオンプレミス、パブリッククラウド、プライベートクラウド、ハイブリッドを組み合わせた複数の環境を利用しています。クラウドネイティブアプリケーションを開発した場合、これらのアプリケーションを実行するためのコード変更や、インフラごとのコード変更が必要ありません。この移植性のおかげでベンダーロックインも発生しません。
クラウドネイティブのアプリケーションとアーキテクチャはインフラから独立しています。そのため、ビジネス部門とIT部門のコラボレーションを促進して、ビジネス要件への対応やソフトウェアのカスタマーエクスペリエンスの検討に投入できるリソースを増やすことができます。
クラウドは、第三者のコンピュータ上で実行されるアプリケーションを保有しているようなものです。ユーザーはアプリケーションを使用するだけであり、アプリケーションの実行やアクセスの提供、コンピュータ自体の管理はその第三者が行っています。
クラウドネイティブは、別の組織のコンピュータファームをまるごと使用するようなものです。アプリケーションの仕組みや実行方法を再考案して、大規模なコンピュータファームのメリットを活用できるようにします。
「クラウドネイティブコンピューティングは、単なる大規模ソフトウェアインフラの実装アプローチではありません。先進的なアプリケーションのコーディング、設計、連携、アーキテクチャ、実行、セキュリティに関するすべてを変えるパラダイムシフトなのです」
しかし、クラウドを使用するアプリケーションがすべてクラウドネイティブであるとは限りません。クラウドベースやクラウド対応のものもあります。相違点は以下のとおりです。
クラウドネイティブアプリ | クラウドベースアプリ | クラウド対応アプリ |
---|---|---|
|
|
|
クラウドアプリケーション開発とローコードに関するページで、高速なローコードと高性能・高機能な最新クラウドプラットフォームの組み合わせによってもたらされるメリットをご確認ください。