2022年2月17日

Feature Flags

機能管理のためのリレープロキシーサービスを発表

機能管理のためのリレープロキシーサービスが登場しました。機密を保ちながら大規模に、機能可用性を管理するストレスにさようなら。

introducing relay proxy feature flags - 1.webp

この度、Harness Feature Flagsにリレープロキシーサービスを導入することとなりましたので、お知らせいたします。Feature Flagsのユーザーは、アプリケーションとHarnessの間にプロキシーを置くことで、エアギャップ環境を実現し、Feature Flagsを利用するミッションクリティカルなアプリケーションに追加のキャッシュと耐障害性を提供できるようになりました。

外部ツールによる高可用性とセキュリティーの維持

ベンダーのサービスを利用する場合、セキュリティーと信頼性に関して懸念を抱くのは当然でしょう。Harness Feature Flagsのようなサービスを利用して、機能のロールアウトと本番環境での機能利用を管理する場合、リスクを最小限に抑えたいと思うのは当然のことです。機能管理のように、中核となるエンジニアリングチームだけでなく、プロダクト、セールス、カスタマーサクセス、マーケティングなど、ビジネスの他の部分にも利用される場合は、これらの懸念事項を解決することがより重要になります。

解決すべき最初の問題として、信頼性と可用性を見てみましょう。外部APIが普及する前は、開発チームはこの概念を軽視し、「他人のダウンタイムを自分のダウンタイムに加える必要がある?」などと言っていました。あなたもそう思いますよね。それ以来、ソフトウェアデリバリーは大きく進歩し、チームは開発のスピードアップのために外部ツールを使用することを望むようになりました。しかも、常に高い可用性を確保しながらです。特にミッションクリティカルなアプリケーションでは、新しいサービスは内部・外部を問わず稼働時間を保証する必要があります。

一方、セキュリティーは企業にとって最も重要な課題です。このような組織では、内部と外部の間にファイアウォールが存在することも珍しくありません。また、外部とのオープンな接続を最小限にしたいと考える企業も珍しくありません。企業の技術スタックの規模を見れば、これは当然の検討事項でしょう。外部APIやツールごとに少なくとも1つのオープンな接続があり、複数ある可能性が高いことを想像できるでしょうか。実際、新しい外部接続が増えるたびに、オープンな接続の数は指数関数的に増加します。このようなオープンな接続は、それぞれセキュリティーリスクをもたらすだけでなく、組織がコントロールできない別のアクセスポイントを生み出すことになります。

規模が大きい組織や、規模拡大を計画している組織にとって、内部リソースへのアクセスを可能な限り制御し、可用性を最大化することは最も重要なことです。フィーチャーフラグの世界では、このことがさらに重要な意味を持ちます。このような分野で何か問題が発生した場合、フィーチャーフラグの世界では何が起こるのでしょうか。

  • 顧客に誤った機能が提供される、または変更が反映されない。
  • 社内のチームメンバーがフラグ設定を変更できない。
  • フラグ評価から戻ってきたデータをチームが検証できない。
  • 使用されていないが、コストやリスクを生むオープンな接続がたくさんある。

重要な要件に対応するための単一のセーフティーネットの構築

これらの問題を解決するために、私たちはHarness Feature Flagsのリレープロキシーを構築しました。リレープロキシーは、機能管理システムを利用する利点を維持しつつ、上記の要件と解決すべき問題を全て取り込み、優雅に解決します。

introducing relay proxy feature flags - 2.png

なぜリレープロキシーか

最終的に、このサービスは、セキュリティーと可用性の2つを解決します。リレープロキシーを導入することで、Harness Feature Flagsのユーザーは以下を実現することができます。

  • エアギャップデプロイメント:アプリへの外部アクセスがない(または許可できない)場合、ネットワーク内にプロキシーを配置することができます。ローカルアプリはプロキシーに直接接続し、プロキシーはリモートのフィーチャーフラグサービスに外部からアクセスして設定を同期します。
  • オフラインモード:これは、プロキシーがインターネットに接続していないことを除けば、エアギャップと同じです。このシナリオでは、設定ファイルを用いて外部から設定を読み込む必要があります。設定ファイルはプログラムをプロキシーにリンクするために使われます。
  • 高可用性・高信頼性:フィーチャーフラグサービスは信頼性が非常に高いです。大きな障害が発生した場合は、フェイルオーバークラスターにフェイルオーバーします。しかし、ネットワークが完全に失われた場合でも、リレープロキシーにより、再起動後もアプリが動作し続けることを保証します。

プロキシーサービスを導入することで、ユーザーはHarnessへのオープンな接続数を最小限に抑えることができ、「障害発生時の顧客への影響は?」という常に突きつけられる疑問から解放されます。プロキシーサービスの使用により、Harnessのお客様は機能管理サービスのセキュリティーと可用性の要件を満たすことができ、全てのメリットを享受しながら、リスクをほぼゼロにすることができます。

どのように機能するか

introducing relay proxy feature flags - 3.png

リレープロキシーの仕組みは、強力である反面、非常にシンプルです。リレープロキシーは、開発者が使用するSDKと、ホストされているHarness Feature Flagsサービスとの間に存在します。プロキシーは起動時に、Feature Flagsサービスから必要なデータを読み込み、ネットワーク接続が切断された場合でも、完全に機能することを確認します。

これにより、従来はSDKごとに必要だったHarnessへのアウトバウンド接続を1つに制限することができます。さらに、システムが適切な出力を生成するために使用する、一種の構成ストアまたはキャッシュとして機能します。これにより、ユーザーはHarnessのサービスに依存することなく、自分自身のセーフティーネットを構築し、常に自分自身のキャッシュを使用して作業することができます(明らかに上流と下流の両方が更新されます)。

開始方法

Harness Feature Flagsのユーザーであれば、リレープロキシーのドキュメントをご覧ください。リレープロキシーとは何か、どのように機能するか、そしてどのようにプロキシーサービスを自分のシステムに導入するかについて詳しく説明しています。

また、まだHarnessの利用を申し込んでいないが、これから始めたいという方は、簡単に無料トライアルに申し込んで、実際にプロキシーサービスを確認することができます。開発者の皆様、どうぞよろしくお願いします。
 


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。


Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ