GitHubがCI/CDサービスを標準サポートへ

Microsoft(マイクロソフト)傘下のGitHub(ギットハブ)は米国時間8月8日、CI(継続的インテグレーション)/CD(継続的デリバリー)機能をフルにサポートするGitHub Actionsの新バージョンをベータ公開した。一般公開も11月13日に予定している。

また同社は、それと同時に、GitHubのプラットフォームには、すでに4000万人以上のデベロッパーが参加していることも発表した。

ワークフローを自動化するプラットフォーム、ActionsをGitHubが公開したのは10カ月前だ。デベロッパーは、それ以前から、あらゆる種類のイベントをトリガーすることによって、独自にCI/CDのパイプラインを実現することも可能だった。GitHubチームがActionsの発表の際に強調していたのは、Actionsを使ってそうしたパイプラインを実現することも可能だが、Actionsにはもっと多くの可能性があるということ。もちろん、デベロッパーはActionsを使ってCI/CDを実現することに、かなりの興味を抱いていたはずだ。

「昨年にGitHub Actionsを導入して以来、それに対する反応には目を見張るものがありました。すでにデベロッパーは、それに触発されて、数千ものワークフローを作成しています」と、GitHubのCEOであるNat Friedman(ナット・フリードマン)氏は、今回の発表の中に書いている。「しかし、寄せられたフィードバックでは、ほとんどすべての人が、CI/CDも欲しいと書いていました。まさに、それを今日発表するのです」。

今回更新されたActionsの新バージョンを使うと、デベロッパーはコードを任意のプラットフォーム上でビルドし、テストして、デプロイすることができる。また、コンテナや仮想マシン上でワークフローを実行することも可能となる。またデベロッパーは、「マトリクスビルド」と呼ばれる新機能を利用して、アプリケーションの複数のバージョンを、同時にテストすることもできる。例えば、3つの異なるバージョンのNode.jsを、LinuxとWindowsとmacOS上で同時にテストできるのだ。GitHub Actionsは、基本的なYAMLファイルとして記述されているので、こうした変更を加えるにもそのファイルに数行を追加するだけでいい。

サポートされる言語とフレームワークは、Node.js、Python、Java、PHP、Ruby、C/C++ 、. NET、Android、iOSなどとなっている。Actionsは、GitHubのパッケージレジストリとも統合されている。

アプリケーションをビルドする際には、ライブログがActionsのコンソールに吐き出される。そのログファイルの任意の行にリンクを張り、その問題についてチームのメンバーと話し合うことも簡単にできる。

こうした新機能は、ベータ期間中は無料で利用できる。また、公開リポジトリについては、それ以降も無料だ。

GitHub Enterprise Server用のActionsは、来年に登場する予定だ。コードをプライベートなデータセンターに保持したまま、GitHubを使ってワークフローを管理するという、ハイブリッドなオプションが利用可能となる。

「GitHub Actionsは、CI/CDやソフトウェアの自動化を民主化するものです。デベロッパーは、GitHubプラフォームのどんなイベントに対しても応答するワークフローを書くことができます。さらにオープンソースの、つまり再利用可能なコードとしてのGitHub Actionsを参照することで、普通にアプリのコードを書くのと同じようにして、自分のソフトウェアのライフサイクルの管理を強力なものにすることができます」と、GitHubのプロダクトデザイン部門の担当シニアディレクターであるMax Schoening(マックス・スクーニング)氏は述べている 。「これは本当に、コミュニティによって成り立っているCI/CDなのです。課金モデルも、誰もが納得できるものでしょう」。

今回の発表で、すでにGitHubプラフォーム上でビジネスを展開している、いくつかのCI/CDのスタートアップと、GitHub自身が直接競合することが明らかとなった。そこには、多少の摩擦が生じる可能性もある。

「GitHubは、すべてのパートナーに対して、引き続きプラットフォームをオープンにすると約束しています。どのような結果になるのかは、いずれ自ずと明らかになるでしょう」と、CircleCIのCEOであるJim Rose(ジム・ローズ)氏は声明の中で述べている。「デベロッパーは賢いので、結局は利用可能なものの中から、最良で最も強力なツールを選ぶことになります。そこでは、CircleCIが選ばれるものと確信しています。(中略)CircleCIには、9年以上にわたって、いろいろなチームがアイディアを製品として実現する過程に関わってきた実績があります。CircleCIはCI/CDのリーダーであり、デベロッパーに対して最適なソリューションを提供できるものと確信しています」。

ローズ氏のコメントは、他のCI/CD関連のプレーヤーが考えていることを代表しているものと思われる。また、同氏も触れていたように、Actionsは、他の継続的インテグレーションのサービスと統合することも可能であり、デベロッパーは自らのプラフォームのビルドを、それによってトリガーすることもできるのは重要なポイントだ。CI/CD機能のプロバイダーは、独自のActionsを作成して、GitHubで提供することもできるのだ。

「GitHubのActionsは、Codefreshの機能を補完するものと考えています。ユーザーがCodefreshを活用して、スケーラブルで堅牢なパイプラインを構築する方法のバリエーションを追加するものなのです。1つ興味深い点は、GitHubがActionsを設計するにあたって、私たちの方法を手本としたことです。実際、GitHubのActionsは、Codefreshのパイプライン内のステップとして使うことも可能です。つまり、言ってみれば、私たちの方法はとても相性がいいのです」と、CI/CDプラットフォーム、Codefreshの主席技術エバンジェリストであるDan Garfield(ダン・ガーフィールド)氏は述べている。「デベロッパーは、GitHub上でCodefreshのアクションそのものを見ることになるでしょう」。

これについてGitHubに尋ねると、スクーニング氏は次のように回答した。「GitHubと、そのコミュニティは、選択の自由と、オープンなエコシステムを信じています。その信念は私たちにとって非常に重要であり、私たちの行動すべてに反映されています。デベロッパーは、GitHubのActionsを既存のあらゆるツール類と統合し、デベロッパー自身の製品と組み合わせたり、適合させることができます。そしてソフトウェアのライフサイクルの、あらゆる部分に適用することができるのです。これについては、既存のCI/CDのパートナーも例外ではありません」。

原文へ

(翻訳:Fumihiko Shibata)

GitHubからワークフロー自動化ツール、Actions登場――独自サービス提供の第一弾

最近Microsoft傘下に入ったGitHubは長らくオープンソースのコード共有と保管のためのサービスと考えられてきた。今日(米国時間10/16)、同社はGitHub Actionsを発表し、独自のサービスを開発、提供する路線の第一歩を踏み出した。 デベロッパーはActionsを利用することで、単にこのプラットフォームにコードを保存したり同僚と共有したりするだけでなく、実行することが可能になる。

これはAWSのライバルとなるようなクラウドというより、IFTTTに近いがもっとフレキシブルなサービスだ。Actionsはワークフローそのものを自動化して効率化を図りたいデベロッパーのニーズに応えるものだ。

これはGitHubの事業にとって重要な転換点だ。事実、GitHubのプラットフォーム責任者、Sam Lambertは私の取材に対して「GitHubの歴史上最大のシフトだ」と答えた。LambertはこのサービスをiOSのショートカットに例えた。ただしはるかに多機能で強力だという。「ショートカット・アプリと似ているが比べものにならないくらいフレキシブルなサービスがGitHubにホスティングされ、誰でもこのコンテナの中で自由にパーツを組み合わせて効率的な独自のワークフローが作成できるところを想像して欲しい」とLambertは述べた。

GitHubのユーザーはActionsを使って 継続的デリバリー・システムを構築できる。GitHubでは多くのユーザーがActionsによるパイプラインを作るだろうと期待している。実際ユーザーもこのプロジェクトについて聞いたときそう思ったに違いない。今日のGitHubの発表によれば、Actionsは「ソフトウェアのビルド、パッケージ、リリース、デプロイ、アップデートという一連の流れを大きく効率化する。またどんなプログラミング言語にも対応する。GitHub上で開発された場合でもと外部のシステムの場合でも、コードを自分では実行する必要はない」という。しかしこれはほんの手始めに過ぎない。Lambertはこう強調している。

継続的インテグレーションと継続的デリバリー(CI/CD)はActionsのユースケースのほんの一部だ。たしかにその面で役立つが、Actionsはそれ以上のものだ。これはDevOps全体に革命を起こすものだとと思う。なぜならActionsを用いることでこの種のものとして最高のアプリケーション、フレームワークのデプロイメントのサイクルを構築できるからだ。ActionsはGitHubでプロジェクトを共有する場合のデファクト・スタンダードになるだろう[…]オープンソースで実行していたすべてができる。DevOps方式の開発ワークフロー・エコシステムのすべての部分に適用できる。

つまり、誰かがリポジトリで「緊急」というタグを使った場合、Twilioを使ってメッセージを送信するという仕組みを作ることができる。レポジトリを検索する一行のコードを書いてgrepコマンドで実行することもできる。その他どんなコードでもいい。レポジトリ内のコードをActionに変換するためにはそのためのDockerfileを書いてGitHubで実行できるようにしさえすればいいからだ。 Lambertによれば「Dockerファイルさえあれば、Actionsでビルドし、実行し、ワークフローに組み込むことができる」という。Dockerfileを使いたくない場合はワークフローをビルドするためのビジュアル・エディタも用意される。

GitHubのプロダクト・エンジニアリングの責任者、Corey Wilkersonによれば、Actionsはすでに多くのGitHubレポジトリで利用されているという。 Actionsは現在はまだベータ版で限定的公開だが、GitHubには9600万のプロジェクトがあるのですぐにたいへんな数のActionsが生まれるだろう。【略】

将来は(Lambertはそうなることを期待しているが)多くのGitHubユーザーがActionsで作成したワークフローをGitHubのマーケットプレイスで販売することになるかもしれない。現在はまだ可能ではないものの、GitHubはこのオプションの可能性を真剣に検討している。Lambertは「エンタープライズ向けツールを開発、販売する(これはSales Forceがやっている)予定がないデベロッパーもActionsによるワークフローの販売でマネタイズができるようになるはずだ」と考えている。

GitHubはデベロッパーに対してActionsを順次公開していく予定だ。デベロッパーはこちらからActionsに登録できる。【略】

GitHubではまたLearning LabでデベロッパーがGitHubを学習するのを助けるための新しいコースを3種類リリースした。また大規模な企業向けのプライベートなLearning Labも用意されている。

GitHub Enterpriseのユーザーにとってもっとも興味深いのは、管理者が個々のプログラマーの公開プロフィールに開発したプロジェクトを表示できるようになったことかもしれない。デベロッパーのコミュニティーではGitHubが事実上、履歴書として機能していることを考えると、このオプションが与える影響は大きい。

その他の発表はセキュリティーの強化に関するものが中心だった。たとえばGitHub Security Advisory APIはコードをスキャンしデベロッパーが脆弱性を発見することを容易にする。またJavaと .NETのプロジェクトには新たな脆弱性のアラート機能も追加された。 【略】

原文へ

滑川海彦@Facebook Google+