8月5日、GitHubによるバーチャルカンファレンス「GitHub Enterprise Virtual Roadshow Japan 」が開催されました。これは、グローバルなバーチャルカンファレンス「GitHub Satellite 2020 」が5月に開催されたことを受けて、開催する運びとなったものです。
今回のイベントはGoToWebinarを使って中継され、200名を超える参加者がいたようです。本稿ではその内容をレポートします。なお、GitHub社のセッションは録画が公開されています 。詳しくはこちらをご覧ください。
「ご挨拶」
はじめに、GitHub リジョナルセールス・ディレクターの山銅章太氏は、GitHubのここ一年の大きな話題を紹介しました。
GitHubが今年4月に5,000万ユーザーに到達したこと 、同じく4月にnpmを買収したこと 、昨年GitHub Actionsを正式リリース してMarketplaceにはインテグレーションのための様々なActionがあること、今年3月にGitHub for Mobileを正式リリースしたこと 、そして4月にGitHubのコア機能が無料になったこと を取り上げました。山銅氏は「詳しくはGitHubのブログを見てほしい」と案内していました。
「新機能の紹介」
GitHub シニア・ソリューションズ・エンジニアの田中裕一氏は、新機能としてGitHub Discussions, GitHub Codespaces, GitHub Advanced Security, GitHub Private Instancesを紹介しました。
なおセッション中に、GitHub DiscussionsでQ&Aを受け付けました。回答担当者がセッション中にDiscussions上で回答したり、田中氏が発表後にQ&Aを拾って回答しました。その際、先日公開された GitHub製品の今後の機能追加に関する情報が四半期ごとに分かる「GitHub public roadmap 」についても紹介していました。
GitHub Discussions
コードとコミュニティについてのオープンな議論の場として、Discussionsが新しく開発されました(現在、限定パブリックベータ) 。Issueよりも曖昧度の高いQ&Aに最適とし、またそのリポジトリのコードが使われている事例を集めるのに使うのも良さそうとのことです。Discussionsが使われている例として、next.jsのDiscussions を挙げていました。
GitHub Codespaces
GitHub.comにおいて、ブラウザ上でVisual Studio Codeを動かしてリポジトリのソースコードを編集したりGitを操作できりするCodespacesも開発されています(現在、限定パブリックベータ) 。Codespacesを実行すると、ブラウザ上でVisual Studio Codeが使えるようにするためのコンテナのビルドが走ります。その際、コンテナ内にリポジトリのコードがクローンされてきて、依存関係やツール類もセットアップもされます。またポートフォワーディングすることで、ブラウザからコードを実行したページにアクセスできます。そして、このコンテナの設定は、リポジトリの/.devcontainer/devcontainer.jsonに記述されることを紹介しました。
Codespacesを使えば、プルリクエスト、コミットのプッシュを行うのに、Gitの設定やGitHubへのネットワークの設定を改めてする必要がないため、環境構築につまづかなくなるのが良い点だと指摘しました。セッションでは、Node.jsで作られた計算機アプリの背景色を変えるプルリクエストを作ってマージし、実際にブラウザの画面上で変わったことを示しました。
なおQ&Aでは、CodespacesのエディタとしてVimを使いたいといった声がありましたが、それに対して「たしかにいまは使えない。けれども現在のCodespacesはGitHubを使う障壁を下げたいというのが目的。別の形で別途検討はしている」とコメントしていました。
GitHub Advanced Security
GitHubでは、コードの脆弱性を確認できる機能も提供しています。
シークレットスキャニング
外部サービスと通信するための認証用トークンや秘密鍵の情報(シークレット)がGitHubにプッシュしたコードにまぎれこんでいないかを検出できる機能が「シークレットスキャニング」です(gitヒストリも検査でき、誤検知を除外する設定も可能) 。これまではパブリックリポジトリのみが対象で、すでに1,000万以上使われているそうです。
このシークレットスキャニングが、プライベートリポジトリも対象になりました(現在、限定パブリックベータ) 。パブリックリポジトリの場合はトークンの種類によってそれぞれのベンダに連絡されていましたが、プライベートリポジトリの場合はベンダに送るわけにはいかないため、GitHubが判断してアラートをリスト表示します。GitHubが判断するため完全に正しいとは限らず、アラートをクローズできるようにもなっているとのことです。
コードスキャニング
ソースコード解析エンジンCodeQLによるコードの脆弱性を検出できる「コードスキャニング」が開発されています(現在、限定パブリックベータ) 。日々新しい脆弱性が出てきていますが、セキュリティリサーチャーやカスタマーによって作られるCodeQLのクエリをパブリックリポジトリ で管理し、このクエリを使ってコードの脆弱性を検査します。これはGitHubらしいアプローチであると言及していました。なお、パブリックリポジトリにクエリを登録せずに、カスタムクエリ的にCodeQLを書くことも可能です。また他の静的解析ツールによる拡張も可能とのことです(現在ShiftLeft、Anchoreと連携可能) 。
CodeQLを適用していれば、プルリクエストを作った時点で検査され、その検査結果がプルリクエストのページで表示されるようになります。脆弱性が検知された場合にはマージを禁止する設定も可能だということです。セッションでは、プルリクエスト時にクロスサイトスクリプティングのアラートが検知される事例と、GitHub Actionsでコードスキャニングの設定方法を紹介しました。
なお、シークレットスキャニングとコードスキャニングはGitHub Enterprise Serverでの対応も今後予定されていて、パブリックロードマップ で確認できます。GitHub Enterpriseのプライベートリポジトリでセキュリティスキャンを行うにはAdbanced Secrityのアドオン(追加ライセンス)が必要とのことです。
Actions/Packages on Enterprise Server
GitHub Enterprise ServerにおけるGitHub ActionsとGitHub Packagesは現在、プライベートアルファの段階で、年末にはリリースされそうです。その際、マネジメントコンソールでのメトリクスのトラッキング、監査ログが追加されるとのことです。
GitHub Private Instances
GitHubのサービスを享受するのにGitHub.com, GitHub Enterprise Server/Cloudが選択肢としてありますが、第3の選択支として、フルマネージド、シングルテナントなクラウドサービスであるGitub Private Instancesを今年後半にベータリリース予定であることを紹介しました(価格はまだ未定) 。Gitub Private Instancesでは、BYOK(Bring Your Own Key) /保存データの暗号化/データ保存場所の選択、IdP連携/プライベート接続のサポートなどが可能だということです。
GitHub Private Instancesでのアカウントは独立したものになるため、GitHub Enterprise Serverと同じように想定できると説明がありました。GitHub ActionsやGitHub Packagesとの連携も、GitHub Enterprise Serverと同じイメージだということです。つまりサードパーティのものを使いたい場合にはGitHub Connectを有効化する必要があるため、それを許容するかどうか、インスタンスのポリシーによると述べていました。
なお、既存のGitHub Enterprise ServerからGitHub Private Instancesへの移行ツールは、GitHub Private Instancesのリリースと並行して開発中とのことです。
「sudo apt update my-society; シビックテックでOSSを体験しよう!」
ゲストセッションとして、一般社団法人コード・フォー・ジャパン 代表理事の関治之氏が「sudo apt update my-society; シビックテックでOSSを体験しよう! 」というタイトルで発表しました。
関氏はシビックテックのコミュニティ「Code for Japan 」で活動しています。「 Code For xx」は世界26か国にあり、国内でも約80地域でコミュニティがあります。関氏は東日本大震災がきっかけで関わるようになりました。
今年は新型コロナウイルスが猛威を振るい、生活に大きな影響を与えています。そのようななか関氏は「心がザワザワしているときは、手を動かそうと思う。( 中略)コードを書こう! 」と先日Twiterで持論を述べたことに触れつつ、コミュニティでは様々なものを作ってきたことを紹介しました。また、Slackのコミュニティ はそれまで500人程度でしたが、3,000人を超えて集まるようになったそうです。
そうして作られたものの一つに、東京都の新型コロナウイルス感染症対策サイト があります。このサイトはGitHubを通してオープンソースで作られ、世界中から貢献があったと取り上げました。すでに累計5,000万ページビュー程度のアクセスがあるそうです。そしてこのリポジトリがフォークされ、各県の新型コロナウイルス感染症対策サイトに波及したことも紹介しました。また、オープンソースで開発したことで、GitHub以外でもいろいろな知恵が共有さたり、興味深い記事が公開されたことを挙げていました。
こういう動きの中で10代、20代前半が特に活躍中であることに触れ、「 現在開催中のCivictech Challenge Cup [U-22] も学生主体で、協賛もお願いしに行ってたりする。インターンの代わりになりうる」と述べていました。
次に、このようなオープンソース活動に参加するためのアドバイスを話しました。
個人に向けたアドバイスとして、「 1. まずはコミュニティに入ろう」「 2. 興味のあるプロジェクトを探そう」「 3. 気楽に!」の3つの要点を挙げました。Code for Japanでは、1.については技術者以外にも様々な人がいるためコミュニティに参加しやすいこと、住んでいる地域や地元のコミュニティで月1などで定例会しているので顔を出してみると良いことを挙げていました。2.については課題持ち込み型のハッカソンSocial Hack Day があり、そこに参加して興味のある物事を見つけるのも良いと挙げ、3.については「Issueを作ってバグ報告するだけでも良い。ドキュメント類の更新、助かる! コードで貢献できたらそれは最高(マサカリは飛んでこない) 」と述べていました。またIssueで「help wanted」「 good first issue」といったタグに関わるのも、取っ掛かりとしてお勧めとのことです。
政府や自治体向けのアドバイスとして、「 1. 他の国の事例を参考にすること」「 2. システム調達要件にオープンソースでの公開を入れること」「 3. データフォーマットもを公開すること」の3つの要点を挙げました。「 オープンソースでの公開が前提だと、可読性の高いソースコードが提供されやすい。そのため技術力のあるベンダーを選定できやすい。他の自治体に広がれば、より品質が向上する可能性がある。また不必要なベンダーロックインを排除できる」と述べ、ソースコードを公開するのが難しい場合においてもデータフォーマットだけでも公開することが重要だと指摘しました。そういったオープンソースへの投資が、知的資本の蓄積につながる と話しました。
企業向けのアドバイスとして、「 共通善のもとに、良いビジネスを組み立てるために『囲い込み』ではなく、『 共創』を重視すること」を挙げました。具体的には「何のために?」というストーリーを大切にすることなどを紹介しました。また、リポジトリを外部に公開することで品質の向上につながなること、OSSライセンスであれば著作権譲渡した後でもそのライセンス内で自由に使えることを紹介しました。
最後に関氏は、「 技術を、社会課題の解決のために使おう。子供の世代により良い未来を残すために、みんなで活動していければと思います」と述べていました。なお、Code For Japanは年一回大きなイベントを催しており、今年は「Code For Japan Summit 2020」が10月16〜18日で開催予定です。
セッションでは取り上げられませんでしたが、GitHubもOpen Source Guideにおいて「オープンソースにコントリビュートする方法 」を掲載しています。
パネルディスカッション「“エンジニアのリモートワーク”」
コニカミノルタ IoTサービスPF開発統括部 戦略推進部 マネージャーの五寳匡郎氏と、GMOペパボ 技術部 執行役員 VP of Engineeringの柴田博志氏が、自社で行っているリモートワークの模様を紹介しました。進行はGitHub マーケティングの長島理恵氏が行いました。諸事情でこのセッションの話をあまり聞けなかったため、簡単に触れておく程度に留めます。
最初に、長島氏がGitHubの特に北米でのユーザーの行動を分析することで、今年に入って新型コロナウイルスの影響がどの程度出ていたのかを紹介しました。それによると、「 開発活動は昨年とほぼ同じか、増加したこと」「 企業はリモートワーク環境に短期間で対応したこと」「 リモートワークによって労働時間が増加したこと」が見て取れることを説明しました。詳しくはGitHubブログ に掲載されています。
その後、長島氏がリモートワークに関するテーマを挙げて、五寳氏と柴田氏に話を伺う形で進行しました。各社のリモートワークの紹介、オンラインでの会議や飲み会、今後のリモートワークの継続性などを取り上げました。
興味深かった点として、五寳氏が「特に、今年は新型コロナウイルスの影響で、新入社員は会社にほとんど出社できずに、直接話ながら物事を覚えることができません。そこで、新入社員向けにオンラインミーティングやオンラインでの飲み会などを丁寧に開くようにしている」と話していたことでした。これに対して長島氏は、ウェブカメラをオンにすることの重要性について指摘していました。
リモートワークの継続性について、五寳氏は「新しい働き方を継続的に。新型コロナウイルスが落ちついたからといって、全くなしということにはしません。パフォーマンスや働き方を考えていきたいと思います」と、柴田氏は「従来の形に戻すことはないだろうと、会社として舵を切りました。いまのところ三拠点ありますが、居住地は取っ払ってしまったので、どこででも働けるようになりました」と述べていました。
なお、コニカミノルタのリモートワークについては日経クロステックで記事 になっており、GMOペパボのリモートワークについては、柴田氏自身が自社のブログ で取り上げています。また、発売中のSoftware Design 2020年8月号 の記事に「盤石なリモートワーク環境をいかにして築くか? 事例から考える在宅勤務のネットワークセキュリティ」( 柴田氏も共著)が、今月24日発売のWEB+DB PRESS Vol.118 の特集1に「開発環境の整備、効果的な議論、評価制度 実践リモートワーク オフィスに集まれない課題の解消方法」が掲載されています。ぜひご覧ください。