Module Control with 機能フラグ
の手法は、を使用すると、ソースコードを変更せずにシステムからモジュールをアクティブ化または無効にすることができます。 この制御は、データベース、構成ファイル、環境変数などを介して実装できます。
機能フラグの使用の利点
セキュリティ:
は、より低いリスクで新しい機能を起動することができ、必要に応じて簡単に無効にします。
- 段階的な起動:は、段階的に起動を促進します。
- アクセス制御:ユーザープロファイルまたはその他のルールに基づいて特定のモジュールへのアクセスを制限することを可能にします。
メンテナンスの柔軟性:- メンテナンスと更新のプロセスを簡素化し、システム操作に影響を与えることなくメンテナンス中に一時的に無効にすることができます。
リスク削減:
問題のあるモジュールの影響を最小限に抑え、エラーが発生した場合に迅速に無効にすることができます。
-
feature flags
- を実装するためのツールとライブラリ
機能フラグの実装を支援するために利用できるいくつかのツールとライブラリがあります
:
LaunchDarkly: https://lancharkly.com
Unleash: https://www.getunleash.io
gofeatureflag:- https://github.com/robfig/go-feature-flag
Flagsmith:- https://www.flagsmith.com
featurehub:- https://featurehub.io
configcat:- https://configcat.com
Togglz:- https://www.togglz.org
- データベースを介した実装
- 機能フラグを使用して
を実装するには、以下の手順に従ってください:
モジュールとそれぞれのフラグに関する情報を保存するテーブルを作成します。
ミドルウェアを実装して、モジュールへの要求を傍受します。
Middlewaseはデータベースモジュールフラグを読む必要があります。
フラグの状態に応じてモジュールをアクティブ化または無効にします。
モジュールで問題が発生した場合、エラーメッセージを記録して返す。
必要に応じて、各モジュールのユーザーアクセスルールを実装します。
- code例の例:
- https://github.com/ortizdavid/golang-modular-software
-
-
-
-