2022年9月13日
Continuous Delivery
開発者は、妥協する必要はありません。仮想マシンによって、継続的インテグレーションとデリバリーがかつてないほど容易になりました。
高速なパイプラインが必要な人は、コンテナ上で動作し、簡単にプロビジョニングとキルができる(牛とペットのアナロジーに従って)、軽量で信頼性が高く、スケーラブルなCIシステムを使うでしょう。このセットアップにより、CIシステムは最小限の資源コストで高速なビルドを実行できるようになります。このビルドシステムは永久不変のものです。Droneを搭載したHarness CIは、このために設計されたのです。
しかし、例えば、規制の厳しい業界や政府機関で働いているためにセキュリティーを最適化するのであれば、おそらくアイソレーションにもっと焦点を当てるでしょう。もしあなたのソフトウェア開発努力の主な動機がセキュリティーならば、より高いレベルのアイソレーションとより安全な下位レベルのカーネル機能へのアクセスさえあれば、CIを動かすインフラのプロビジョニングに時間がかかることは気にならないでしょう。しかし、このシナリオは前者よりも面倒で時間がかかるのは確かであり、最初から特に開発者に優しいというわけではありません。この2つのシナリオでは、スクリプトやパイプラインのメンテナンスなど、日常的な苦労が避けられず、そしてそれは最悪でした。要するに、トレードオフは避けられないのです。
デベロッパーエクスペリエンス
Darren Shepherdは、多くのツールにおける重要な問題点であるユーザビリティーを強調しています。ソフトウェアデリバリーパイプラインを構築する際、開発者の体験が主な駆動力となる場合があり ます。他のコンテナでネストしたタスクや並列タスクを実行するには、コンテナにルート権限や管理者権限を付与する必要がある場合があります。このような状況には、リスクと摩擦がつきものです。その上、他のセキュリティを重視するユースケースでは、ハイパーバイザーやランタイムのより深い層にアクセスする必要がありました。どのコンテナでも利用可能なランタイムだけでは、十分ではありませんでした。さらに開発者の頭痛の種は、価格の問題です。具体的には、複数の別々のツールを使用する場合のクラウドコストを管理することです。
Harnessでは、このようなトレードオフを過去のものにするために努力しています。それだけでなく、全開発者にとってCIプロセスが補完的で楽しいものになることを望んでいます。スピードを重視する人、セキュリティーを重視する人、タスクをエレガントに解決するツールを求める人、Harnessは開発者のためのツールを提供します。
仮想マシン(VM)は、仮想化革命を支えました。仮想マシンは、コンピューターをアイソレートし、ベアメタルマシンを最大限に活用するための素晴らしい方法です。VMは、エッジやパブリッククラウドを含むあらゆる場所で動作し、その中で完全なシステムイメージが実行されています。AWSはElastic Compute Cloud(EC2)を通じてVMを提供した最初の企業です。Google CloudはCompute Engineという同様のサービスを提供しており、Microsoft AzureもVirtual Machinesを提供しています。VMはコンテナほどプロビジョニングや削除が容易ではありませんが、それでも物理マシンよりはプロビジョニングが容易です。
Harness CIは現在、VMs on AWS上でDocker、Linux/arm64、MacOSイメージ、GCP VMのいずれかを使用して動作します。これらが、現在Harness CIがサポートしているインフラのオプションです。
リストは今後も拡大していきますので、Harnessの新機能やユースケースの最新情報を知りたい方は、DroneやHarness CIのオフィスアワー、CodeAboutセッションなどさまざまな番組を開催しているYouTubeやTwitchチャンネルを購読してください。CI/CDのベストプラクティスに関する情報を提供することで、ユーザーがHarness CIを最大限に活用できるようにしたいと考えています。
Harnessでは、お客様の選択や制約に関わらず、最高の開発者体験(DX)を提供しています。私たちは、お客様のソフトウェアデリバリーへの取り組みが生産的で楽しいものであることを望んでいます。多くのオープンソースCIツールとは異なり、Harness CIはエンタープライズグレードでありながら軽量のCIシステムです。その最新のソフトウェアデリバリープラットフォームを通じて、DevOpsの成長への発射台となるのです。つまり、Harness CIは、リソース需要の急増に対応するために弾力的に拡張でき、アイドル時には縮小できるのです。他のプラットフォームと同様に、効率性を考慮して設計されています。
これは、クラウドネイティブのCIシステムを構築したことの利点です。つまり弾力的で宣言的なインフラの効率に完全に適応しているのです。多くの開発者がコンテナとKubernetesの両方を愛しているという事実は、2021年8月にCIモジュールをローンチしたときの判断が正しかったことを証明しています。
Harness CIはDroneを搭載しているため、必要な場所で大規模に稼働できます。そして、それを使うことが思い出に残るようにすることも目指しています。そのエクスペリエンスの一部はMatrixビルドです。特に、製品が提供するさまざまなループ機能と組み合わせれば、開発者の日常はより簡単になります。この機能により、開発者は複雑なパイプラインを一度に変更することで、ビルドの定義を簡素化することができます。以前は、ファイル内の異なる場所にまたがって変更を加える必要がありました。Matrixビルドは、編集や変更が困難なパイプラインの繰り返しや冗長な定義を効果的に削減します。
テスト並列化は、開発者がビルドの終了を長く待ちたくない場合に便利です。テスト並列化は、開発者が特定のジョブに並列性を設定し、テスト以外のユースケースに拡張性を持たせることで、Harness CIのエクスペリエンスに貢献します。例えば、セキュリティースキャン、コードリンティング、ワークロード生成テ ストなど、並列実行のメリットを享受できるユースケースは他にもあります。
Harness CIの主力機能であるTest Intelligenceによるテスト管理は、テストドリブン開発の普及に貢献したいと考えています。テストスイートの実行は、苦痛で退屈なものであってはなりません。テストインテリジェンスは言語固有のものであり、現在ではMicrosoftの.NET Coreをサポートしています。
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。