GitHub Actions をもっと深く掘り下げる: 1 つの設定ファイルですべてを制御して、暗闇の中でそれらを結びつける

Table of Contents

GitHub Actions をもっと深く掘り下げる: 1 つの設定ファイルですべてを制御して、暗闇の中でそれらを結びつける

分析: GitHubは火曜日に開催された年次開発者会議で、ソフトウェア導入ワークフローを自動化する「Actions」を発表しました。既存の様々な自動化ツールと比較すると、やや物足りない印象ですが、この技術について議論した幹部たちはAppleに匹敵するほどの熱意に満ち溢れていました。GitHubのプラットフォーム責任者であるサム・ランバート氏は、この技術を「真に素晴らしい」と評しました。

コードホスティング業界の他の企業も同様の興奮を示しました。The Registerは、この症状が伝染性があるかどうかを知りたかったので、数社の企業幹部に話を聞いてみました。

GitHub Actionsは、ソフトウェアリポジトリにカスタムロジックを適用する方法です。CI/CDと概念は似ていますが、より広範なイベント(現在はGitHub Webhook)に対応しています。

「CI/CDは今や主流です」と、テクノロジー担当SVPのジェイソン・ワーナー氏は述べた。「私たちは未来を見据えようとしています。」

Actions が興味深いのは、第一に、GitHub が Docker コンテナを介して Actions 自動化スクリプトを実行するための計算能力を提供していること、第二に、計算サービスの基本的な構成要素として、また交換の手段としてコンテナがさらに便利になることです。

「ある時点で、私たちを含め、すべての主要クラウドはコンテナをやり取りしているだけです」とワーナー氏は述べた。「しかし、私たちにとって魔法となるのはコンテナではありません。コンテナは単なる抽象化の単位です。魔法はコンテナと言語、つまり私たちが基盤とするHCL言語、ワークフロー言語との相互作用にあります。そしてもちろん、その基盤となるプラットフォーム、つまり様々な相互作用が存在します。」

ワーナー氏は、GitHub のワークフロー言語 (HCL のサブセット) は、いずれオープンソースになる予定だと述べた。

彼は、Actions は、難解なコマンドの発行や構成ファイルの作成といった、ソフトウェア展開の儀式的な作業の一部を排除する試みであると説明しています。

「皮肉ではなく、開発者の時間の50%は設定ファイルに費やされていると言ってもいいでしょう」とワーナー氏は述べた。「各サービスにはそれぞれ独自の設定ファイルがあります。もちろん、新たな設定ファイルも導入しました。『全てを支配する』のではなく、『他の多くのものを奪う』ものなので、エンドポイントを指定するだけで済むはずです。そして、アクションを書く人が増えれば、設定ファイルもきちんと処理されるので、アクションについて心配する必要がなくなります。」

なぜ他の設定言語ではなくHCLのようなものが選ばれたのでしょうか?エコシステムエンジニアリングディレクターのKyle Daigle氏は、「ファイルの方が見やすく、管理も簡単です。インデントも気にする必要がありません」と説明しています。また、このフォーマットによりincludes、他の設定ファイルをインポートする の実行も容易になります。

たとえば、main.workflowビジュアル エディターではなくテキスト エディターでファイルを作成した場合、ファイルは次のようになります。

ワークフロー「新しいワークフロー」{ on = "push" 解決 = ["Hello World"]
} アクション "Hello World" { uses = "./action-a" env = { MY_NAME = "Mona" } args = "\"Hello world, 私は $MY_NAME です!\""
}

これは、ワークフローにラベルを付けるDockerfileと、それを呼び出すシェルスクリプトと組み合わせて使用​​されます。このシンプルな例、Hello Worldの例は全く面白みがありません。しかし、Actionsははるかに複雑な処理も可能で、例えば5つのクラウドプロバイダーで同時にアプリを起動するといったことも可能です。

「これは、コンプライアンスに基づかないワークフローにとって本当に素晴らしいツールです」と Daigle 氏は述べています。

GitHubは、エンタープライズ顧客からActionsの利用に必要なコントロールに関する意見を得られることを期待して、Actionsのテストを行っています。オンプレミス版の提供も計画しています。

GitHub Universe、サム・ランバート

GitHub がアクションの一部を獲得:「プルリクエストで行ったのと同じことをソフトウェア開発で実行するプロジェクト」

続きを読む

「クラスタの一部を管理しなければならないため、私たちにとってはより複雑になる可能性があります」とワーナー氏は述べた。「しかし、それを可能にするプリミティブを提供します。」

Actions ベータ テストのもう 1 つの目標は、いくつかのコンテナ イメージのタグ付けを伴うオープン ソース ワークフローでは、数十のデプロイ イメージやアプリを処理するエンタープライズ ワークロードとは異なるリソースが必要になるため、処理と並列化のニーズについてさらに詳しく知ることです。

「現在はVMレベルの分離を採用しています」とデイグル氏は述べた。「最終的には単一のワークフローがVM内に存在することになります。その後、コンテナごとに処理を進めていきます。並列化によって処理の一部を分割することで、常に単一のサーバーに縛られることがなくなります。」

Daigle 氏は、Actions を CI/CD やその他の DevOps ツールを補完するものであり、開発者のソフトウェア ワークフローのギャップを埋める手段であると考えています。

「私たちはこのことに心から興奮しています」とデイグル氏は語った。「オープンソースとのつながりがあるからこそ、これは興味深いことだと思います。おそらくプルリクエスト以来、私たちにとって最大の転換点となるでしょう。本当にそう信じています。」®

Discover More