本ブログは、米国で発表した Heroku CI Is Now Generally Available: Fast, Low Setup CI That’s Easy to Use の翻訳版です。
セールスフォース・ドットコムではHeroku CIを正式リリースし、提供を開始します。これはユニットテストとブラウザテスト向けのすぐに利用可能なテスト実行環境であり、Heroku Pipelinesと密接に統合されています。
最近の傾向として、多くの開発者がソフトウェアの品質を担保しながら素早く機能を最適にリリースするために、継続的インテグレーション(以下、CI)をベストプラクティスとしています。またそれは継続的デリバリー(以下、CD)を実現するために必須となっています。ビルド、デプロイメント、そしてCDの実現のために、Heroku CIは利便性、開発体験、そしてCIの機能を飛躍的に向上します。開発者の力を管理プロセスではなく、アプリケーションに注ぐことができます。
Heroku CIを提供することで、HerokuがサポートするNode、Ruby、Java、Python、Go、Scala、PHP、Clojureといったプログラミング言語を使う開発者向けに完全なCI/ CDソリューションを実現します。開発者の皆さんがHerokuに対して期待されているであろうことでもありますが、Heroku CIはシンプルかつ強力で視覚的、そして規範的です。Heroku CIは、小さなイノベーションチームから大手企業向けの大プロジェクトまで、アプリケーション開発をする上で様々なケースに対応できる完全なCIソリューションとなる機能と柔軟性を提供することを目的としています。
Heroku CIの設定は非常に簡単、あるいは何もする必要はありません。そこにIT担当を巻き込むことなく、Heoku CIは自動的に使えるようになり、Heroku Pipelines上のすべてのアプリで動作します。Pipelineの中にあるHeroku CIをオンにしておけば、GitHubへのプッシュのたびにテストを実行します。テスト環境は、たとえばGo言語のテストであれば、「function_test.go」というファイル名とするなど、それぞれの開発言語ごとにある慣例に従っています。これらのテストは自動的にGitにプッシュすることで行われるようになります。そのため、Jenkinsや他のCIシステムからHeroku CIに移行する際にほとんどの場合で再構成は必要ありません。
CDが初めての人でも、Heroku Piplines のセットアップは非常に簡単な3ステップで、開発するアプリのレビュー、開発、ステージング、プロダクションの各環境の構築をすべて自動化してくれます。これらすべてHeroku CI上にある「テスト」と書かれたタブをオンにするだけで実行されます。
セットアップから実行テスト、CI管理まで、Heroku CIに関するすべてのものは、ユーザがCDが初めてだとしても、視覚的で直感的なものになるように意識して設計されています。各アプリケーションについて、最新の、または現在実行中のテスト実行のステータスが、PipeLinesのページに分かりやすく表示されます。テストアクションはクリックひとつで実行することができ、テストの再実行から、任意のブランチに対する新規テストの実行、ブランチごとあるいはプルリクエストごとに以前稼働したテストの検索、そしてそして以前行ったテストのすべての詳細を参照するところまですべてをHeroku CIの画面上で行うことができます。また、Heroku CIはGitHubとシームレスに統合されています。GitHub WebまたはGitHub Desktopインターフェース内でもテスト結果を見ることができます。
より詳細な制御、直接デバッグアクセス、およびCIアクションのプログラム制御を必要とするCIユーザーは、Heroku CIに対応するCLIインターフェース(Heroku CLI=Command Line Interface)を利用することができます。
実行するすべてのテストで、Heroku CIは、ステージング環境と本番環境を反映した一時的なアプリケーション環境を作成して設定します。これらのCIアプリは自動的に作成され、テストの実行が完了した直後に破棄されます。コードに必要なすべてのアドオン、データベース、および構成は、ダウンストリーム環境のテスト速度と均衡に最適化されています。ベータ期間中、アドオンパートナーと協力して、CIの体験が迅速かつシームレスであることを確認しています。
各CIのセットアップとティアダウンは数秒で実行されます。これらの一時的なHerokuアプリケーションを使用してテストを実行するので、(多くのCIシステムに共通するように)キュー時間はありません。毎回専用のPerformance dynosでテストが実行されます。
パブリックベータの何千人もの参加者の間で、ほとんどの開発者がテストの実行が期待よりも大幅に速く完了したことを実感しました。
私たちはCIを効果的な開発ワークフローに不可欠な部分であり、より良い全体的なデリバリープロセスのための一部とみなしています。
CIを有効化したHeroku Pipelineでは、回数無制限のテスト実行が月額わずか10ドルで提供されます。各テストの実行ごとに、dyno料金はテスト実行中のみ適用されます。テストを実行するにはPerformance-M dynosを推奨し、デフォルトとなっていますが、他のdynoサイズに指定することもできます。
すべての費用はコミットメントなしで1秒ごとに案分されるので、通常は既存のテストスクリプトにほぼ変更を加えない状態でHeroku CIを少額でお試しいただくことができます。
すべてのHeroku Enterpriseのお客様は、無制限のCIが有効化されたPilelinesの使用及び回数無制限のテスト実行を、キュー時間無しで提供します。新しいプロジェクトには、プロビジョニング、認証設定、またはCIの管理などは不要で、Heroku CIをすべてのHeroku Pipelinesでワンクリックで有効にすることができます。
既存のHeroku Enterprise dynoクレジットはテスト実行に自動的に使用され、インボイスには、CIテストが実行されるアカウント全体のdynoの使用とともに、CI対応パイプラインの新しいセクションが含まれます。
すべてのテスト実行結果は、コンプライアンスのために参照できる永久的なURLが生成され、すべての認証は既存のHeroku Enterprise Teams(Org)セキュリティで管理されます。 CIプロジェクトとプロダクション展開のセキュリティ、認証、課金の統一と、企業プロジェクト全体の規範的な方法論により、エンタープライズもスタートアップが持つアジリティを持ってHeroku上で変革を起こすことができるようになります。
これはCIの機能に直接関係はありませんが、私たちはHeroku CIが最も快適で美しいソフトウェアテストシステムの1つであると考えています。 1500人以上のベータユーザーにHeroku CIをテストし、バグを報告し、機能改善提案を頂きました。いくつかのwebhooksが落ちていたこと、タブ上のアイコンはこれがいい、テストを再実行する方法をもっと明白にしうべきだなど、およそ600のフィードバックがあります。その多くはみなさんとのEメールのやり取りで出てきたものです。他のソフトウェアと同様に、私たちは完璧を求めて進化し続けていますが、ここまで達成できたことを誇りに思っています。これまでのサポートに感謝するとともに、引き続きご協力をお願いします。
簡単です。 Heroku Pipelineをセットアップすれば、準備が整います。こちらから2分の動画、あるいは簡単なハウツーの動画もあります。是非お試しいただき、使ってみて感想を教えてください。