Go は 2007 年 9 月に、Robert Griesemer、Ken Thompson、そして私が、私たちや Google の同僚が日常業務で直面していたエンジニアリングの課題に対処するための新しい言語について議論を始めたときに始まりました。
2009 年 11 月に Go を一般公開した当初、言語が広く採用されるか、将来の言語に影響を与える可能性があるかどうかはわかりませんでした。2020 年を振り返ってみると、Go は両方の点で成功しています。Google の内外で広く使用されており、ネットワークの並行処理とソフトウェアエンジニアリングに対するアプローチは、他の言語とそのツールに顕著な影響を与えています。
Go は、私たちが予想していたよりもはるかに広範な影響力を持つことがわかりました。業界での成長は驚異的であり、Google の多くのプロジェクトを支えてきました。
次の事例は、Go が Google で使用されている多くの方法のほんの一例です。
Google のコアデータソリューションチームが Go を使用する方法
Google の使命は、「世界中の情報を整理し、誰でもアクセスして使えるようにすること」です。その情報を整理する責任を負うチームの 1 つが、Google のコアデータソリューションチームです。このチームは、とりわけ、世界中の Web ページをインデックス化するサービスを維持しています。これらの Web インデックスサービスは、検索結果を最新の状態に保ち包括的にすることで、Google 検索などの製品をサポートするのに役立ち、Go で記述されています。
Chrome コンテンツ最適化サービスは Go で実行
Chrome という製品を思い浮かべるとき、おそらくユーザーがインストールしたブラウザのみを考えるでしょう。しかし、舞台裏では、Chrome には広範囲なバックエンドがあります。その中でも、Chrome 最適化ガイドサービスがあります。このサービスは、ユーザーにとって重要なパスで動作する Chrome のユーザーエクスペリエンス戦略の重要な基盤を形成しており、Go で実装されています。
Firebase Hosting チームが Go でどのように拡張したか
Firebase Hosting チームは、Google Cloud の顧客向けに静的な Web ホスティングサービスを提供しています。グローバルコンテンツ配信ネットワークの背後にある静的な Web ホストを提供し、ユーザーが使いやすいツールを提供しています。また、チームはサイトファイルのアップロードからドメインの登録、使用状況の追跡まで、さまざまな機能を開発しています。
Google 本番環境の稼働: Google のサイト信頼性エンジニアリングチームが Go を使用する方法
Google は、ごく少数の非常に大規模なサービスを実行しています。これらのサービスは、ストレージシステム、ロードバランサー、ネットワーク、ログ記録、監視など、必要なものすべてをカバーするグローバルインフラストラクチャによって支えられています。それにもかかわらず、それは静的なシステムではありません。そうであることはできません。アーキテクチャは進化し、新しい製品とアイデアが作成され、新しいバージョンをロールアウトし、構成をプッシュし、データベーススキーマを更新する必要があります。最終的に、システムへの変更を 1 秒間に数十回デプロイすることになります。
Google について
Google は、世界中の情報を整理し、誰でもアクセスして使えるようにすることを使命とするテクノロジー企業です。
Go は、マルチコアネットワークマシンと大規模なコードベースの時代にプログラミングの生産性を向上させるために、2007 年に Google で作成されました。2009 年の一般発表から 10 年以上経った今日、Google 内での Go の使用は大幅に増加しています。