Livecycle Docker 拡張機能:変更を即座に共有し、コンテキストに応じたフィードバックを取得

Livecycle の Zevi Reinitz 氏と Roy Razon 氏がこのゲスト投稿に貢献しました。

開発を成功させるには、共同作業のワークフローが不可欠であり、開発者は作業をすばやく簡単に共有する方法が必要であり、チームメンバーはレビューしてフィードバックを提供する迅速な方法が必要です。開発者が変更を共有し、明確なフィードバックを得るのが早ければ早いほど、フィードバックループをより早く閉じ、新しいコードを本番環境にマージできます。

Livecycle の Docker 拡張機能を使用すると、開発者は進行中の作業を簡単に共有し、チームと共同作業して変更をレビューしてもらうことができます。 ワンクリックで、ローカル開発環境を安全に共有し、コードがチームの要件を満たしていることを確認できます。 この投稿では、 Livecycle Docker Extension の設定と使用開始について、手順を追って説明します。

バナー livecycle 拡張機能

Livecycle のご紹介 — 開発チームがコラボレーションするための迅速な方法 

Livecycle を使用すると、開発チームはコンテキストに沿ったコラボレーションを迅速に行うことができます。 一般に、バグ修正や新機能に関するフィードバックを得ると、チーム メンバー間で複数のイテレーションと長いフィードバック ループが発生します。 開発チームは、コンテキストから切り離して詳細な議論を行うのにすぐに苦労し、フラストレーションを引き起こし、生産性を損ないます。 Livecycle では、全員がコンテキストを把握している間に作業を即座に共有し、フィードバックをすぐに収集できるため、フィードバックループが短縮されます。 

Livecycle のオープンソースツールである Preevy は、 CI パイプライン に統合され、プルリクエストをパブリック またはプライベートプレビュー環境に変換し、クラウドプロバイダーまたは Kubernetes クラスターにプロビジョニングします。 

また、新しい Docker Desktop Extensionのリリースにより、ローカル開発環境をチームで安全に共有し、開発ライフサイクルのかなり早い段階でレビューとフィードバックのプロセスを開始することで、同じことができるようになりました(図1)。

ローカル開発チームと制作チーム間の Livecycle フィードバックループを示すアニメーションイラスト。
図1: Livecycle フィードバックループ - 変更前と変更後。

建築

Livecycle アーキテクチャは、次のように 2 つの可能なフロー(1 つは CI で動作するフロー、もう 1 つは Docker 拡張機能を使用するフロー)として表すことができます。

たとえば、CI ビルドを実行してプルリクエストのプレビュー環境を作成する場合、Preevy CLI はクラウドプロバイダーに VM をプロビジョニングするか、Kubernetes クラスターに Pod をプロビジョニングし、Docker Compose プロジェクトコンテナをホストする Docker サーバーを実行します。 

また、Preevy CLI は、Preevy トンネル サーバーへの SSH 接続を作成するコンパニオン コンテナーである Preevy エージェントも起動します。 Docker Compose プロジェクトで公開されているすべてのポートに対して、独自の HTTPS URL を使用して SSH トンネル が作成されます。 HTTPS 要求が Tunnel Server に到着すると、ホスト名に従って特定のサービスに ルーティング されます。 サービスがプライベートとして定義されている場合、トンネル サーバは認証も処理します。

Livecycle Docker 拡張機能を使用する場合は、同じ Preevy CLI(拡張機能にバンドルされている)を使用して、ローカルの Docker Desktop サーバーでコンパニオン Preevy エージェントを起動します。 パブリック URL またはプライベート URL は、 Docker Compose プロジェクトで公開されているすべてのポートに対して作成されます。

Livecycle のアーキテクチャを図 2 に示します。

Web サーバー、Docker デスクトップ、Kubernetes ポッド、ci ランナーなどを含む livecycle アーキテクチャの図。
図2: Livecycle アーキテクチャのブループリント。

Livecycle を Docker 拡張機能として実行する理由

開発ワークフローのコンテキストでは、開発チームが変更をすばやく共有し、チームの他のメンバーから明確なフィードバックを収集できるときに、真のコラボレーションが実現されます。 両方を達成できれば、優れたコラボレーション状態になります。 迅速に共有する能力やフィードバックを収集する能力が不足していると、チームは効果的にコラボレーションすることができません。

これこそが、Livecycle を Docker 拡張機能として実行する利点であり、この 2 つのコラボレーションの機会を最大限に活用できることです。 

  • できるだけ早い時点で変更を共有する最速の方法: Livecycle 拡張機能は、ステージング環境や CI ビルドの頭痛の種となることなく、ローカルコンテナを共有します。 これは、共同レビューサイクルを開始するための最速かつ最も早い方法です。
  • 全員からフィードバックを収集する最も便利な方法: Livecycle 拡張機能にはレビューツールが組み込まれているため、チームの誰もが状況に応じて技術的または視覚的なフィードバックを提供できます。 

現在、より多くの開発者が「シフトレフト」アプローチの利点を実感しており、Dockerのネイティブツールキットはそれを実現するのに役立ちます。 Livecycle を Docker 拡張機能として使用すると、この概念がさらに拡張され、ソフトウェア開発ライフサイクル(SDLC)の早い段階で、真にコラボレーティブなレビューサイクルが実現します。 そして、それは時間を節約し、チームの全員に利益をもたらすのにも役立ちます。

Livecycle Docker 拡張機能の概要

Docker Desktop をインストールしておけば、Livecycle Docker 拡張機能を簡単に使い始めることができます。 ここでは、初期設定のステップバイステップのウォークスルーを示します。

1.拡張機能のインストール
Livecycle 拡張機能に移動するか、Docker Desktop Extensions Marketplace で「Livecycle」を検索します。[ インストール ]を選択して拡張機能をインストールします(図3)。

LiveCycle 拡張機能を示す拡張機能マーケットプレイスのスクリーンショット。
図3: Livecycle 拡張機能をインストールします。

2. Livecycle アカウントの設定
拡張機能をインストールして開くと、ログイン画面が表示されます(図4)。 GitHubアカウントまたはGoogleアカウントでログインすることを選択できます。 以前に Livecycle を使用して組織を作成したことがある場合は、Livecycle アカウントでログインできます。

LiveCycle ログイン画面のスクリーンショットと、github または google で続行するためのオプション。
図4: Livecycle アカウントを作成します。

3. 共有可能な URL の取得
ログインするとすぐに、実行中の Docker Compose アプリケーションと、それらで実行されているすべてのサービスの一覧が表示されます。 すべてのサービスの共有可能なパブリック URL を取得するには、作成アプリケーション名の横にあるトグルをオンにします。 その後、アクセスレベルを選択するように求められます(図5)。

privy-cli-demo のトグルスイッチを強調表示した livecycle 拡張機能のスクリーンショット。
図5: 安全なトンネルトグルを共有して確立します。

パブリックアクセスとプライベートアクセスのどちらかを選択できます。 パブリックアクセスを選択すると、誰とでも共有できるパブリックURLが取得されます。 プライベート アクセスを選択した場合は、認証が必要で、組織のメンバーのみが使用できるプライベート URL が取得されます。 次に、 [ 共有 ] を選択して、共有可能な URL を取得します (図 6) 。

アプリケーションを共有するためのパブリックアクセスモードを強調した LiveCycle のスクリーンショット。
図6: アクセスモードを選択します。

4. 共有URLへのアクセス
拡張機能によって作成された URL は一貫性があり、共有可能であり、ブラウザーまたはその他の HTTP クライアントで使用できます。 これらの URL を使用すると、トンネルが開いていてワークステーションが実行されている限り、チーム メンバーはローカル バージョンのアプリを表示して操作できます (図 7)。

アプリケーションを共有するためのオプションを示す livecycle のスクリーンショット。
図7: カスタム生成リンクを表示および共有します。

プライベート環境では、組織にチーム メンバーを追加する必要があり、アクセス時にチーム メンバーは認証を求められます。

5. Livecycle ダッシュボードへのアクセス
また、Livecycle ダッシュボードにアクセスして、ログを確認したり、アプリケーションをデバッグしたりすることもできます。 「 リンクを開く 」を選択して、Livecycle ダッシュボードを開きます(図 8)。 ダッシュボードには、実行中のすべてのアプリケーションとサービスが表示されます。 Livecycle ダッシュボードには、プライベート環境/サービスと同様に、認証と組織のメンバーシップが必要です。

LiveCycle ダッシュボードにアクセスしてログを表示し、アプリケーションをデバッグするためのオプションを示す Livecycle のスクリーンショット。
図8: Livecycle ログダッシュボードに移動します。

6. デバッグ、検査、およびログ記録
Livecycle ダッシュボードを開くと、実行中のすべての環境/アプリが表示されます。 ログを表示する環境の名前、ターミナルなどを選択します。 各サービスのログ、ターミナル、およびコンテナ検査を表示できます(図9)。

ログ、ターミナルおよびコンテナ検査のオプションを示す LiveCycle ログダッシュボードのスクリーンショット。
図9: Livecycle のログ記録とデバッグのダッシュボード。

それです! Livecycle Docker Extension が正常にインストールされ、ローカル開発環境がチームで共有されました。

いつでもコラボレーションを開始できる柔軟性

Livecycle は設計上柔軟性が高く、いくつかの方法でワークフローに追加できるので、いつでも共同レビューを開始できます。

Docker拡張機能は、Docker化されたアプリケーションに取り組んでいるチームが、コードが開発者のマシン上にある間に、レビュープロセスをこれまで以上に左にシフトできるようにすることで、この柔軟性をさらに拡張します。 

このセットアップにより、コードの変更、バグ修正、新機能を、ステージング環境や CI ビルドの手間をかけずに即座にレビューできます。 また、時間を節約し、コード品質を向上させることで、企業の収益に直接影響を与える可能性もあります。

一般的な使用例

Livecycle Docker Extension の一般的な使用例を見て、開発チームにとっての利点を説明しましょう。 

  • インスタントUIレビュー: Livecycle を使用すると、ワークフローの早い段階で、開発者と技術者以外の関係者とのコラボレーションが可能になります。 Livecycle 拡張機能を使用すると、マシンで作業している最新のフロントエンドの変更に関するフィードバックを即座に得ることができます。

    トンネルを開き、共有可能な URL を作成することで、チームの誰もがブラウザーを使用して関連するサービスに安全にアクセスできます。 デザイナー、QA、マーケティング、および管理者は、アプリケーションを表示し、組み込みのコメントおよびコラボレーションツールを使用して、明確で実用的なフィードバックを残すことができます。
  • コードレビューとデバッグ: もう 1 つの一般的なユース ケースは、開発者が協力してコード変更をできるだけ早く確認およびデバッグできるようにすることです。 Livecycle 拡張機能を使用すると、マシンで実行されているフロントエンドまたはバックエンドのサービスを即座に共有できます。

    チームはサービスに安全にアクセスして、リアルタイムのログを確認したり、エラーをキャッチしたり、ターミナルでコマンドを実行したりできるため、開発ライフサイクルのかなり早い段階で共同で問題を修正できます。

結論

Livecycle の Docker 拡張機能を使用すると、進行中の作業を簡単に共有し、チームとすばやく共同作業できます。 また、フィードバックループが緊密になることで、より高品質のコードをより迅速に提供できるようになります。 

現在、プロジェクトに Docker を使用している場合は、Livecycle 拡張機能を使用して、デプロイメントや CI の依存関係なしでプロジェクトを簡単に共有できます。

さあ、Livecycleを試してみてください。 初期設定には数分しかかかりませんが、ご不明な点がございましたら、 ドキュメント をご覧いただくか、 Slackチャンネルでお問い合わせください。 

さらに詳しく