Universe 2020の見どころ:DevOps

Image of Brian Douglas

GitHub Universeがまもなく開催されます。今年の動向から予想されることについて、バーチャルホストのBrian Douglasにインタビューを行い、GitHub Actions、DevOps、および自動化について簡単なQ&Aをしました。

 昨年のGitHub Universe以降、状況が一変しました。今年の内容はどのようなものでしょうか?また、何が変わるのでしょうか?

今年の最大の変化は、GitHub Universeが100%オンラインになることです。開催期間は3日間で、毎日5時間のコンテンツを配信します。ライブ配信をご覧になれない方々のために、アジア太平洋地域の時間帯で再配信も行います。さらに、今年リリースした数多くの機能のアップデートを行います。GitHub Code Scanningの詳細情報や、GitHub DiscussionsとGitHub Actionsの最新情報などをお知らせする予定です。

GitHub Actionsについて話すそうですね。GitHub ActionsはほぼすべてのGitHub上のワークフローを自動化できます。詳しく聞かせていただけますか?

GitHub Actionsは約2年前にリリースした機能で、CIジョブやテストの実行などに、多くの人が使い始めています。GitHub Actionsを使ってワークフローのほとんどの部分を自動化できますし、GitHub ActionsがGitHubの他の機能の構成要素となっています。これで、セキュリティ対策からwebhookへのアクセス時の認証まで、あらゆる部分が強化されます。私のセッション「Getting traction with GitHub Actions」では、CI/CD以外に、たとえばパフォーマンスの自動化や、サイトの正常な稼働の確認など、GitHub Actionsの活用方法についてお話します。また、GitHub Actionsでプロジェクトの設計システムの一部をどのようにステージングしているかもお見せします。全体としての目標は、テストの実行のような単純な作業以外に、GitHub Actionsでできることの範囲を広げることです。

興味深い内容ですね。CI/CD以外のアクションの例を挙げていただけますか?

現在、私が使っているワークフローで最も興味深いのは、Lighthouseアクションです。これは、GoogleのLighthouseプロジェクトという、プロジェクトのパフォーマンスとアクセスしやすさを監査するためのオープンソースツールをベースにしています。Lighthouseツールを使うと、ブラウザーを開くだけで、自分のWebサイトのパフォーマンスを直接チェックできます。一方で、Lighthouseアクションを使うと、新しいPull RequestがオープンされたときのサイトのパフォーマンスもGitHubで実際にチェックできるようになります。Pull Requestによってパフォーマンスが低下した場合は、停止して理由を解明できるのです。これは、企業にとって大きな効果があります。これまでに多くの大企業が、アクセスしやすさとパフォーマンスの問題を無視した結果、バックトラックして修正しなければなりませんでした。これはどの企業やチームにも起こり得る状況です。Pull RequestがオープンされるたびにGitHubのアクションがトリガーされて、Lighthouseスコアが通知されます。これにより、レポートもアーティファクトに直接アップロードされます。アーティファクトについては、セッションで詳しく説明します。

基本的なことがいくつかわかっていると、役に立ちそうですね。GitHub Actionsを初めて使う人が、GitHub UniverseまでにGitHub Actionsについて理解しておくにはどうすればよいでしょうか?

初めての方は、GitHubラーニングラボのActionsコースを見ておくことをお勧めします。ここから、レポジトリ内の [Actions] タブにアクセスしてください。これで、GitHub Universeへの参加前でも、プロジェクトでの実際の使用方法や、GitHub Actionsを使い始める手順がわかります。

先ほどセキュリティについて言及されていました。セキュリティはDevOpsの自動化において一定の役割を担います。「DevSecOps」とも言いますね。GitHub Universeでさらに詳しく説明する予定ですか?

 セキュリティは、もちろん、メインテーマになります。ワークフロー作成時にセキュリティについてそれほど気にしておらず、誤ってトークンや機密を漏らしたことのある開発者は多いでしょう。私もそうです。後で全員が必死で走り回って事態を収拾しようとしますが、GitHub Actionsを活用すれば簡単な方法で防止したり修正したりできるのです。私が気に入っているのは、GitHubで自動的にトークンが特定されて再生成されるようになっていることです。そのトークンに置換できるので、誰にもミスを知られることはありません。開発者のこの小さな成功は積み重ねられます。ですから、DevOpsのヒントやワークフローの改善方法を知るためだけにGitHub Universeに参加した場合でも、セキュリティに関する答えをたくさん得られます。GitHub Universeで紹介されたツールや質問をチームに持ち帰って、実在するリスクのいくつかに効果的に対処できることでしょう。

DevOpsチームにお勧めのセキュリティセッションはどれですか?

 いくつかあります。たとえば、インフラストラクチャのパイプラインでの機密保持とGitHubによるその実現方法をテーマにしたHashiCorpセッションやこれとは真逆の、機密を漏らした後のことに関するSasha Rosenbaumのセッションもあります。それから、Maya KaczorowskiとWilliam Bartholomewも、GitHubの製品チームのコードスキャン機能の開発の経緯について、よく似た内容のセッションを行います。

セッションの内容は下記のリンクから確認できます。

GitHub Actionsと同様に、セキュリティのセッションを聞く前に、事前に読んでおくべき資料などはありますか?

 まず、セキュリティの研究者の調査報告を見るのが興味深いかもしれません。プロジェクトの [セキュリティ] タブには、セキュリティ調査文書や、皆さんがプロジェクトで活用している実際のライブラリにセキュリティ研究者がリンクしたレポートへのリンクが数多く含まれます。私が作成したGitHub ActionsがとあるGitHub Universeのセキュリティセッションで解説されているのを知った時に、これらリンクが役に立つことがわかりました。Actions内でいくつかのセキュリティ脆弱性を見つけ、それを修正したことは、私だけでなく、そのActionsを使用する全員に役立ったのです。ですから、起こっているすべてのことについて自分が最新の情報を把握できないと思っても、その情報を共有してくれるセキュリティ研究者のコミュニティがGitHubにはあるのです。[Security] タブを確認する習慣を今すぐ始めてください。そうすると、時間が経つにつれ、自分が使用している環境が脆弱でないことを確信できるようになります。

GitHub Universeで、学ぶべきももを1つだけあげるとしたら、それは何でしょうか?

セキュリティとDevOpsのどちらにしても、最も重要なことは、GitHubでどのようなツールが用意されているかを知り、理解することです。たとえば、CodeQLです。[Security] タブに移動し、プロジェクトで有効にすると、コードが保護されます。これで簡単になるのですが、自分のコードベースで何が起こっているかを確実に知るために、コミュニティで起こっていることを必ず知っておくようにしてください。ですから、Python、Ruby、JavaScriptのどれを使用している場合でも、それに関わっているセキュリティ研究者がコミュニティに加わっており、その調査のすべてにアクセスできることを知っておいてください。

楽しい質問に移りましょう。✨今年は、初めてPlayトラックが導入され、GitHub Discussionsも使用されます。この他に、初めて参加する人が知っておくべきことは何ですか?

オンラインにですべてのセッションを視聴しようとすると、圧倒されてしまうでしょう。今年は、多くの参加者が家で仕事などをしながら、GitHub Universeを視聴するはずです。ですから、Playトラックを用意しました。Playトラックのタブを開いておくと、GitHub Universeとつながっていると感じることができます。良い息抜きにもなるでしょう。また、Discussionを見ることもお勧めします。各セッションには、それぞれに対応するDiscussionsのページへのリンクがあります。これは、今年リリースしたGitHub機能です。初めての方には、自分で直接視聴してDiscussionsを体験するチャンスです。詳細を知りたいトピックがある場合は、Discussionsに実際に参加して質問できます。意味のない質問などありませんからね。さらに状況を説明したい場合や、興味を持った視点がセッションで紹介されなかった場合は、Discussionsを使用して、発表者と直接つながることもできます。私も参加しますので、@bdougieというタグでお知らせください。

詳細を知りたい方は、Brianのセッションを視聴するか、またはすべてのDevOpsセッションのリストをご覧ください。