goリンクの歴史

go linksはどこでどのようにして生まれたのでしょうか?私たちが今日愛用している便利な内部短縮リンクの歴史はどのようなものでしょうか?

当然のことかもしれませんが、goリンクの起源はGoogleにあり、特に 2005 年にEric DeFriezとBenjamin Staffinが一緒に働いていた SysOpsチームに起源があります。goリンクの必要性は、Google社員がチームに短縮URLを手動で作成するよう絶えず求めていたことから生まれました。仕事を軽減するために、Google社員が自分でgoリンクを設定できるシステムを作成しました。DNSの変更やコードレビューは必要ありません。私たちは彼らにインタビューして、goリンクの歴史に関するQ&Aをさせていただきました。

LinkedInでEric DeFriezを、TwitterGitHubでBenjaminをフォローしてください。

goリンクはGoogleでどのように始まり、進化したのでしょうか?

Benjamin: 私たちがGoogleのSysOpsチームにいたとき、企業ネットワーク上のどこかを指すように、スライドや印刷物で内部的に宣伝したい http://helpdesk のような覚えやすい短縮URLを設定するようによく求められました。これらのセットアップは難しくありませんでしたが、さまざまな可動部分の間にそれぞれ1時間かかり、Googleの成長の速さを考えると、その時間は合計すると膨大に膨れ上がりました。 時には印刷物ですでに参照されているものに対しても短縮URLを作成してほしいというリクエストもあったりと手一杯になっていました。

その作業をやめて、Google社員が自分で短縮リンクを設定できるようにすることをチーム内での昼食中に話し合うようになりました。

2006年の終わり頃、Eric DeFriezは、Google社員が思う存分 go/ のリンクを作成できる最初のgoリンクのアプリケーションを作成しました。

最初のgoリンクのアプリを構築

Eric: 最初のgoリンクのシステムは、私がチームメンバーとしてチケット対応に参加していた、いつも通りのある週に作成されました。そこでは、短縮URLからユーザー名の変更、NFS クォータの増加に至るまで、さまざまなトピックに関するユーザーサポートにおけるリクエストを処理していました。2006年秋のある午後、私は本来この種の忌まわしいチケットの処理に時間を費やすのではなく、人々がこれらのショートカットを自分で作成して管理できる、以前話していたgoリンクのシステムを作成することにしました。システムの作成は非常に早く、基本的なシステムはその日のうちに動作するようになりました。私は標準設計ドキュメントの作成やチームのリーダーとの議論を省略しました。代わりに、ある種の不正行為に走り、エンジニアに与えられた裁量の「20%の時間」を利用しました(数年前に別のエンジニアがGmailを構想して作成していた方法のように)。私は、チームが実行したマネージドホスティング環境を使用してアプリケーションを作成しました。バックエンドデータベースにはPythonとmysqlを使用したApache上に構築されました。

ロールアウトとアップデート

Eric: 私たちは、少なくとも十数個の短縮URLのチケットの処理に対して、週に10時間以上節約できると期待しており、非常に価値のあるものと考えていました。しかし、これは予想以上の結果となりました。システムがソフトローンチされてから数週間以内に、社内全体の「その他」メーリングリストに拡散され、リンク数とQPSが24時間以内に100倍に急増しました。立ち上げから数か月以内に、20,000のショートカットが作成され、Google内で1日あたり10,000のリダイレクトを処理するようになりました。

初期バージョンでは、新しいショートカットの作成とログ記録のみが可能でしたが、すぐにショートカットの更新と削除、使用状況分析の表示、二次所有者、管理インターフェイスの機能を追加して、誰かが退職したときにヘルプデスクが所有権を譲渡できるようにしました。時間をかけて、別のチームメイトであるChris Heiserが、需要に対応できるように(Apacheやmysqlではなく)Bigtableやborgなどの標準的なGoogleインフラストラクチャ上で動作するようにシステムを書き直しました。その後、内部ネットワーク/VPN上にないときでも動作するように再度書き直されました。

また、リリース直後に使用量が爆発的に増加することが何度かあり、インフラストラクチャを迅速にスケールアップする必要がありました。さらに、エンジニアはしばしば遊び半分で、意図的にリダイレクトループを作成したり、誤解を招くURLタイトル(この時代には多くのエイプリルフールの冗談や偽の「go/holiday-gift」リックロール)を作成したり、URL/HTMLエスケープの問題がよく発見されていました。このシステムは思いつきで書かれたもので、通常の設計文書とレビュープロセスを行わずに開発されました。よって、ローンチからわずか1ヶ月で数人のチームリーダーから、設計文書を正確に作成してレビューしてもらうように依頼されました。

それゆえ、goリンクはそんなに早く浸透したのですか?私が2010年にGoogleに入社した頃には、goリンクは当たり前の存在になっていました。

Benjamin: はい、記憶している中では、非常にすぐに浸透していきました。元の状態のホスト名を利用する方法ではなく、goリンクを使用して短縮リンクを作成するよう奨励したため、チームの時間を大幅に節約することにつながりました。goリンクの作成は簡単でセルフサービスでの利用が可能となりました。

対立意見

goリンクの展開に対してGoogleで反対はありましたか?

Benjamin: あまり多くはありませんし、ポリシーにも影響しません。例えば、 go/yahoo がYahooを指していないことについては若干の懸念がありましたが、概して人々はそれが本当の問題を解決していることを認識し、協力的でした。

Eric: ごく初期の頃、人々がまだ短縮URLを要求していたとき、http://example の代わりに http://go/example を使用するように人々をリダイレクトしていましたが、新しいURLへのプッシュバックが発生することがありました。しかし、使用状況分析などの機能を go/ に追加し、すべてのショートカットに go/ を使用することが事実上の標準になったため、この状況はすぐになくなっていきました。

これまでに勤務していた他の会社でもgoリンクをセットアップしましたか?

Benjamin: 私がそうしたことは一度もありませんが、Google以降、勤務してきた会社でこうしたことが起こることを見てきました。たとえば、Fitbitでは、誰かがハックウィーク中に簡単な似たようなアプリを作成し、それが人気を博しました。

Eric: goリンクについて口外することは決して許されていませんでしたが、他のGoogle従業員が退職後に最終的にその噂を広め、他の企業、オープンソースプロジェクト、大学などでリンクがすぐに使用されていきました。

goリンクのアプリの仕事はあなたの中心業務の一部でしたか、それとも20%の時間を費やしたプロジェクトでしたか?

Eric: 私はチームのOKRなどに正式に割り当てられた仕事ではありませんでした。最初の数四半期は、自主的に進められたことを考えると「20%の時間」に近かったのですが、立ち上げから数週間以内にリーダーシップが認識し、実際の問題を解決し、チームの作業時間を短縮したことを考えると、強力なサポートを得られました。

Google Appsラボの「Short Links」は、Google内で使用されているgoリンクとどのように関連していましたか?

Benjamin, Eric: そのアプリは、Google Appsと連携して一般公開されている最初のApp Engineアプリの一つとして構築されました。これは主にApp Engineインフラストラクチャのデモンストレーションとして作成されたもので、当時は実際には内部で使用されていませんでした。

あなたが先駆的に開発したこのアイデアに基づいて企業が設立されるのを見るのはどのような感じですか?

Eric: とてもクールだと思うよ!私にとって、これは、(1) 一見些細で「解決された」アイデアにも実際に価値があること、(2) 良いアイデアを持つことは、何かを生み出すほんの始まりにすぎないことを思い出させてくれます。より難しい(そしてより重要な)部分は、実際に実行することです。

Trottoのgoリンクで
全てが次の次元へ

デモを予約無料トライアル