分析GitHub は、ソーシャル コード ホスティング ビジネスが Web サイトからプラットフォームへとどのように進化しているかを説明するため、数名のジャーナリストをサンフランシスコ本社に招待しました。
このイベントはサム・ランバート氏が主催したが、彼の「プラットフォーム責任者」という肩書きから、事態がどうなるかについての疑いの余地はない。
2008年に設立されたGitHubは、2014年に開発者プログラムを導入したことでプラットフォームへと成長しました。このプログラム、つまり関連APIを利用することで、開発者はGitHubと連携するアプリケーションを構築できます。これにより、現在約2,800万人のユーザーを抱えるGitHubは、自動コードデプロイの要となっています。
開発者のワークフローを強化するサードパーティ製ツールを提供するGitHub Marketplaceが昨年デビューしたことで、GitHubの運用を補助するソフトウェアを販売する企業にとって、このプラットフォームはより使いやすくなりました。そして今年は、Microsoft App CenterとGoogle Container BuilderがMarketplaceアプリとして登場し、GitHubがスタートアップ企業の単なる店舗ではなく、大手テクノロジー企業のコード展開システムの歯車となっていることを示しています。
「主要パートナーとさらに緊密に連携し、当社のプリミティブを使ってユーザーにワークフローを提供してもらえるよう取り組んでいます」とランバート氏は述べ、開発者向けプラットフォームとしてのGitHubの価値を高める重要な発表を10月のGitHub Universeで予告した。
同時に、GitHubはソーシャルネットワークであり、FacebookやTwitterのような消費者向けソーシャルネットワークのようなコンテンツモデレーションやデータ収集に関する論争をほぼ回避してきました。FacebookとTwitterが中国本土で禁止されているという事実からも、その違いが見て取れます。GitHubは過去に中国当局との衝突を経験してきましたが、中国の開発者がGitHubに依存しているため、依然としてアクセス可能です。
ランバート氏は、同社は中国にインフラを保有しておらず、中国のユーザーデータを現地で保管するよう求められたことはないと述べた。「問題ではない」と述べ、オープンソースソフトウェアの魅力のおかげで、同社は中国のユーザー、企業、そして政府と良好な関係を築いていると主張した。
「GitHubは、ほとんどの企業のデジタル経済にとって非常に重要な存在であるため、ほぼあらゆるところから素晴らしい扱いを受けている」と同氏は語った。
ソフトウェア中心のビジネスにおけるその人気と重要性こそが、マイクロソフトが GitHub を 75 億ドルで買収する手続きを進めている理由であり、この取引は年末までに完了すると予想されている理由である。
別れるのは難しい
ランバート氏によると、GitHubのプラットフォームグループは現在約155人で、成長を続けているという。そして、同グループの焦点は主にGitHubの分割にあるという。
GitHubは、昨年開始したアーキテクチャ変更の約3分の1を終えたところです。同社はRuby on Railsから、より異種混合で構成可能なインフラストラクチャへと移行しています。GitHubにはRubyの活用余地がまだあります。Lambert氏はGitHubをRubyショップと呼びましたが、サービスにはGo、Java、さらにはHaskellも導入されていると述べています。目標は、GitHubの内部機能をインテグレーターやパートナーが利用できるようにすることだとLambert氏は説明しました。
「モノリスは崩壊し始めており、物事をサービスへと抽象化し始めています」とランバート氏は述べた。「それを動かすプラットフォームとしてKubernetesを選択しました。」
ランバート氏は、Kubernetesによってシステム停止の減少は見られなかったと述べた。「Kubernetesはサーバー運用の信頼性が向上したわけではありません」と彼は述べた。「Kubernetesはインターフェースが優れており、サービス運用をより統合的に行える手段です。Kubernetesによってスタック全体でマルチテナント性が向上しました。社内のユーザーはより合理化された開発環境を利用できるようになりました。」
GitHubは社内で、Kubernetesを抽象化し管理を容易にするためにModaという自社開発ソフトウェアを使用しています。これはまだオープンソースプロジェクトではありませんが、Lambert氏によると、Kubernetesノードヒーラーや、GitHubが最近リリースしたデータセンターロードバランサーGLB Director用のKubernetesコネクタといった他のアプリケーションと同様に、オープンソースプロジェクトになる予定です。
「Modaは本当に素晴らしいです」とランバート氏は説明する。「チャットボット、つまりHubotに『新しいアプリケーションが欲しい』と言えば、Modaがリポジトリをブートストラップし、Kubernetesの設定をすべてそこに配置してくれます。あとはあっという間に開発を始められるんです。」
GitHubはクラウドサービスですが、クラウドサービスの大規模なユーザーではありません。必要に応じてバーストキャパシティを確保したり、一部の非本番環境ワークロードについてはパブリッククラウドに依存していますが、大部分の負荷は自社のデータセンターで処理しています。
「キャリアホテル内にネットワーク処理のみを担当するインフラを敷設することで、大都市圏外にデータセンターを建設するという戦略を採用しました」とランバート氏は述べた。「そして、膨大な数のマシンを収容するスポーク型データセンターまで、独自のダークファイバーを敷設しています。」
この契約は、大都市圏のデータセンター内でホスティングするよりも約70%安価で、レイテンシコストは約1~2ミリ秒だと彼は説明した。GitHubの自社データセンターを利用すると、ワークロードはI/Oとストレージを集中的に使用する傾向があり、クラウドには適さないため、約10倍も安くなると彼は述べた。
ランバート氏は、Microsoft Azureの導入を検討するのは時期尚早だと述べ、同社の業務は特注品であるため、その可能性は低いと付け加えた。「我々の業務はすべて最先端の技術です」と述べ、カーネルの修正やデータセンター向けのカスタムハードウェアラックの設計を専門とするチームを挙げた。
「私たちは、そうした囲い込みに自らを縛り付けるような契約はしません」と彼はクラウドサービスについて語った。「私たちは、自分たちが運営するあらゆるサービスの核心に、自分たちのやり方で関わることを望んでいます。」
DIYサーバー?いつかは
GitHubは自社サーバーを設計するところまでは行っていない。ランバート氏は、それはFacebookやGoogleのように数百万台のサーバーを保有する企業の領域だと考えている。
「現実的にはハイパースケールでなければなりません」と彼は言った。しかし、GitHubには独自のサーバーラック構成があり、Dellなどのサプライヤーから注文し、スイッチとケーブルをカスタマイズして、数時間でデータセンターに導入できる。
それでも、GPUやTPUといったハードウェアが急速に進化しているため、AIのような一部のワークロードはクラウドで実行するのが理にかなっていると彼は認めた。「大規模な投資を始める前に、GPU技術の動向が少し落ち着くことを期待しています」と彼は述べた。
GitHub はクラウドを使用して、VPoP (仮想プレゼンス ポイント) 経由でトラフィックをルーティングします。
「私たちは実際にパブリッククラウドのネットワークインフラストラクチャを使用して仮想 PoP を立ち上げる予定です」と彼は説明した。
GitHubは、大手通信事業者が拠点を置くヨーロッパの主要3都市でこの取り組みを進めています。ネットワーク応答時間に関するデータを収集した結果、例えばインドにPoPを設置するよりも、ヨーロッパからインドへのサービス提供の方が優れていることが判明しました。
GitHubのデータセンター戦略は、ランバート氏が史上最大規模と称するDDoS攻撃を乗り切ることにも役立ちました。2月28日、同サイトは最大1.35Tbpsのオンライン攻撃を受けました。その結果は軽微でしたが、約25%のユーザーが約3分間サイトにアクセスできないという状況に陥りました。
ランバート氏は、GitHubの堅牢性はハッカーによるテストの歴史にあると述べた。「当社のエンジニアを驚かせるほどの大きな問題は極めて稀です」と述べ、誰が責任を負っているのかある程度分かっているものの、調査が進行中のためこれ以上のコメントはできないと付け加えた。
AI?なんてことだ!親友だ!
AIに関して、ランバート氏は、AIが世界を変えるという誇大宣伝は信じているものの、実現には数十年かかると述べている。GitHubに関しては、コードは彼の言葉を借りれば「人間が問題を解決する方法のスキーム」であるため、その恩恵はより早く現れると考えている。GitHubのデータセットは、機械学習やAIアプリケーションに非常に容易に適応できると彼は述べた。
GitHubは今年後半にAIの活用方法について発表を始める予定だと彼は述べた。例えば、GitHubは社内で自然言語コード検索を運用しているという。開発者は自然言語を使ってコードベースを検索できる。「『データベースに接続するコードを表示』と入力するだけで、実際にデータベースに接続するコードが返されます」と彼は述べた。
同社は、コードを自動生成するボットのプロトタイプも開発しています。このソフトウェアが提案通りに動作すれば、GitHubの現在のセキュリティ脆弱性警告は、欠陥を自分で修正するための通知ではなく、不良コードを修正するためのプルリクエストに変わる可能性があります。クラウドコードリポジトリでは、親切で友好的なコミュニティメンバーを特定するための感情分析もテストされています。
GitsクラブのGitHubコードタブに記録破りの1.35Tbps DDoS攻撃
続きを読む
「調査によると、ソフトウェア開発者は時間の50%を環境関連の作業に費やしていることが分かっています」と彼は述べ、新しいコードを書く際に妨げになりがちなセットアップ、設定、メンテナンスのことを指して言った。「私たちは、そうした労力と負担の一部を軽減したいと考えています。」
ランバート氏が提唱しているのは、車輪の再発明ではなく、創造の機会を増やすことだ。彼は、ソフトウェア開発の今後の方向性を示す例として、GlitchやZeitといった企業を挙げた。
「Glitchは本当に素晴らしい」と彼は言った。「実装そのものというより、人々が何を求めているのかを教えてくれるのが素晴らしい。人々は、気軽に立ち寄って何かをすれば、すぐにフィードバックが得られる、インタラクティブで簡単な方法を求めている。…私たちは、その感覚を開発者の手に取り戻したいのだ。」
ランバート氏は、シリコンバレー地域の他の人々と同様に、コードを書く能力は力を与えるものであり、より幅広い人々がソフトウェア開発にアクセスできるようにする必要がある、と主張している。
「かつては、超絶技術にこだわり、細部にまでこだわることがプライドだった」と彼は言った。「でも、もうそんなのはクールじゃない。クールなのは、ユーザーに何かを届けることだ」®