ブログ

アプリケーション ニーズの階層

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2016 年 5 月 2 日公開

ほとんどの人はマズローの欲求階層説を聞いたり見たりしたことがあるでしょう。 この概念に馴染みがない方(または復習が必要な方)のために、要約すると、マズローは、人々は特定のニーズを達成しようと動機づけられると信じていました。 彼は、食料、睡眠、安全など生存に関連する基本的なニーズから始まり、自己実現などより個人的な成長に関連するニーズへと上に向かう 5 段階の階層を定義しました。

階層は、テクノロジーを含むさまざまな問題に対する一連のニーズを説明するモデルとしてよく使用されると言っても過言ではありません。 それが今日私たちがここに来た経緯です。

今日のアプリケーションには、マズローの欲求階層を模倣して階層的に配置できる非常に特殊なニーズのセットがあります。 マズローの欲求階層と同様に、低レベルのニーズは生存と成功に最も重要であり、高レベルのニーズは成長を可能にします。 それはすばらしい仕組みですね。

これが重要な理由は、今日の環境やユーザーの期待、場合によっては純粋に技術的な理由を考慮すると、これらのニーズの一部はアプリ サービスなしでは現実的に満たすことができないからです。 これらは、負荷分散、フェイルオーバー、Web アプリのセキュリティ、SSO、高速化、最適化などのことです。

画像

確かに、クラッシュや障害が発生した場合に自動的に再起動するアプリを作成することはできますが、停止を引き起こすネットワーク レベルの障害に対処することはできません。 負荷分散やフェイルオーバー サービスなどの上流 (外部) システムのみがこれを実行できます。 つまり、最終的には、負荷分散などのアプリ サービスを使用しない限り、アプリケーションの信頼性を確保することはできません。 同様に、ほとんどのアプリケーションは、TCP の動作を制御するネットワーク スタックを操作することはできません。 しかし、上流プロキシ (負荷分散サービス) ではそれが可能であり、モバイル アプリを使いやすくする最適化の多くがそこで実装されています。 これらがないと、アプリは遅くなり、応答しなくなり、最適化されたアプリよりも高い割合で放棄される傾向があります。 パフォーマンスが中間階層のニーズであるのは、それが重要ではあるものの、アプリケーションにとって最も重要なニーズではないからです。 結局のところ、それが利用できない場合は、どれだけ最適化しても役に立ちません。

では、これ以上前置きせずに、アプリのニーズ階層について詳しく見ていきましょう。

1. 信頼性

信頼性とは、企業や消費者などのユーザーがアプリの存在を信頼できることを意味します。 つまり、需要が高い期間 (スケーラビリティ)、障害 (フェイルオーバー)、または災害 (災害復旧) でもアプリが引き続き利用可能であることを確認する必要があります。 最も基本的な意味では、負荷分散とフェイルオーバー サービスを意味しますが、災害発生時にユーザーをリダイレクトする役割を担う DNS などのアプリ サービスのサポートも含まれます。 当社のアプリケーション配信の現状に関する調査において、「アプリケーション サービス組織がアプリケーションを導入する際に欠かせないもの」として、可用性が依然として上位に挙げられているのは驚くことではありません。 これは、基本的なアプリの存続のニーズであるだけでなく、今日ではビジネスの存続のニーズでもあります。

2. 安全

ああ、セキュリティ。 これがないと、アプリはコードの品質に関係しないさまざまな攻撃に対して脆弱になります。 アプリケーション セキュリティはスタックであり、アプリだけでなくその基盤となるプラットフォームも含みます。 また、レポートでは、攻撃者が流出(データの盗難)と悪用(ビジネス停止)の両方を目的として、スタックを上ってアプリケーション層へと移動し続けていることが示されています。 つまり、アプリケーションの可用性と健全性を維持するには、DDoS 保護、Web アプリ セキュリティ、詐欺防止、暗号化サービスなど、さまざまなセキュリティ アプリ サービスが必要になります。 組織が攻撃を経験し、新たな脆弱性が報告される頻度が増加するにつれて、今日のアプリとビジネスの存続を確保するために必要なコア アプリ サービスの 1 つとして、セキュリティのニーズが高まり続けています。

3. パフォーマンス

パフォーマンス。 特にモバイル デバイス (モバイル ネットワーク経由) でよく使用されるアプリの場合、それがいかに重要であるかは誰もが知っています。 パフォーマンス アプリ サービスは、基本的なニーズに対応するアプリ サービスから成長に対応するアプリ サービスへと階層が移行するレベルです。 パフォーマンス関連の懸念は、実際には両方に関するものです。 アプリの速度が遅すぎたり、応答が遅すぎたりすると、企業ユーザーの生産性に悪影響を与え、消費者からの収益も減少する可能性があります。 アプリが利用できなくなったり、侵害が発生したりした場合ほどビジネスに影響はありませんが、それでも重要です。 そのため、多くの組織がアプリケーションのパフォーマンスを向上させるために、イメージの最適化、圧縮、SSL オフロード、TCP 多重化などの技術を採用しています。 なぜなら、時にはコードの問題ではなく、ネットワーク、ユーザーのデバイス、アプリケーションが通信するプロトコルの課題に対処することが重要になるからです。

4. プログラミング可能性

アプリは今日のビジネスの中心であり、迅速に配信されるだけでなく、迅速に展開される必要があります。 成長と拡張には、低レベルのニーズ (信頼性、セキュリティ、パフォーマンス) をサポートするアプリ サービスも迅速に展開できる必要があります。 それはプログラム可能性を意味します。 これは、API とテンプレート、そして他の API エコノミーに統合されアクセス可能であることを意味し、CI/CD パイプラインを開発から運用へと、そしてより広範な IT スペクトル全体に推進します。 プログラマビリティにより、ネットワーク (SDN)、クラウド ( OpenStack )、またはデータセンター全体 (SDDC) に重点を置くかどうかに関係なく、アプリ サービスは DevOps エコシステムに参加できます。 テンプレートは、最新のデータ センターでの展開を推進するプロセスを改善するために必要な標準化 (一貫性) と繰り返し性を提供します。 API は、構成と管理を自動化するために使用されるフレームワークとツールセットの増加に対する柔軟性とサポートを確保し、ネットワークの障害によってアプリが取り残されることがないようにするものです。

5. 建築の敏捷性

最後に、今日のアプリ (およびビジネス) の成長をサポートするには、アプリケーションにアーキテクチャの俊敏性が必要です。 つまり、それらをサポートし、有効化し、保護するアプリ サービスは、アプリが使用しているアーキテクチャ (マイクロサービス、コンテナー、仮想化、クラウドなど) と互換性がある必要があります。 階層の下位レベルのニーズをサポートするアプリ サービスは、アプリケーションがどこに展開されるかに関係なく、アプリケーションとともに展開できる必要があります。 つまり、仮想、物理、クラウドベースのアプリ サービスがサポートされることになります。