2023年2月15日

Continuous Integration

エフェメラル環境を使いデプロイをテストとスケール化をする

このチュートリアルでは、エフェメラル環境とは何か、どう機能するか、どう構成するかを説明します。

63ebedb8bf420634de5708f4_Ephemeral Environments Blog Header.png

昨今のDevOpsの世界は、開発者の経験と生産性を中心とする、刺激的で新しいアプローチとツールによって彩られています。手動のテストとデプロイが完了するまでに、数日かかっていた時代は終わりました。上記のような新しいツールは、ソフトウェア開発パイプラインを自動化・合理化します。通常、アプリケーションが作成されるたびに、さまざまなフレームワークを通じてコードをテストする継続的インテグレーション(CI)ツールやプラットフォームに入力されます。テストに合格すると、コードがデプロイされます。

 

ただしプロセスやツールの構成が面倒で複雑な場合、速度を上げるのは困難です。そのため、開発者が新しいツールを評価する際には、「使いやすさ」は譲れないポイントです。開発者は、セットアップが簡単なだけでなく、アプリケーションを大規模にテストできるCIツールを好みます。インフラとその他の関連タスクを構成する作業は困難で時間がかかり、デプロイ作業からリソースを奪います。

 

ここで、エフェメラル環境と呼ばれる概念が登場します。作業が完了すると自動的に破棄される短寿命の環境インスタンスを起動するエフェメラル環境を使えば、アプリケーションをはるかに高速にテストできます。このチュートリアルでは、エフェメラル環境とは何か、どう機能するか、どう構成するかを説明します。

エフェメラル環境とは?

エフェメラル環境は、エンジニアリングチームと開発チームが協力して新機能を迅速かつ効率的にテストするための、優れた方法です。テストを実行し、機能をプレビューするためだけの一時的な隔離環境を提供します。本番システムに影響を与える可能性のある、永続的な変更の心配は必要ありません。これにより、長期的な変更を加えることなく、迅速な反復と開発が可能になります。

harness_test&scale_1.png

エフェメラル環境を構成すると、優先するOS、サーバー数、メモリーとストレージのタイプなどを特定のニーズや好みに合わせて、環境をカスタマイズできます。環境がセットアップされたら、その環境を使ってアプリケーションでテストと実験を実行できます。

 

一時的な環境でアプリケーションを実行するのは比較的簡単です。必要なファイルと構成は全て、単一のデプロイ可能なアーティファクトにパッケージ化されます。その後、これをエフェメラル環境にデプロイして素早く起動できるため、アプリケーションの開発とテストを迅速に実行できます。

 

通常、このプロセスは自動化されているため、継続的なデプロイが可能になり、必要に応じて環境を簡単にロールバックできます。さらに、展開が完了する前に特定のテストやその他のチェックを実行するよう、プロセスを構成できます。これにより、アプリケーションが期待通りに実行され、エラーや問題がないことを保証できます。

エフェメラル環境の利点

一般的にエフェメラル環境は、新機能を迅速にテストやプレビューするための堅牢なオンデマンドプラットフォームを提供します。従来の静的、または共有のステージング環境に対する明確な利点をいくつか掘り下げてみましょう。

非同期型コラボレーション

エフェメラル環境により、チームは非同期でコラボレーションしやすくなります。これは、チームが異なるタイムゾーンに分散している場合に特に便利です。エフェメラル環境を設定すると、各チームは作業中のものを共有でき、同時に作業しなくてもプロジェクトで共同作業できます。また、既存のサービスに影響を与えることなく、各チームが新しいアイデアをテストするための新しい環境を素早く起動できるので、機能プレビューにもよく使われます。

費用対効果の高さ

エフェメラル環境は費用対効果が高く、セットアップが簡単で、必要に応じて破棄・再作成できるため、複数のプロジェクトで共同作業を行うチームにとって優れた選択肢となります。開発者に一時的な環境を提供して、テストと実験に効率的に利用してもらい、その実験が終了したら破棄できるのです。クラウドプロバイダーから直接リソースを実行するため、開発者は追加コストの追加を心配する必要はありません。

アジャイルでフレキシブル

エフェメラル環境は、従来の環境よりもはるかにアジャイルでフレキシブルなので、開発者は、必要とする正確な仕様に沿ってアプリのインスタンスを素早く起動できます。これにより、アプリの新バージョンのビルドとデプロイが済むのを待たずに、変更のデプロイやテストが容易になります。さらにエフェメラル環境により、チームはアプリを迅速にスケールアップしてユーザーの要求を満たし、不要になったインスタンスを自動的にシャットダウンすることで運用コストを削減できます。最後に、エフェメラル環境は他のインスタンスから完全に分離され、特定の期間が経過すると自動的に破棄されるため、セキュリティーと信頼性も向上します。

Harnessを使ってエフェメラル環境を作成する方法

Harnessを使うと、エフェメラル環境を自動的にセットアップし、構成できます。ボタンをクリックするだけで今使える環境が表示されます。Harnessはビルド実行のためのホストされた仮想マシン(VM)を提供するため、セットアップを気にせずにコードをテスト&ビルドできます。Harnessはインフラを提供できるため、優れたソフトウェアの開発に集中できます。

 

Harnessの無料アカウントにサインアップしてプロジェクトを作成し、 CIモジュールを選択します

harness_test&scale_2.png

Get Startedをクリックして、パイプラインを作成します。

harness_test&scale_3.png

コードリポジトリーを接続します。

harness_test&scale_3.5.png

(私はこのSimple-Node-Appリポジトリーを使用しています。 同じものをフォークして、このチュートリアルで使用できます。 簡単なテストケースがあります。)

デフォルトでは、パイプラインは実行ステップで単純なEcho Welcome Messageを使って構成されています。

harness_test&scale_4.png

Echo Welcome Messageステップをクリックすると、その設定が表示されます。

harness_test&scale_5.png

これで、アプリケーションをテストするためのエフェメラル環境が出来ました。

 

Infrastructureタブをクリックすると、次のオプションが表示されます:VMs、Kubernetes

 

VMをインフラとして使用してアプリケーションをテスト&ビルドするため、VMを選択します。Linux、macOS、Windowsなど、利用可能なさまざまなオペレーティングシステムから選べます。ここでは、チュートリアルにLinuxを選択しました。

harness_test&scale_6.png

続行をクリックして、パイプラインを保存できます。

 

このパイプラインを保存して実行すると、Welcome to Harness CIの出力が表示されます。

harness_test&scale_7.png

パイプラインを編集して、実行中の「run test」ステップを追加できます。では、エフェメラル環境を使用して実行ステップを構成する方法について説明します。

 

ステップを追加し、「Run」ステップを選びます。

 

harness_test&scale_8.png

Runステップを次のように構成します。

harness_test&scale_9.png

この時点で、パイプラインは次のようになります。

harness_test&scale_10.png

次に、パイプラインを保存して実行します。デフォルトのEcho Welcome Messageと新しく追加されたRun Testステップの両方が正常に実行されていることが分かります。

harness_test&scale_11.png

複数の環境を利用して、さらにテストを追加し、アプリケーションを実験できるようになりました。

エフェメラル環境でビルド&テストを高速化

今の競争の激しいソフトウェア市場で競争するために、各組織はソフトウェア導入プロセスのスピードアップを図る必要があります。これには必要なツールや知識を提供して、開発者の日常をもっと楽にすることも含まれます。エフェメラル環境を使うことは、基盤となるインフラやそのセットアップを気にすることなく、アプリケーションのテストとデプロイを迅速に行うためのベストプラクティスです。Harnessでパイプラインを実行すると、必要な設定を含む VMでビルドが実行されるため、すぐにアプリケーションのビルド&テストを始められます。

 

Harness CI の詳細を確認し、今すぐ無料でお試しくださいHarness Developer Hubでその他の製品チュートリアルを確認してください。


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

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

お問い合わせ