Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
約6年前投稿

GitHubのRails離れと、迫りくるMicrosoft

Microsoftによる買収が発表されたGitHubは、これまでどう進化し、今度どうなっていくのか?開発者プラットフォームとしてのGitHubが目指す未来を、同社のSam Lambert氏がプログラミング言語、データセンター戦略、AIといった様々な観点から語る。

原文
GitHub goes off the Rails as Microsoft closes in (English)
原文著者
Thomas Claburn (The Register)
原文公開日
2018-08-16
翻訳依頼者
D98ee74ffe0fafbdc83b23907dda3665
翻訳者
Bdf3a1f1b7aaebc495ce6d7bfd063fe2 mkasasagi
翻訳レビュアー
D98ee74ffe0fafbdc83b23907dda3665 doublemarket B5aa4f809000b9147289650532e83932 taka-h
原著者への翻訳報告
2273日前 メールで報告済み 2263日前 原著者承諾済み 編集


プラットフォーム改造で変わる「Ruby専門店」。今後はGo、Java、Kubernetesへ。

GitHub社は、ソーシャルコードのホスティングサービスという同社のビジネスが、ひとつのWebサイトからひとつのプラットフォームとしてどのような進化を遂げているかを解説するため、数人の記者たちを同社サンフランシスコ本社に招待した。

このイベントのホストはSam Lambert氏。彼の"Head of Platform"という肩書は今後の展望の揺るぎなさを物語っている。

2008年に創設されたGitHubは、2014年のデベロッパープログラム提供開始を経て、真の開発者プラットフォームとなった。いわゆる関係性APIであるこのプログラムにより、開発者たちはGitHubと統合できるアプリケーションを構築できるようになったのだ。こうして、現在およそ2,800万人のユーザーを抱えるGitHubは、コードのデプロイ自動化には欠かせない存在となった。

昨年デビューしたGitHub Marketplaceは、開発者のワークフローをよりよくするためのサードパーティツールを提供している。GitHubを拡張するようなソフトウェアを販売している人たちにとって、GitHubをぐっと身近なものにしたのだ。そして今年、Microsoft社のMicrosoft App CenterとGoogle社のGoogle Container BuilderがMarketplaceのアプリケーションとして登場。これは、GitHubがスタートアップにとっての商店というだけでなく、もはや大手テック企業のコード・デプロイ・マシーンの一端を担っているということを示唆している。

「私たちは主要パートナーたちに、ユーザーにワークフローを届ける手段として私たちの手法を使ってみるよう、より一層働きかけています」と話すLambert氏は、10月開催予定のGitHub Universeでは開発者プラットフォームとしての同社の価値を高める重大な発表がなされる可能性をちらつかせた。

同時に、GitHubはソーシャル・ネットワークではあるものの、FacebookやTwitterといった消費者中心のSNSにつきまとう情報改ざんや盗作といった問題とはほとんど無縁だ。FacebookやTwitterは中国本土では利用禁止されているという事実にも違いはみてとれる。以前中国政府ともめたことはあるにせよ、GitHubは中国ではアクセス可能だ。それは、中国人開発者たちが同ツールに頼りきっているからである。

Lambert氏曰く、同社は中国にはインフラを所有しておらず、中国国民のデータをローカルで保存する必要性も問われていないという。それに対し「それは問題ではありません」と話す同氏は、オープンソース・ソフトウェアの魅力のおかげで中国のユーザー、企業、政府とは良好な関係を築けていることを主張した。

「多くの企業のデジタル経済にとってGitHubはとても重要な存在ですから、だいたいどこへ行ってもGitHubは良く扱っていただいています」と同氏は語る。

ソフトウェア専門のビジネスにおけるGitHubの人気と重要性を見れば、今年度末に向けてMicrosoftが同社を75億ドルで買収するという話が進められているのも説明がつく。

壊すのは難しい

Lambert氏によると、GitHubのプラットフォームチームは現時点で155人おり、目下拡大中という。そしてグループが主にフォーカスしているのは、GitHubを分解していくことだ。

昨年始まったアーキテクチャレベルの改革も現在は三分の一ほど進んでいる。同社はRuby on Railsから離れ、もっと異種混合で使い捨てのきくインフラへとシフトしていっている。GitHubを「Ruby専門店」と称する同氏によると、GitHubにRubyの居場所はまだあるが、GoやJava、さらにはHaskellの方が多くデプロイされているそうだ。GitHubが目指すのは、その内部にある能力を開発者や企業にとってアクセス可能にすることだという。

「モノリスは崩れ始め、私たちはいろいろなものを、サービスという形に抽象化し始めています。土台となるプラットフォームにはKubernetesを選びました」                       

だからといって、Kubernetesによって障害が減っているというわけではないではないらしい。「サーバーを起動するという点で、(Kubernetesは)別段信頼性がある方法ではありません。相対的にインターフェースも良く、サービスを実行するのにより統合されたやり方なんです。私たちのスタックをよりマルチテナントにしてくれました。社内のユーザーたちの開発環境もさらに合理化できるようになりました」

GitHub社内では、Kubernetesを抽象化し管理しやすくするために、Modaという自社製のソフトウェアを使用しているという。これはまだオープンソースのプロジェクトではないが、Kubernetes node healerや、最近同社がリリースしたGLB Directorというデーターセンター用のロードバランサー向けに作られたKubernetes connectorといった他のアプリケーションとあわせて、いずれオープンソース化されるだろうということだ。

「Modaは本当に素晴らしいんですよ」とLambert氏は話す。「Hubotと呼ばれるチャットボットに『新しいアプリケーションがほしい』と話しかけたら、Modaがリポジトリを自動実行して、Kubernetesのコンフィグを全部入れてくれる。こうしてあっという間に開発が始められるんです」

GitHubはクラウドサービスではあるが、クラウドサービスのヘビーユーザーというわけではない。必要なときにキャパシティを増やせるように、そして本番環境以外の処理用にパブリッククラウドを使うことがあるが、ほとんどの処理を自社のデータセンターで管理している。

「ネットワーキング専用のコロケーションスペースにインフラを置き、データセンターは大都市の郊外に設置するという戦略をとっています。そして自転車のスポークのように配置されたマシンだらけのデータセンターに、ダークファイバーを接続させるんです」

このやり方だと、大都市エリアにデータセンターを構える場合と比べて、ネットワークレイテンシーは1〜2msほど増えるが、コストは70%近く削減できると同氏は説明する。同氏曰く、GitHubのワークロードはI/Oとストレージインテンシブなことが多いため、自社のデータセンターを使ったほうがクラウドを使うより10倍ほど安くなるという。

同氏は、GitHubがMicrosoft Azureを採用するのはまだ時期尚早であり、さらに特注品だらけな同社の運用を考えるとその可能性はさらに低いだろうと付け加えた。「私たちはいつだって、最先端なんです」という同氏が示唆するのは、カーネルの修正やデータセンター向けのハードウェア・ラックをカスタムデザインすることに特化しているチームだ。

クラウドサービスについて「そういったものに自分たちを閉じ込めないようにしています」と同氏は話す。「自分たちがやっていることすべてに対し、自分たち独自のやり方でその本質に突っ込んでいくほうがいいんです」

DYIサーバーは?いつかそのうち

GitHubは独自のサーバーをデザインするまでにはいたっていない。Lambert氏としては、それはFacebookやGoogleのように何百ものサーバーを備える企業の領域だという。

「それを実現可能にしようと思ったらハイパースケールにならないと」と同氏は言う。それでもGitHubは、スイッチやケーブルもカスタマイズされた独自のサーバー設定をもっており、それはDellのようなサプライヤに特注されるとものの数時間でデータセンターに設置される。

それでも、AIのような作業はクラウドで実行するのが得策だと同氏は認識している。それは、GPUやTPUといったハードウェアはあまりにも速いスピードで変化しているからだ。「私たちが大量購入し始める前に、GPUのテクノロジーをとりまく状況がもう少し落ち着いてくれるといいのですが」と同氏は言う。

また、GitHubはVPoPs(バーチャル・ポイント・オブ・プレゼンス)を介してトラフィックをルーティングするのにもクラウドを使っている。

「実際私たちは、VPoPsを構築するのにパブリック・クラウドのインフラを使おうとしています」と同氏は説明する。

テレコミュニケーションの大企業が拠点をもつ3つの欧州都市でGitHubはそれを行っている。ネットワークのレスポンスタイムについて集められたデータをもとに同社が気づいたのは、例えばインドに向けて配信するのに、インドにPoPを置くよりもヨーロッパから配信した方がより快適な通信ができるということだ。

GitHubのデータセンター戦略は、Lambert氏曰く過去最大だったというDDos攻撃を切り抜けることにも役立った。2月28日、同社のサイトは最大1.35TbpsのDDoS攻撃を受けた。約3分間の間ユーザーの25%程がサイトにアクセスできなくなったというのは、ずいぶん小さな被害に収まったといえるだろう。

そうしたGitHubの回復力は、同社がハッカーたちに挑戦されてきた歴史に起因すると同氏は考える。「私たちのエンジニアが飛び起きるほど大きなことが起こるのは極めてレアです」と話しながら、同氏は当の事件が誰の責任か目星はついているが、調査中のためそれ以上は話せないと付け加えた。

AI?オーマイガー!BFF!

AIに関しては、それが世界を変えるという世間の盛り上がりをLambert氏も信じているが、それにはまだ数十年かかると見ている。GitHubにとってのベネフィットがそう遠くない未来に訪れるだろうと同氏が考えるのは、コードは「人類が問題解決をするスキーム」だからだそうだ。GitHubのデータセットは、機械学習とAIアプリケーションに非常に適合させやすいのだという。

今年末GitHubは、同社がどのようにAIの可能性を探っているのかについて公表し始める予定だとLambert氏は話す。例えば同社の社内では自然言語によるコード検索が使われている。これにより開発者は、自然言語を使ってコードベースを検索することができる。「ただ『データベースとつなげるコードを見せて』とタイプすれば、そのコードを表示してくれるのです」とLambert氏は言う。

さらに同社には、コードを書いてくれるボットのプロトタイプもある。もしそのソフトウェアが狙い通り動いたら、GitHubの既存のセキュリティ脆弱性警告は、コードをこちらが直すよう通知するのではなく、悪いコードを修正するプルリクエストになるかもしれないというのだ。GitHubはまた、フレンドリーで、支えてくれるようなコミュニティメンバーを見つけるための感情分析機能についてもテストしている。

Lambert氏は「エンジニアは時間の50%を周辺業務に費やしていることが研究でわかっています」と、セットアップやコンフィギュレーション、メンテナンスなどが新しいコードを書くことの妨げになっていることについて述べた。「そのような労苦や負荷を取り除きたいのです」

同氏が提唱しているのは、車輪の再発明ではなくもっと創造する機会を増やすということだ。これからのソフトウェア開発が向かっていくであろう方向として、同氏はGlitchやZeitといった企業を引き合いに出した。

「Glitchは本当に素晴らしいですね。人々が何を望んでいるかについて教えてくれるほどすごい実装はないですよ。彼らは、ちょっとそこへ立ち寄って何かをしたらすぐフィードバックが返ってくるループのような、インタラクティブかつ簡単な方法を望んでいます。その感覚を開発者たちに取り返させてあげたい、私たちはそう思っています」

シリコンバレーで言われてきたように、コードが書ける能力は強力であり、ソフトウェア開発をより多くの人にとって身近なものにするニーズは増えていると、Lambert氏は主張する。

「かつては、超技術的で、なんでもかんでも情報だらけにすることが誇らしいと思われてきました」と同氏は言う。「でも今の時代、それはもうクールなことではありません。ユーザーに届けること、それがクールなんです」®

次の記事
「20年以上プログラミングしてきた人しか知らないこととは?」に対するJohn Byrd氏の回答
前の記事
MySQLデータベースパフォーマンスのためのLinux OSチューニング

Feed small 記事フィード

新着記事Twitterアカウント