Skip to Content
ガイド

モダンなアプリとは 明確なガイド

モダンなアプリケーションは、アジャイルと DevOps のベスト・プラクティスを備えたコンテナなどのクラウドネイティブなテクノロジーを活用して、大規模な移植性、信頼性、俊敏性を提供します。

コンテナとは

モダンなアプリケーションとは、最新の技術、開発方法、ベスト・プラクティスを使用して構築・展開されるあらゆるアプリケーションであり、最適なユーザー・エクスペリエンスを提供します。現代のアプリケーションは、クラウドネイティブです。これらは、緊密に結合されたモノリシック・アプリケーションとは対照的に、API を介して相互に通信するマイクロサービスとして設計されています。これらのマイクロサービスベースのアプリケーションは通常、コンテナや Kubernetes などのクラウドネイティブ技術を活用します。

モダンなアプリケーションは、俊敏性、スケーラビリティ、移植性、信頼性を念頭に構築されています。

モノリシックではなくマイクロサービスであるため、拡張性、再利用性、使いやすさに優れています。

アジャイル開発手法や DevOps のベスト・プラクティスに従って構築されることが多く、継続的な統合と配信(CI/CD)パイプライン全体の自動化に重点を置いています。

では、今日のテクノロジーとはどのようなものでしょうか。このガイドでは、アプリをモダンにするさまざまな機能について詳しく見ていきます。

詳細を見る:モダンなアプリケーション開発の徹底解説

関連リソース

ナレッジ記事
モダンなアプリケーションが総所有コストを削減する方法

コンテナのメリット

アプリケーション開発の従来のアプローチでは、アプリケーションは単一の緊密に統合されたコードベースで構築されています。一方、マイクロサービス・アーキテクチャでは、アプリケーションが緩やかに結合されたサービスの集合として設計されます。

この開発アプローチには、多くの利点があります。

  • テスト可能なコード
  • デバッグ、保守、更新が容易
  • ストレージとコンピューティング・リソースのプロビジョニングをきめ細かく制御
  • 耐障害性を高め、アプリケーションの耐障害性を向上
  • ポータブルで、個別に展開可能。コンテナなどの仮想化技術により、コンポーネントをソフトウェアやハードウェア環境から切り離すことができます。

独自に展開可能なモジュラー・サービスのコレクションを扱うため、他のサービスを中断することなく、1 つのサービスで作業できます。また、サービス・バイ・サービス・レベルでの構築、テスト、展開、保守、アップグレードを行う機能により、開発時間を大幅に削減できます。

コンテナを利用するメリット

マイクロサービス・アーキテクチャにより、開発者はコンテナや仮想マシンなどの仮想化技術の可能性を最大限に引き出すことができます。これらのコア仮想化技術のいくつかを見てみましょう。

  • 仮想マシン(VM):ハードウェア・レベル(OS やハードウェアを含む)で仮想化を可能にします。ハイパーバイザにより、単一のサーバーで異なるオペレーティング・システムの依存関係を持つ複数のアプリケーションを実行できます。
  • コンテナ:ソフトウェア・レベルで仮想化を有効にします(ホスト OS カーネルに依存します)。バイナリ、ライブラリ、構成ファイルなど、全てのコードと依存関係を含む標準化されたソフトウェア・ユニットが、サービスの実行に必要です。
  • 仮想ボリューム(vVols):分離されたデータ・ストアです。コンテナ化されたアプリケーションは、コンテナ化されたストレージから大きなメリットを得ることができます。vVols は、コンテナ化されたマイクロサービスに 1:1 のマッピングが可能で、中央データベースのボトルネックを防ぎます。

仮想化は、マイクロサービスに与える分離の程度をきめ細かくすることで、モダンなアプリケーション開発のためのマイクロサービス・アーキテクチャの利点を高めるのに役立ちます。

仮想マシンを利用して、同じマシン上で異なる OS 依存関係のサービスを実行できます。また、コンテナや vVols を使用することで、単一のマシンで実行できるサービスを大幅に増やすこともできます。

最も重要なことは、仮想化により、マイクロサービスとそのリソースのプロビジョニングと展開をオンデマンドで自動的に拡張することが容易になることです。

仮想マシンとコンテナのトレードオフについて詳しくは、こちらをご覧ください。

コンテナとデータ・ストレージ

ステートレス・コンテナとサーバーレス・アーキテクチャをペア設定する理由を理解するには、いくつかの用語を定義する必要があります。

  • ステートレス:アプリケーションは、ある実行時から次の実行時まで状態に関する情報を読み取らない、または保存しない場合、ステートレスです(例えば、計算アプリケーションは、再オープン時にゼロを読み取り、最後に計算が実行された時の記憶はありません)。
  • サーバーレス:開発者がクラウド・プロバイダなどのサードパーティに頼ってサーバー・リソースを管理し、サーバー管理の詳細を抽象化する場合、アプリケーションはサーバーレスです。

設計上、最初のコンテナはステートレスでした。なぜなら、必要なときにコンテナが存在できるようにし、作業を行い、消えて、アプリケーションの残りのリソースを解放できたからです。同様に、モダンなアプリケーションはコンテナをシンプルに保ち、必要に応じて存在させることができます。

サーバーレス・アーキテクチャと組み合わせることで、アプリケーション開発者は、基盤となるインフラストラクチャ自体を管理することなく、リソースをオンデマンドでプロビジョニングする機能を呼び出すことができます。ステートレス・コンテナとサーバーレス・アーキテクチャを組み合わせることで、スケーラブルなアプリケーションの開発が大幅に簡素化されます。これは、エッジ・デバイスがイベントに応じて常にデータをストリーミングするエッジ・コンピューティング環境に特に適しています。ステートレス/サーバーレスの組み合わせにより、アプリケーションはリアルタイムの情報に応じてその場で簡単に調整できます。

しかし、アプリケーションが複雑であればあるほど、コンテナ化されたマイクロサービスに永続ストレージが必要になる可能性が高くなります。このため、Portworx などのコンテナ・データストレージソリューション、ステートフルなコンテナ化されたアプリケーションへの永続的なストレージ配信を簡素化します。アジャイルなデータ・ストアの 1:1 マッピングにより、スケーラビリティが向上し、アプリケーションの実行時に状態が維持されます。

コンテナ・オーケストレーションとコンテナ管理とは

モダンなアプリケーションは、クラウドネイティブなアプリケーションです。サポートに必要な基盤となるインフラストラクチャと密接に連携することで、Amazon Web Services (AWS)、Google Cloud、Microsoft Azure などのクラウド・エコシステムのメリットを享受できます。

では、クラウドネイティブなアプリケーションとは、どのような意味を持つのでしょうか。マイクロサービス・アーキテクチャと仮想化技術、サーバーレス・コンピューティングの組み合わせにより、モダンなアプリケーションはユーザーの要求に応じて動的にプロビジョニングできます。これらのマイクロサービスは、サービス・レイヤーを通じて管理される API を介して独立して通信できます。

クラウドネイティブ・アプリケーションは、Software as a Service(SaaS)、Platform as a Service(PaaS)、Infrastructure as a Service(IaaS)などのクラウド・コンピューティング展開モデルを最大限に活用します。これらのモデルは、従来の設備投資支払モデルに代わるものです。従来の CAPEX 支払モデルでは、使用するリソースに対して固定価格を支払う場合があります。OPEX 支払モデルでは、使用時にリソースに対して支払う場合があります。

クラウドネイティブとは

Docker とは

モダンなアプリケーションと従来のアプリケーションの違いは、開発と展開の哲学にあります。

アプリケーション開発の従来のアプローチでは、リニアな包括的な計画から始め、それに従います。開発は、要件収集から明確に定義されたフェーズまで、アプリケーション全体を本番環境に展開します。開発者、オペレーター、ステークホルダー、エンドユーザー間のコミュニケーションは、ソフトウェア開発のライフサイクル(SDLC)が長くなることで抑制されます。コードベースはモノリシックで、パッチは大きくなり、バグ修正の展開、新機能の追加、基盤となる技術の更新を試みると、サービスの長期にわたる中断や、トラブルシューティングが困難な予期せぬ副作用に対して脆弱になります。

モダンなアプリケーション・ソリューション アジャイルと DevOps のベスト・プラクティスにより、モノリシック・システムからマイクロサービスに移行します。

アジャイル開発は、ソフトウェア開発に反復的なアプローチをとっています。マイクロサービスと組み合わせることで、開発者は複数の設計反復にわたって機能の構築、テスト、展開を段階的に行うことができます。SDLC は厳密に維持されており、エンドユーザー、ステークホルダー、開発者間のコミュニケーションのフィードバック・ループを厳しくします。アジャイル開発手法には、スクラム、エクストリーム・プログラミング(XP)、テスト駆動型開発(TDD)などがあります。

DevOps は、開発者と運用チームを組織内に緊密に統合するソフトウェア開発の実践と文化です。SDLC は、構成管理、自動化、リアルタイム監視を使用してソフトウェアの開発、テスト、展開を合理化する CI/CD パイプラインとして再考されています。

モダンなアプリケーションは、常に可用性と性能が高いことが期待されています。モノリシックなパッチ、アップデート、バグによってサービスが中断するわけにはいきません。このため、モダンなアプリケーションは、アジャイル開発手法と DevOps のベストプラクティスを活用して、急速に変化するデジタル環境において最新の状態を維持し、競争力を維持します。

モダンなアプリケーションが市場投入までの時間を短縮する方法について詳しくは、こちらをご覧ください。

Kubernetes とは

デジタル化が進む世界では、データ保護が最重要課題となっています。モダンなアプリケーションには、次のようなデータ保護のメリットがあります。

  • コードの分離により、ハッカーがシステム全体を侵害することが困難 
  • モジュラー・アーキテクチャにより、SDLC 全体でより緊密な増分セキュリティ・テストが可能
  • CI/CD パイプライン:開発者とユーザー間のフィードバック・ループを厳格にし、開発者が脆弱性を即座にパッチ可能
  • ディザスタ・リカバリの合理化:アプリケーション全体の中断を最小限に抑えながら、マイクロサービスを個別にバックアップおよびリストア可能
  • DevSecOps などのセキュリティのベスト・プラクティスの強化

モダンなアプリケーションは、現代のセキュリティの脅威に対処できます。開発サイクルとコミュニケーション・フィードバック・ループの厳格化により、開発者はバグや脆弱性を悪用される前に特定し、対処することができます。

詳細を見る:モダンなアプリケーションのデータ保護のメリット

こちらの資料もご覧ください!

11/2020
VMware Hybrid Cloud Solution Brief | Solution Brief
Hybrid cloud and container adoption are growing rapidly. Advance to an effortless, optimized VMware environment.
ソリューションの概要
3 ページ
ご相談・お問い合わせ
ご質問・ご相談

ピュア・ストレージ製品および認定についてのご質問・ご相談を承っております。ご連絡をお待ちしております。

デモのご用命

ライブデモのご用命を承っております。ピュアがいかにしてデータを成果に変えるお手伝いができるかをご説明します。 

ピュア・ストレージ・ジャパン株式会社

〒100-0014 東京都千代田区永田町 2 丁目 10-3 東急キャピトルタワー 12 階

 

一般: info-japan@purestorage.com

メディア: pr-japan@purestorage.com

03-4563-7443(総合案内)

閉じる
このブラウザは現在サポートされていません。

古いブラウザには、セキュリティ・リスクが存在する場合があります。ピュア・ストレージの Web サイトをより快適にご利用いただけるよう、最新のブラウザにアップデートしてください。