これまで「負荷分散装置」としてサーバやアプリケーションの耐障害性向上、SSL暗号パフォーマンスの向上、サーバ追加・削除時の運用性向上などに貢献してきたロードバランサですが、近年はADC (Application Delivery Controller) として更にセキュリティや認証、トラフィックコントロールなど様々な付加機能が活用されています。今後は更に、クラウド化されたシステムにあわせて「クラウドネイティブ」なADC運用がもとめられている事は間違いありません。弊社お客様でもコンテナプラットフォームでの活用を始めるケースも出てきています。

今回はCitrixのヨーロッパでプロダクトチームに所属しているDavidの見方をご紹介します。以下オリジナル記事もご参照ください。

https://citrixblogs.wpengine.com/2019/08/22/the-adc-revolution-is-here/


新しいアプリケーションデリバリーコントローラーがやってきた

19世紀には馬が荷車や人の乗り物を牽いていました。馬には餌をやり、手入れし、馬小屋を用意しなければならず、また車両のメンテナンスも必要でした。自動車の登場によって旅行ははるかに速く、信頼でき、また便利なものとなりました。また駆動力にも革命的変化がもたらされました。馬が荷物を牽引する力に基づいて定められた馬力は、車とは直接関係しない数字から車両の設計に不可欠な要素へと変化を遂げました。

同様な革命が現在、アプリケーション開発とアプリケーションデリバリー最適化においても生じています。アプリケーションデリバリーコントローラー(ADC)はかつて独立した、当初は物理的、後には仮想的なものを含めたネットワークコンポーネントであり、ネットワーク担当部署によって管理され、アプリケーションのパフォーマンスとセキュリティを最適化するためサーバーファームの前に置かれていました。この状況はDevOpsとアジャイル開発によって根本的に変わり、ADCはアプリケーション自体に含まれるクリティカルな構成要素となりました。

従来のウォーターフォール型アプリケーション開発では、四半期あるいは長ければ1年サイクルでアプリケーションの作成や更新を行うのに対し、アジャイル型開発では所要期間が数週間の開発スプリントにまで短縮されます。また同時にアプリケーション開発と運用を一体化したDevOpsによって展開に必要な時間が短縮され、最終的には継続的インテグレーションと継続的デリバリー(CI/CD)が実現しました。

この劇的な高速化によってアプリケーション開発とアプリケーション展開との境界が消失し、開発後に求められるアプリケーションのパフォーマンス最適化、高度なアベイラビリティー、セキュリティ、および回復力を確保するための、ADCアプライアンス展開とコンフィグレーションも独立した作業ではなくなりました。開発者はアプリケーションの変更をほぼ瞬時に実施するようになり、またパフォーマンス、アベイラビリティー、セキュリティ、回復力などに関する問題については開発者自身による対応が求められるようになりました。セキュリティ分野の人々の間では、この移行に伴う変化のひとつが「シフトレフト」と呼ばれています。このシフトレフトによってアプリケーションのセキュリティは開発チームの責任となりました。したがってセキュリティは独立したアプリケーションファイアウォールやその他のセキュリティソリューションに委ねるのではなく、設計自体に組み込むことが求められるようになりました。

これと同じ原則がADCによるすべての最適化にも適用されます。ADCは単にネットワーク担当部署がアプリケーションを高速化し、その信頼性を高めるためのハードウェアではなくなりました。ADCはCI/CDパイプラインの一部となり、データセンターに独立して置かれるアプライアンスではなく、アプリケーションインフラストラクチャの一部となりました。

今日のADCには、Kubernetesなどの展開およびオーケストレーション用ツールと一体化され、SpinnakerやKayentaのようなツールを使って継続的展開をサポートし、またPrometheusやGrafanaなどのイベント監視ソフトウェアと容易に連携し、また同時に最小限の作業で他のツールと迅速かつ容易に一体化できる柔軟性が求められています。設計したアプリケーションが優れたパフォーマンス、アベイラビリティー、およびセキュリティを備えていることを確認するために必要な視認性と最適化は、高度な一体化によってのみ得られます。

このような作業にオープンソースのツールを好んで使用するDevOpsチームも存在します。このようなアプローチにはメリットも存在しますが、アプリケーション開発競争において重要となる強みを提供できるのは、Citrix ADCをはじめとした市場をリードする商用ADCソリューションです。開発者はこのようなADCソリューションを通じ、充実したレポートツールを使用する高度なセキュリティとパフォーマンスを備えたソリューションにおいて、一体化やメンテナンスの負担を共通のツールチェーンに任せることによるカスタマーエクスペリエンス改善を目的とした、新しい機能や能力の提供に注力できるようになります。これによって人気のあるサードパーティー製ソリューションをベースとしてあらかじめ構築されたソリューションと、必要なインフラストラクチャの管理に伴う労力を減らすすべてのAPIとテンプレート化された環境が得られることによって管理の負担が軽減されます。

これらのADCソリューションはまた、あらかじめ定義された便利なサービスをCustom Resource Definitions(CRD)として提供します。このようなCRDは一般的なシナリオ展開を簡素化し、またDevOpsチームがたとえばKubernetesのためのIngressプロキシサービスなど、新しいアプリケーションを顧客により迅速、安全に提供することを支援し、それぞれのマイクロサービスが自らのプロキシを短時間のうちに取得すると共に、セキュリティ管理とアプリケーションのパフォーマンス向上を実現するリッチなLayer 7ポリシーをサポートすることを可能とします。

まとめ

ADCはラックに設置されてネットワーク担当部署により管理されるハードウェアアプライアンスから、外部のトラフィック配分だけではなくモダンなアプリケーションのさまざまなコンポーネント間のコミュニケーションの管理も担い、継続的開発サイクルに組み込まれることによってアジャイルなアプリケーション開発に数多くの付加価値をもたらすソフトウェアへと進化しました。極めて急速に進展するデジタルなビジネスにおいては、Citrix ADCをはじめとする包括的かつ豊富なAPIを備えたイングレスソリューションにより、企業はビジネス高速化するだけでなく、最適化されたパフォーマンス、高度なアベイラビリティー、および強固なセキュリティを持つ、ビジネス価値を真に拡大するアプリケーションを作成できるようになります。ADCはモダンなアプリケーションにのため、それに内蔵される「馬力」を提供します。