GCPの歴史をちょっと詳しく振り返ってみる

# はじめに
## 概要
GCPがApp Engine（GAE）から始まったことはWikipediaにも書いてある程で、割と有名な話だとは思います。

>2008年4月、GoogleはApp Engineの提供を発表した。これは、Googleが管理するデータセンター内でウェブアプリケーションを開発およびホストするプラットフォームであり、Googleの最初のクラウドコンピューティングサービスであった。
>
>[Google Cloud Platform](https://ja.wikipedia.org/wiki/Google_Cloud_Platform)

しかし、より詳しい歴史についてはあまり日本語でまとまっていません。
たまたま調べる機会があり、割と深く知ることができたのでメモがてらまとめていきます。

## この記事でわかること
- GCPやAWS、PaaSの歴史について
- GCPはApp Engineから始まった
- App Engine立ち上げにはPython言語開発者であるグイド・ヴァンロッサムが関わっている
- GCPのサービスリリースの歴史について

# GCP誕生までの歴史
他のクラウドベンダの動きと合わせて誕生までの歴史を振り返ってみます。

## 概要

|年  |できごと  |
|---|---|
|2004  |AWSがスタート。当初の反応は"Why would Amazon do that?"  |
|2006  |Google CEOエリック・シュミットが「クラウドコンピューティング」について講演し「クラウド」がバズワードに  |
|2006  |世界初のPaaSである「Zimki」がリリース  |
|2006  |AWSがEC2とS3を提供開始  |
|2008  |**GCP最古のサービスである「App Engine」が開始**  |
|2010  |Microsoft Azure提供開始  |

## Amazonのクラウドに関する動き
AWSに繋がるアイデアは、実はベンジャミン・ブラックなるひとりの社員から2003年頃提出されたと言います。

>this multibillion-dollar business wasn't the brainchild of CEO Jeff Bezos or even an executive. It came from Benjamin Black, an employee who had been with the company a little over a year.
>
>[How A Regular Employee Helped Put Amazon On The Path To Billions Of Dollars](https://www.businessinsider.com/benjamin-black-and-amazon-web-services-2014-7)

ブラックが提出した論文の「仮想サーバーをサービスとして販売する可能性」を気に入ったベゾスは、クラウドに向けて動き出します。
その後ジェフ・ベゾスの自宅にて、後のAWS（EC2 / S3 / RDS等）に発展するアイデアの話し合い等が行われ、Amazonによるクラウド構想は進んでいきます。
「開発者のためのビルディング・ブロック（EC2やS3）を提供する」という考え方は、ベゾスが読んだ「Creation: Life and How to Make It」とも関連しているとのことです。

>Later in 2003 I was part of a brainstorming session at Jeff Bezos’ house. Jeff, Andy Jassy, Al Vermeulen, me, and a few others (I should have kept better notes) spent a day coming up with a long list of ideas that evolved into EC2, S3, RDS, and so forth. I am fairly sure that this is the session discussed in How AWS Came to Be, but I am not 100% certain.
>
>[15 Years of AWS Blogging!](https://aws.amazon.com/jp/blogs/aws/15-years-of-aws-blogging/)

>Apparently, the idea behind AWS was partly motivated by a book that Jeff Bezos had read, called Creation: Life and How to Make It. The book was written by Steve Grand, a developer of a 1990s video game called Creatures. Creatures was “an artificial life simulation where the user hatches small furry animals and teaches them how to behave, or leaves them to learn on their own”.
>
>[History of PaaS: How Canon almost became a major cloud provider](https://blog.porter.run/history-of-paas-how-canon-almost-became-a-major-cloud-provider/)

そして2004年11月に、AmazonはSimple Queue Service（SQS）をリリースしました（AWSの誕生）。
当初はクラウドに対する理解も浅く、「え？何でAmazonがそんなことやるの？」といった反応だったと言います。

その後2006年、満を辞してEC2とS3を発表し、世界はクラウド中心へと歩みを進めていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287774/8b03b44e-e07c-3333-7c49-8093ce0281e9.png)
[なぜAmazonはマイクロサービスに舵を切ったのか？](https://ascii.jp/elem/000/001/620/1620756/amp/)

>AWS公式の最古のWhat's New「What's New | 2004(英語版)」では「Alexa Web Information Service」が最も古いサービスとして掲載がありますが、AWSインフラストラクチャサービスとして最初にアナウンスされたAWSサービスは「Amazon Simple Queue Service(SQS)」となります。
>
>[歴史・年表でみるAWS全サービス一覧 －アナウンス日、General Availability(GA)、AWSサービス概要のまとめ－](https://tech.nri-net.com/entry/aws_history_and_chronology_all)

>I think the general reaction was “Huh? Why would Amazon do that?”
>
>[The AWS Blog: The First Five Years](https://aws.amazon.com/jp/blogs/aws/aws-blog-the-first-five-years/)

>Earlier today we rolled out Amazon S3, our reliable, highly scalable, low-latency data storage service.
>
>[Amazon S3](https://aws.amazon.com/jp/blogs/aws/amazon_s3/)

>Innovation never takes a break, and neither do I. From the steaming hot beaches of Cabo San Lucas I would like to tell you about the Amazon Elastic Compute Cloud, or Amazon EC2, now open for limited beta testing, with more beta slots to open soon.
>
>[Amazon EC2 Beta](https://aws.amazon.com/jp/blogs/aws/amazon_ec2_beta/)

## PaaS界隈の動き
いわゆるPlatform as a ServiceであるPaaSは、アプリケーションを実行するためのプラットフォームを提供するクラウドの形態です。
Canon Europeが2006年に発表したZimkiこそが世界初のPaaS（世界初のサーバレス）と言われています。

>The first public platform as a service was Zimki, launched by Fotango, a London-based company owned by Canon Europe. It was developed in 2005, had a beta launch in March 2006 and a public launch at EuroOSCON in 2006.
>
>[Platform as a service](https://en.wikipedia.org/wiki/Platform_as_a_service)

>サーバレス的なオンデマンドのモデルが登場したのは、2006年のZimkiと呼ばれるサービスまで遡ることができ、また、サーバレスという単語が最初に使われたであろう例のひとつが、2012年にIron.ioのサービスのIronWorkerと呼ばれる分散コンテナのオンデマンドサービスとのこと。
>
>[サーバレスコンピューティングの基本的な知識を網羅。その定義、歴史、ユースケース、利点と欠点、モデルなどをまとめたホワイトペーパー「CNCF Serverless Whitepaper v1.0」をCNCFが公開](https://www.publickey1.jp/blog/18/cncf_serverless_whitepaper_v10cncf.html)

ZimkiのリリースはEC2より数週間早かったらしく、IaaSよりPaaSの歴史の方が古いというのは、何だか感覚的に面白いですね。

>Amazon EC2 also launched (a few weeks later)
>
>[There and back again ... a personal journey.](https://blog.gardeviance.org/2009/04/there-and-back-again-personal-journey.html)

色々探してみると、Salesforceによる「Force.com」が世界初のPaaSと書かれている記事もありましたが、世界の正史としてはZimkiこそが世界初のPaaSと考えて良いでしょう。

>セールスフォース・ドットコムは2007年秋、世界初のPaaS（プラットフォーム・アズ・ア･サービス）と言われるオンデマンド・プラットフォーム・サービス「Force.com」を発表した。
>
>[PaaS時代の幕開け、「Salesforce」は新サービスの序章だった](https://xtech.nikkei.com/it/article/COLUMN/20080415/299065/)

何にせよ、PaaSは2006、2007年頃に立ち上がり、ZimkiやSalesforceを中心に勃興、2008年のApp Engineリリースまで繋がっていきます。
Heroku社も2007年に創業し、同年10月にHerokuのベータ版をリリースしています。

## Googleのクラウドに関する動き
2006年当時のGoogle社CEO、エリック・シュミットがSearch Engine Strategies Conferenceにて「クラウド・コンピューティング」について言及したのを皮切りに、[クラウドという言葉はWeb2.0に次ぐバズワードとして世の中に広まっていきました](https://www.amazon.co.jp/gp/customer-reviews/R3V8HO8OTR69RF/ref=cm_cr_dp_d_rvw_ttl?ie=UTF8&ASIN=B009AAJF34)。

>クラウド・コンピューティングという言葉は2006年8月9日に開催されたSearch Engine Strategies Conferenceにおいて、Google社CEOのエリック・シュミット氏が言及した。以前から｢ネットの向こう側｣や｢あちら側｣などとも標榜されてきたが、GoogleのCEOが『クラウド･コンピューティング』の概念を語った事によってクラウドの概念が広がった。
>
>[Googleでエリック・シュミットCEOが発明したこと](https://news.yahoo.co.jp/byline/kandatoshiaki/20171228-00079646)

例えばIBM初代社長トーマス・ワトソンによる発言「世界にコンピュータは5つあれば足りる」からも分かるように、以前からクラウド的な概念は世の中に存在しましたが、このスピーチをきっかけに世の中に広く浸透していくことになりました。

スピーチが行われた2006年頃から、クラウドに向けたGoogleの動きは活発化しており、海底ケーブルの買い占めや、分散コンピューティングに関する提携をNASAと行ったりしています。
「Googleが東京市街を走る光ファイバーを買い漁っている」と噂された時期でもあります。

>グーグルの通信投資は、2006年あたりから本格化し、年を追うごとに巨大化している
>
>また、確か2007年だったと思うが、私が東京に出張したときも同じ噂に出くわした。東京市街を走る光ファイバーをグーグルが買い漁っているというのだ
>
>たとえば、2005年9月に同社はNASA（米航空宇宙局）エームズ研究センターと提携している。その目的は「巨大データ管理」や「超巨大分散コンピューティング」などとなっており、2006年には提携強化を発表し、研究項目に「ヒューマンコンピューターインターフェース」などを追加した
>
>そう、これらすべては同社の次世代事業「クラウドコンピューティング」のインフラ（基盤）整備につながる
>
>[クラウド グーグルの次世代戦略で読み解く2015年のIT産業地図](https://www.amazon.co.jp/dp/4844326783) - p107-114

そして2008年、GCP最古のサービスApp Engineがリリースされます。
App Engineの詳細については次の章で詳しくお話いたします。

# GCPの始祖たるApp Engine
## 全ては20%ルールから始まった
App Engineのリリースは、2008年4月のCampfire Oneにて[アナウンス](https://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html)されました。
ケビン・ギブスやEffective Python著者のブレット・スラットキン、Pythonの父グイド・ヴァンロッサムらのチームが、Googleの「20%ルール」によって開発しました。

>立薗：GAEは、いわゆる「20％ルール」（勤務時間の20％は自分の好きなことをするグーグルの社内ルール）のプロジェクトで始まったのでしょうか？
>
>クーメン：そう。最初は私はいなかったが、2人のエンジニアと1人のプロダクトマネージャーで始まった。
>（中略）
>素晴らしいエンジニアたちがこのプロジェクトにかかわっている。まず、ブレット（ブレット・ストラキン氏、冒頭で紹介したソフトウェア・エンジニア）がいて、彼が「クォータ（Quota）システム」や開発環境を作った。小さなチームで「Datastore API」を担当し、BigTableをエキスポートするチームがいる。Pythonを作ったグイド・ヴァンロッサム（Guido Van Rossum氏）がいろいろな仕事をしている。ほかにも「管理者コンソール」を作っている開発者や、2人のプロダクトマネージャーなど、役割分担はしっかりしている。
>
>[Google App Engine－すべては20％プロジェクトからスタートした](https://atmarkit.itmedia.co.jp/fwcr/special/gdd2008/gae01.html)

>I'm the founder and technical lead of the Google App Engine project. 
>
>[Kevin Gibbs](http://www.kevgibbs.com/about)

Python関係者が揃っていたからか、当時PHPやJavaと比較してマイナー言語だったPythonの対応からスタートしました。
その後Javaランタイムが2009年、Goが2011年と続き、同年正式サービス化します。

>App Engine supports Python only, so developers in Java, PHP, Ruby, and so on are left with two choices: port their applications to Python, or host elsewhere. Frankly, I find this constraint as understandable as it is logical, given both Google’s internal Python focus (remember, they employ Guido) and the difficulties of launching a new service.
>
>[Clouds Rolling In: The Google App Engine Q&A](https://redmonk.com/sogrady/2008/04/09/clouds-rolling-in-the-google-app-engine-qa/)

## 余談：Borg上で動くApp Engine
App Engineは「Borg for Everyone」と呼ばれるように、Borgのコンテナをそのまま流用する形で作られました。
（Borgの論文公開は2015年なので、当時のユーザからすると「Googleの謎インフラ上で動いているサービス」といった認識だったはず）

>そうしたBorgのコンテナ技術のメリットを、わりとそのままGCPユーザーに提供するサービスがGoogle App Engineです。App Engineのインスタンスは、Borgのコンテナそのものです。
>
>[YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ](https://qiita.com/kazunori279/items/3ce0ba40e83c8cc6e580)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287774/ea328579-dc4c-0f82-acf8-74a9030d622c.png)
[Google App Engine世代交代](https://docs.google.com/presentation/d/1trxz4_ksRyHdj2cAGVKiy3gtx7q1-AE06XbzLraBD44/edit#slide=id.p)

ちなみに先ほど説明したZimkiの内部インフラもBorgと呼ばれていたそうです（Zimkiを開発したCEOのブログより）。

>Fotango introduced a system called the "Borg".
>The idea of the system was that we could deploy any of our web applications to a mass of blades and spin up new application servers as we needed them.
>
>Came across this system from Google - apparently called Borg as well. The scale is obviously different, probably some of the ambitions are the same.
Fotango's more limited version was built by a team led by Artur Bergman.
>
>[Here comes the Borg ...](https://blog.gardeviance.org/2008/06/here-comes-borg.html)

## App Engineの歩み
App Engineは発表後すぐに世の中に広まったかと言うとそうではなく、当時を知っている知人に当時の印象を聞いたり、Web上の声を見る限り「リリースの衝撃はあったもののそこまでは流行らず」といった雰囲気を感じました。

- Datastore第1世代はかなり不安定で、レスポンスが10msで返ってくるとは限らない状態。try-catchの実装が面倒過ぎた
- LAMPスタック全盛期なのでなぜPython？といった印象
- 2009年頃Javaランタイムを使っていたが、非常に立ち上がりが遅く30秒から1分かかりキツかった（Pythonは早かった）
- オンプレ全盛の時代では、PaaSの制限がなかなか受け入れ辛かった
- RDBサポートがなかったため、人を選ぶ感じのサービスだった

>パブリッククラウド黎明期、オンプレミス開発が当たり前の時代では、これらの制限が受け入れ難かったように感じます。
>
>[GCP誕生から10年、その進化の歴史を振り返る](https://ascii.jp/elem/000/001/757/1757103/3/)

>App Engineの不運なところは、これまでGoogleがBorgやコンテナ技術についてまったく公開せず、VMに対するメリットがあまりきちんと説明されてこなかったことです。その一方で、例えば「App Engineのインスタンスはステートレス設計にすべし」などの制約事項が多く、なんだかこのPaaS使いにくいなー独自だなーHerokuの方が普通だなーというイメージが根強かった。
>
>[YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ](https://qiita.com/kazunori279/items/3ce0ba40e83c8cc6e580)

>最初はDatastoreとセットで登場し、RDBサポートが無かったため、人を選ぶ感じのサービスだった
>
>[ Google App Engineの世代交代](https://docs.google.com/presentation/d/1dxXHNblZZTC7DXyqS9-0ruakRedVSWmZOuhledd_qVY/htmlpresent)

その後改善を重ねていき、2011年にはウィリアム王子の結婚式WebページがApp Engine上に構築される等、様々な実績が積み上がっていきます。
下記は[誕生から 10 年、App Engine の歩みを振り返って](https://cloud.google.com/blog/ja/products/gcp/reflecting-on-our-ten-year-app-engine-journey)からの引用ですが、App Engine発展の歴史が分かりとても分かりやすいです。

```
2008
App Engine Intro

2009
Java on GAE

2010
Gaming customers on GAE
Finance industry customers on GAE

2011
William & Kate’s Royal wedding website on GAE
Cloud SQL intro

2012
Go on GAE

2013
More customers on GAE
Cloud Datastore launch

2014
Cloud SQL & GAE PHP apps
Drupal on GAE

2015
Digital marketing solutions on GAE

2016
More customers
Stackdriver Error reporting for GAE

2017
App Engine Flexible environment GA launch
Java 8 on GAE
Managed SSl certificates

2018
App Engine HIPAA BAA compliant
```
[誕生から 10 年、App Engine の歩みを振り返って](https://cloud.google.com/blog/ja/products/gcp/reflecting-on-our-ten-year-app-engine-journey)

# GCPのリリース年表
前の章ではGCPの始まりであるApp Engineについて説明しましたが、ここでは「App Engine以降のGCPのサービス」に関するリリース年表をまとめます。
基本的には[An Annotated History of Google’s Cloud Platform](https://medium.com/@retomeier/an-annotated-history-of-googles-cloud-platform-90b90f948920)をもとにしています。

|年  |できごと  |
|---|---|
|2008  |・App Engine  |
|2010  |・Cloud Storage<br>・BigQuery and Prediction API（limited preview）  |
|2011  |・Cloud SQL（preview）  |
|2012  |・BigQuery（GA）<br>・Compute Engine（preview）<br>・サービスアカウントが追加（[Service Accounts have arrived](https://developers.googleblog.com/2012/03/service-accounts-have-arrived.html)）  |
|2013  |・Compute Engine（GA）<br>・Cloud Endpoints（GA）<br>・サービスを統一し名称をGoogle Cloud Platformに変更 |
|2014  |・Cloud SQL（GA）<br>・Google Cloud Platformウェブサイトと開発者コンソールが日本語化（[Google Cloud Platform expands to Asia Pacific](https://cloudplatform.googleblog.com/2014/04/google-cloud-platform-expands-to-asia-pacific.html)）<br>・Stackdriver, Firebase, DeepMindを買収<br>・Cloud Dataflow（limited preview）<br>・Kubernetesを発表。GKE（Alpha）<br>GCPUGスタート  |
|2015  |・Pub/Sub（GA）<br>・Cloud DNS（GA）<br>・BigTable（Beta）<br>・Deploymen Manager（GA）<br>・Cloud Shell（Beta）  |
|2016  |・Cloud CDN（Beta）<br>・Stackdriver（GA）<br>・Cloud Shell, SQL, BigTable, Datastore（GA）<br>・Apigeeを買収<br>・GCPがGoogle Cloudブランドに統合<br>・東京リージョンが開始（[［速報］Google Cloud「東京GCPリージョン」がついに今日から正式運用を開始。日米間を毎秒60テラビットでつなぐ最新の海底ケーブルと接続](https://www.publickey1.jp/blog/16/google_cloud60.html)）  |
|2017  |・Spanner（public Beta）<br>・Kaggleを買収<br>・Cloud Functions（public Beta） |
|...  |... |

特筆すべきは2014、2016年かと思います。

まず2014年ですが、GCPコンソールの日本語化が行われたり、GCPのユーザグループであるGCPUGが発足する等、日本展開が本格化していきます。
その他にもCloud SQLといった重要なサービスがGAを迎えたり、FirebaseやStackdriverの買収を行う等、大きな動きを行っています。
現にGoogle社の方のブログによると、2014年に日本市場は大きなグロースを迎えたようです。

>GCP に特化したユーザーコミュニティ、Google Cloud Platform User Group (GCPUG) を設立
>
>[株式会社トップゲートの沿革](https://www.topgate.co.jp/about/history.html)

>国内でも、CyberAgentさん、Aimingさん、DeNAさん、Groovenautsさんをはじめ、名前は出せませんがあの国内最大手ソーシャルゲームベンダーさん、他社クラウドで何万コアも使ってそうな大規模なお客様たちのGCP導入事例が、昨年から急増しつつあり、これからじわじわと事例紹介が外に出てくると思います。そしてもちろん、Google BigQueryは昨年からぎゅーーんとユーザー数がうなぎのぼりに増えています。
>
>[YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ](https://qiita.com/kazunori279/items/3ce0ba40e83c8cc6e580)

前年の2013年にApp EngineやCompute EngineがGoogle Cloud Platformのブランドのもと統合されたり、アジア圏にデータセンターが追加される等、地盤が固められていったのも飛躍を支えた大きな要因だったかなと思います。

>2008年から2013年にかけて次々に登場したPaaSのGAE、BlobストレージのGCS、RDBMSのCloud SQL、データウェアハウスのBigQuery、IaaSのGCEなどのサービスは、しばらくの間、別々のサービスとして存在していました。2013年に、これらのGoogleのクラウドサービスをまとめて「Google Cloud Platform」という名称で提供するようになりました。
>
>[GCP誕生から10年、その進化の歴史を振り返る](https://ascii.jp/elem/000/001/757/1757103/3/)

>2013年末に台湾とシンガポールにデータセンターを開設
>
>[日本でも「Google Cloud Platform」を本格展開--「App Engineは特殊なPaaSではない」](https://japan.zdnet.com/article/35047126/)

次に2016年ですが、やはり東京リージョンの誕生が大きなイベントですし、様々なサービスがGAを迎え大きな節目を迎えているように見えます。
また、Google Cloud PlatformがGoogle Cloudにブランド変更されたのもある意味大きな変更点だと考えています。
これ以降「GCPは正式名称じゃないのでGoogle Cloudと書きたいがあまりにも長くなるのでGCPと略称したい」問題がつきまとうことになるので...。

>Google Cloudには、従来のGoogle Cloud Platform、G Suite（旧Google Apps for Work）に加え、AndroidやChromebookも含んでおり、企業がクラウドをベースに業務を進めていくための包括的なサービスを示すブランドになっています。
>
>[Google、主要サービスのブランド名刷新。G Suite＝旧Google Apps for Work／Google Cloud＝Google Cloud Platform＋G Suite＋Chrome＋Android＋etc…
](https://www.publickey1.jp/blog/16/g_suite_google_cloud.html)

>GCP と呼んでも、分かる人には意味は通じるでしょう。しかし、Google が訴求する正式なブランド名称である Google Cloud の名称を利用されることをおすすめいたします。
>
>[Google Cloud と Google Cloud Platform
（GCP）の違いは？](https://managed.gmocloud.com/knowledge/googlecloud/basicofgooglecloud01.html#:~:text=%E3%81%A8%E3%81%84%E3%81%88%E3%81%BE%E3%81%99%E3%80%82-,%E3%81%BE%E3%81%A8%E3%82%81,%E6%84%8F%E5%91%B3%E3%81%AF%E9%80%9A%E3%81%98%E3%82%8B%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%80%82)

## おわりに
Google Cloudの歴史について振り返ってみました。
歴史を知っておくと、繰り返しながら前進してきた「技術史」をメタ的に意識できるようになり、技術者として厚みが出るのが良いかなと感じます。
Google Cloudに触れ始めたのは2019年頃からなので、もし認識誤り等あればご指摘いただけると嬉しいです🙇‍♂️