The Wayback Machine - https://web.archive.org/web/20201028062119/https://codezine.jp/article/detail/11236

CodeZine(コードジン)

特集ページ一覧

GitHub Actionsどう使う?【後編】―日本のエンジニアたちの所感、GitHub Universeアフターイベントより

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

 先日のGitHub Universeで新機能「GitHub Actions」が発表された。これはDockerコンテナにパッケージ化された「アクション」を組み合わせることで、テストやデプロイといったワークフローを自動化できるサービスで、これによってGitHubはコードをホストするだけでなく、実行することもできるプラットフォームになったわけだ。本稿では、そんなGitHub Actionsの使いどころを探っていきたい。後編となる今回は、前編で紹介した海外の先行ユーザーによる活用事例に続き、日本のエンジニアたちがこの新機能をどう見ているのか、アフターイベントの内容からピックアップしてお伝えする。

目次

ぶっちゃけCI/CDツールと競合する? 日本でのアフターイベントで語られた使いどころ

 前編で紹介した通り、GitHub Universeで解説されたGitHub Actionsの活用方法はユーザーによってさまざま。多様なツールと組み合わせることで、開発者のワークフローを画期的に改善できる点が強調されたが、日本のエンジニアたちはこの新機能をどう見たのだろうか。

 及川卓也氏をはじめ現地を訪れていたエンジニアたちが、GitHub Universe開催の1週間後に渋谷TECH PLAYで行われたアフターイベントに集い、本音を交わした。

あらゆるベンダーがDevOpsのプラットフォームを目指す―及川卓也氏の所見

 GitHub Universe現地の様子をスライドとともに紹介した及川氏。GitHub Actionsについては、このリリースが業界のトレンドとどうつながっているのか、所見を示した。

及川卓也氏
及川卓也氏

 GitHub Actionsは、大きく2つのトレンドを象徴しているという。1つは、コンテナの流行と拡大。もう1つはDevOpsが当たり前になっていることだ。

 GitHub Actionsの技術にコンテナが使われている点は注目のポイントだ。アクションのひとつひとつは、コンテナの中のインスタンスに対してコマンドを発行していく仕組み。メジャーなパブリッククラウドにおいても、コンテナを持って、Kubernetesで管理できるのが当然になってきている。昨今の技術のトレンドが表出した形となった。

 DevOpsという意味では、GitHub自体がそのプラットフォームになりうる。GitHub Actionsのデモで、各種プラットフォームに一気にデプロイする様子が見られたが、こういったことは今後必要とされ、技術的にも可能となっていく。古い監視ツールを使った運用から脱却し、自動化されたDevOpsの流れを前提としているとした。

 現在でも、GitHubが「リポジトリホスティングの会社」と思われることはあるが「今回の発表で、『DevOpsのためのプラットフォーム』であるとはっきりと分かった」と及川氏。コードを入れておくだけではなく、そこに対してさまざまなアクションが発生した時にGitHubをプラットフォームに使ってもらうことを意図している。

 気になるGitHub ActionsとCI/CDツールとの関係について、このアフターイベントでGitHub Japanの池田尚史氏は「共存していける」と考えを示していたが、及川氏は「実際にはかなり似ていて、競合する方向に発展していくことも十分考えられる」とした。

 似た方向性を持っているのはCI/CDツールだけではない。パブリッククラウドは、リポジトリの部分こそGitHubやGitLabに任せているものの、その他のワークフローについてはカバーできるように機能を出してきているという。

 ワークフローの自動化は、あらゆるプラットフォームでできるようになってきている中で、ユーザーは何を基準に技術を選定していけばよいのだろうか?

 及川氏は「何をトリガーとしてワークフローが動くか?」を考えると、選びどころが見えてくるのではないかと提言した。

 GitHub Actionsにおいては、GitHubのイベントがトリガーとなる。用意されている26の基本イベントに加えて、カスタムイベントを定義することはできないので、デプロイ先でおきたアクションをトリガーとしてワークフローを動かしたい場合などを、一見カバーできないように思える。

 しかし、これは現状のGitHub Actionsで可能だ。というのも、別のサービスからGitHubにイシュー登録することでGitHubのイベント化し、GitHub Actionsのワークフローに組み込むことができる。

 及川氏は「これをGitHubが意図したのかは分からないが、このようにイベントを発生させるための情報がどんどん集まってくると、GitHubはDevOpsのプラットフォームとして、まさに『ハブ』として動くようになる」とGitHubの向かう先を予見する。

 CI/CDツールベンダーやパブリッククラウドベンダーも同じように、自分たちのところをプラットフォームとして使ってほしいと考えている。「そういう意味では競合は発生するし、そこに注目すると各社がどのようにDevOpsを捉えているのか思想が見えてくるのではないか」と及川氏は指摘した。

 ユーザーはそういったことを踏まえて、どんなツール・環境をDevOpsの中心に据えるべきなのかを考えるとよさそうだ。及川氏も、「ソースリポジトリとしてGitHubを見た時にニュートラルなCI/CDツールを選んでもよいし、変更の予定がないならパブリッククラウドを中心に据えるのもあり」だと提言する。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
', '
', '
'); document.write(''); } googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (pr_dfp_ids.indexOf(ad_id) !== -1) { var ad = $('#'+ad_id).find('iframe').last(); try { var contents = ad.contents(); } catch (e) { // Blocked a frame with origin // 配信期間を過ぎている広告に対してiframeを展開する場合がある if (e.code == 18) { $('#ad_pickup_' + ad_id).remove(); return; } } if (contents.length === 0) { $('#ad_pickup_' + ad_id).remove(); return; } var head = contents.find('head'); head.append(''); } }); googletag.pubads().addEventListener('slotOnload', function(e) { var ad_id = e.slot.getSlotElementId(); if (pr_dfp_ids.indexOf(ad_id) !== -1) { var ad = $('#'+ad_id).find('iframe').last(); try { var contents = ad.contents(); } catch (e) { // Blocked a frame with origin // 配信期間を過ぎている広告に対してiframeを展開する場合がある if (e.code == 18) { $('#ad_pickup_' + ad_id).remove(); return; } } var head = contents.find('head'); if (head.find('style').length === 0) { head.append(''); } } }); $(window).load(function() { var show_pickup_length = 0; // 中身が無い広告でslotOnloadを通らない場合がある pr_dfp_ids.map(function(ad_id) { var ad = $('#'+ad_id).find('iframe').last(); try { var contents = ad.contents(); } catch (e) { // Blocked a frame with origin if (e.code == 18) { $('#ad_pickup_' + ad_id).remove(); return; } return; } if (contents.find('body').length === 0 || !contents.find('body').html()) { $('#ad_pickup_' + ad_id).remove(); } else { show_pickup_length++; } }); if (show_pickup_length === 0) { $('.newsBlock .prList').remove(); } });

著者プロフィール

  • 岡田 果子(編集部)(オカダ カコ)

    2017年7月よりCodeZine編集部所属。慶応義塾大学文学部英米文学専攻卒。前職は書籍編集で、趣味・実用書を中心にスポーツや医療関連の書籍を多く担当した。JavaScript勉強中。

バックナンバー

連載:GitHub Universe 2018 レポート
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5