2022年1月31日
Feature Flags
製品アップデート
Feature FlagsにネイティブGit同期が登場!仕事がより捗りますね。
Harness Feature FlagsにネイティブなGit同期機能を導入することを発表します。infrastructure as code方式(この場合はflags as code)、あるいはプログラム方式での作業を好むFeature Flagsのユーザーは、UIに触れることなく、Feature Flagsパイプラインを完全に開発者のワークフローで管理できるようになりました。
開発者にとって最大の課題の1つは、ワークフローに含まれる膨大な数のツールに対処することです。さらに悪いことに、特定の問題を解決するためのツールが複数存在するため、ある役割から別の役割へと、ツール群が大きく変わる可能 性があります。しかし、これら全てに共通するのは、コードで作業することです。
問題は、開発者のツールキットに含まれるツールの数ではなく、ツールの使い方、特にUIの違いにあるのです。現実には、物事を管理しやすくするためのUIは重要ですが、UIでもできる日々の作業は、コード内で同じように、いやそれ以上に簡単にできることが多いのです。これは、全ての開発者にとって共通のワークスペースであり、何度もコードで作業すればより簡単になります。
この問題に対処するために、開発チームから強く要望された機能は、自分のワークフロー内(コード内)で作業し、その変更と影響をツールのUIに反映させる機能です。開発者は、UIで作業するか、コードで変更するか、どちらかを選択したいのです。確かに、どちらか一方が簡単というシナリオはありますね。
このことをフラグシステムにも当てはめると、フラグはUIとコードの両方で管理できることが明らかになります。UIは、ウィザードに従ってフラグを作成、編集、管理する機能を提供しますが、フラグのターゲットの作成、変更、管理はコードでも行うことができます!しかし、このトピック(API)は近い将来に取っておきましょう。
Harnessでは、パイプラインと呼ばれる概念があります。これは基本的にリリースやデプロイのワークフローで、構築すれば標準的なプロセスを実施したり、ロールアウトをテンプレート化したりできます。 Feature Flagsパイプラインについては、こちらの記事で詳しく解説しています。Harness Feature Flagsの中で最も基本的な作業単位(フラグ)を管理できるのと同様に、パイプラインもUIで処理することができます。しかし、フラグを管理するのと同じように、「デプロイメントの言語」を簡単に使えるようにして、開発者がYAMLのような宣言型の言語で作業できるようにならないでしょうか。
この問題に対する解決策は、あなたが考えていることとほぼ同じです。UIでパイプラインを構築、更新、トレースすることに加えて、ユーザーがYAMLを使用して、その変更をGitにコミットし、Harness UIに自動的に反映させる機能を作りたかったのです。
これはHarnessの新しいコンセプトではなく、何年も前からビジュアルパイプラインの構築とYAMLでの作業を可能にしてきました。このコンセプトはHarnessプラットフォームの中核であり、今回、HarnessのFeature Flagsに組み込まれました。
UIで作業している人でも、バックエンドのHarnessがデプロイやリリースに関連するYAMLファイルを作成します。つまり、UIが使われようが、開発者がゼロからYAMLファイルを作成しようが、Harnessはそれを利用することができます。そして、どこで作成・更新されても、Harnessは自動的に同期し、お察しの通りGitで管理します。
つまり、Harnessは常にGitの最新版で動作するということです。しかも、ほぼ即座に同期されると言いましたっけ。開発者は新しいYAMLファイルをGitにコミットし、数秒後にHarnessでリリースワークフローの更新を確認することができるのです。また、HarnessのUI上でYAMLファイルを編集することも可能です。UI上だけでパイプラインを操作する2つの方法があるのです。
既にHarness Feature Flagsのユーザーであれば、製品にアクセスすると「Pipelines」というメニューが表示されるので、そこから始めましょう。画面上部に「Visual」または「YAML」のオプションがあり、YAMLを選択します。もちろん、最初にパイプラインをビジュアルで構築したい場合は別ですが!
まだHarnessの利用を申し込んでいないけれどこれから始めたいという方は、簡単に無料トライアルに申し込むことができます。それでは、Happy developing!
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。