GAE登場、BigQueryのリリース、GCEでの妥協、そしてGKE
GCP誕生から10年、その進化の歴史を振り返る
2012年 Google Compute Engineの登場
GAEはリリース当初から完成度が高いサービスでしたが、PaaSという特性と、ランタイム環境がGoogleのインフラに用意されているため、プログラム言語が限定されている、ローカルにファイルを置けない、リクエストのタイムアウトが短い、SSHでインスタンスにログインできない、などの制限があります。優れたスケーリングなどの恩恵を受けることができても、オンプレミス環境をそのままクラウドに移行するようなことができません。
パブリッククラウド黎明期、オンプレミス開発が当たり前の時代では、これらの制限が受け入れ難かったように感じます。
そのため、GoogleはIaaS形式のクラウドサービスとして、Google Compute Engine (GCE)を2012年にリリースしました。
2013年 Google Cloud Platformに統一
2008年から2013年にかけて次々に登場したPaaSのGAE、BlobストレージのGCS、RDBMSのCloud SQL、データウェアハウスのBigQuery、IaaSのGCEなどのサービスは、しばらくの間、別々のサービスとして存在していました。2013年に、これらのGoogleのクラウドサービスをまとめて「Google Cloud Platform」という名称で提供するようになりました。
また、この時期からGCPのコンソール画面も新しくなり各サービスが一つに統一されていくようになりました。
2014年 GKEのリリース
2014年以降は、コンテナやビッグデータ、機械学習などが注目されるようになり、それらを扱うための新しい技術が必要になってきました。Googleも時代のニーズに応えるべく様々なクラウドサービスをリリースしました。
2013年にDocker 0.1がリリースされ、それから1年もしないうちにDockerフィーバーが起きました。
従来のシステムではアプリケーションの実行環境の依存関係や制約が多く、テスト環境でデプロイできても本番環境ではデプロイできないなどの問題がありました。さらにオンプレミスからパブリッククラウドに移行するとなると環境を最初から作らないといけない手間が発生しました。
コンテナを使うことで、アプリケーションのコードとの依存関係やインフラなどの環境をひとまとめにすることができ、テスト環境でも本番環境でも、オンプレミスでもパブリッククラウドでもデプロイ可能になり、実行環境の移行が容易になります。
一方、Googleは、世界がコンテナ技術に注目し始める10年以上も前から独自のコンテナ技術を使ってクラウドを運用していました。コンテナに自信のあるGoogleは、たくさんの技術を世の中に提供してくれました。その代表的なものとして、Kubernetesがあります。
Googleは10年以上のコンテナ運用技術の中でBorg(2015年に論文公開)というオーケストレーションツールを開発しました。そのBorgをもとにしてDockerコンテナに対応させたものがKubernetesです。Googleのコンテナ技術がそのまま詰まっているKubernetesはすぐれたオーケストレーションツールとして注目され、2017年にDocker社がKubernetesをサポートしたことから、現在は、オーケストレーションツールのデファクトスタンダードになっています。
そして2014年11月に、GoogleはGoogle Container Engine(現Google Kubernetes Engine、GKE)をリリースしました。
GKEはDockerコンテナのフルマネージドサービスとなっていて、GCP上でKubernetesを最適化して提供します。オーケストレーションやクラスタ管理はKubernetesに基づいて管理されており、Compute Engineのインスタンスとリソースを使用しています。
また、GKEではKubernetesマスターは隠蔽されており、料金も発生しません。さらに、GKEに関連するサービスとして、Google Container Builder、Google Container Registryがあり、コンテナイメージの作成と管理をサポートしてくれます。