「開発者にとって価値のある開発環境を届けていく」、グローバル開発者調査結果のポイントも説明
「GitHub Universe 2021」で発表の主要アップデートを日本法人が解説
2021年12月13日 07時00分更新
GitHub Japanは2021年12月1日、10月の年次カンファレンス「GitHub Universe 2021」で発表された機能のハイライトを解説する記者説明会を行った。同時に2021年のソフトウェア開発者の動向をまとめた年次レポート「The State of the Octoverse 2021」についても紹介し、コロナ禍における開発生産性向上のポイントや国内開発者の傾向などにも触れている。
GitHub ActionsやAdvanced Securityなど、多数の機能アップデート
GitHub Universeで発表されたアップデートについて、GitHub シニアソリューションズエンジニアの田中裕一氏は、「ここ1、2年のアップデートは『GitHub Actions』と『Advanced Security』に関連するものが増えている」と話す。とくに、Actionsのワークフローファイル形式がYAMLになってからはより多くのプロセスを日常的に自動化できるようになり、開発者の間でも非常によく使われているという。また、コードをスキャンして脆弱性やシークレットを検出しアラートを通知できるAdvanced Securityは「開発者が安全なコードを書く」という前提を強力に支援する。いずれも「開発者の生産性を上げる」というGitHubのミッションを忠実に反映した機能群だといえる。
そして今回のUniverseでは、「アイデア出しからコーディング、CI/CDまでのプロセスを一貫してサポートするアップデート」(田中氏)を数多く発表しており、より統合的なプラットフォームとして開発者の生産性向上を支援していく姿勢が見られる。以下、田中氏が挙げた新機能のハイライトを紹介する。
・GitHub Discussions …
開発者どうしが相談/雑談する場所として機能するスレッド形式の掲示板。顧客のフィードバックを集める場所として活用するケースも。今回のアップデートでGitHub Actionsとの連携が可能になったほか、同時並行で進む議論をカテゴライズするラベルが追加され、議論の並べ替えが容易に。
・GitHub Issues …
プロジェクト内の課題を可視化/管理する機能で、チケット管理やタスク管理などで活用される。今回、新しいUXがパブリックベータに展開され、プロジェクト全体のより柔軟な可視化を実現。たとえばカード形式のプロジェクトボードをスプレッドシートのようなテーブルビューに変更できたり、個々のイシューを複数のタスクに分割し、タスクをイシューにコンバートすることが可能に。
「個々のタスクをイシューに登録する際、これまではタスクにひもづく属性を設定することが難しかったが、今回のテーブルビューの追加で属性を列として追加できるようになり、カスタマイズが容易になった。柔軟性という意味ですごく向上したと思う」(田中氏)
なお、GitHubでは12月2日付でGitHub Issuesの追加アップデートを発表しており、ボード上の並べ替えやフィルタリング機能がさらに改善されている。
・GitHub Codespaces …
クラウド上でホストされているコンテナベースの開発環境。これまではWebブラウザやVisual Studio Codeから利用するのが一般的だったが、今回のアップデートでCodespacesからSSHで接続し、Emacsなどのコマンドラインエディタからも使えるようになった。「より幅広い層の開発者がCodespacesを使えるようになり、利用シーンが増えると期待している」(田中氏)。
・GitHub Copilot …
OpenAIの技術をベースにしたAIによるコーディングアシスタント機能。これまでは「Visual Studio Code」の拡張機能として提供されていたが、新たに「NeoVim」と「JetBrains IntelliJ IDEA」に対応。
・GitHub Actions …
より使いやすいCI/CDプラットフォームへと進化中のGitHub Actionsだが、今回のアップデートでは「ワークフローの再利用」「OpenID Connectのサポート」がハイライトされている。
Actionsではこれまでもアクション単位で処理を共通化/再利用したり、それらのコンポーネントをマーケットプレイスで販売することなどができていたが、今回は「さらに大きな粒度=ワークフロー単位」(田中氏)で処理を共通化し、組織内で再利用することが可能になっている。なお田中氏の説明によればマーケットプレイス内で提供されているアクションの数はすでに1万を超えているという。
OAuthプロトコルをベースにしたOpenID Connect(OIDC)のサポートは、GithHubが“より安全なCD”を実現するうえで重要なアップデートだといえる。これまではAWSなどのパブリッククラウドにコードをデプロイする際、クラウドプロバイダ側でクレデンシャルを発行してもらい、GitHub側でクレデンシャル情報をシークレットとして保管する方法が一般的だった。しかし、このやり方ではシークレットを手動で管理/更新することになり、漏洩や悪意あるコードの混入などのリスクが必然的に高くなる。だがOIDCから自動で発行される一時的なトークンを使えば、手動でシークレットを管理する必要がなくなり、漏洩などのセキュリティリスクを大幅に低減できる。「OIDCのトークンは1回のワークフローのみに適用され、生存期間が短く、実害が少ない。より安全なCDを実現するアップデート」(田中氏)。
・GitHub Enterprise …
企業内での安全な開発をサポートする「GitHub Enterprise」では、コードに潜む脆弱性を適切に指摘し修正を提案する「Code Scanning」機能のRubyサポートと、GitHub Enterprise Cloud内でのユーザアカウント管理(作成/変更/停止)を管理者がすべて行える「Enterprise Managed User」が新たに追加されている。Enterprise Managed Userでは組織外とのコラボレーションやリポジトリのフォークが厳しく制限されており、たとえば管理下にあるユーザは自分自身でユーザ情報の変更を行うことができず、リポジトリをパブリックにすることは許されない。限られた組織内のメンバーだけでプライベートに開発を進める場合に有効なオプションだといえる。なお、現時点でサポートするアイデンティプロバイダ(IdP)は「Azure Active Directory」と「Okta」となっている。
GitHub自身の開発生産性向上の取り組み
“開発者の支援”をミッションに掲げるGitHubだが、GitHub自身もまた開発者集団を抱えており、開発者の生産性向上はGitHubにとっても重要な課題である。田中氏は、Github自身がGithubによって生産性を上げている事例として、「Codespaces」によるローカル開発環境の進化を紹介している。
同社では、Codespacesに移行する前は「すべての環境構築を1つのスクリプトで行っていた」(田中氏)。そのためブートストラップに45分程度かかることが普通だったが、Codespacesを導入後は10秒と大幅な時間短縮が実現している。
「10秒というのは非常にインパクトのある効果。(Codespacesにより)全員が毎回同じ環境を短い時間で手に入れることができるようになり、開発環境に起因する無駄な時間を劇的に減らすことができる。また、ひとりで環境をいくつも構築することができるので、他人のコードをレビューするときにもいまのタスクとは別の環境をすぐ構築でき、コンテキストスイッチのコストを大幅に下げることが可能。開発者の仕事のスタイルを大きく改善できる機能だと思っている」(田中氏)
コロナ禍における開発生産性向上のポイント
同説明会では、11月に発行された日本を含むグローバルの開発者動向を総括した「The State of the Octoverse」の内容についても、GitHub Japan リージョナルディレクター 山銅章太氏から説明があった。おもなポイントは以下の通り。
・開発者の生産性向上のヒント … GitHub Actionsによる自動化でマージにかかる時間を33%削減、適切なレビュー担当者の数は3名以下、コードを再利用することで生産性が87%向上
・リモートワークの常態化 … オフィスへの回帰を期待する開発者は11%にとどまる(以前のオフィス勤務の割合は41%)
・開発者に人気の高い言語 … 引き続きJavaScriptが最も人気、次点にPython、Java
今回のThe State of Octoverseではとくに開発者の生産性に関連した調査結果がハイライトされており、山銅氏は生産性向上にとってもっとも大事な要素として「自動化、コードの再利用、ドキュメンテーション」の3つを挙げている。これらの要素に深く関わってくるのがGitHub Actionsであり、今回のアップデートにひきつづき、今後もActionsのアップデートに注目が集まりそうだ。