teratailはGoogle Cloud Platformに引っ越しました!

f:id:yumotohashi:20161031150056j:plain 俺達は

GCPへの移行を

強いられてるんだ!!!!
用意された画像に合わせただけで内容には関係ありません

TL;DR

10/26のメンテナンスでteratailをGoogle Cloud Platformに移行しました。TokyoリージョンのStackdriverまだですか。

初めに

こんにちは、teratail開発チーム本橋です。
teratailは10月26日にVPSサービスからGoogle Cloud Platformへ移行しました!

GCP

利用しているサービスは以下のとおりです。

  • HTTP(S) Load Balancing
  • Google Compute Engine
  • Google Container Engine
  • Google Cloud Storage
  • Google Stackdriver
  • Google BigQuery

分析インフラのBigQueryへの移行、一部サービスのGAE/goへの移行等も計画されています。

導入理由

導入の大きな理由としては以下の4点が挙げられます。

1. Dockerのクラスタ管理ツールであるkubernetesの利用が容易
2. インフラのことについて考えることが少なくなる
3. オートスケーリング
4. 低料金

これから、ユーザの皆様に必要な機能のリリースやサービスをスケールさせていく上で、本番環境と同様の環境を作成することが容易なコンテナの利用が必須となっていたためkubernetesの利用を決定しました。

また、2の「インフラのことについて考えることが少なくなる」については、kubernetesについて考えることが増えたので結果的には考えることが増えている印象です。

4の料金は導入初期ということで少しオーバースペック気味に見積もったためあまり以前と変わりませんが調整していくことで下がる見込みです。

懸念

懸念点としては以下のものがありました。

1. 一番近いDCが比較的遠距離であること
2. 一部サービスでAWSを利用していること
3. 導入事例が少ないこと

1のDCについては東京リージョンが2016年3-4Qに始まることが発表されていたため、運用に載った後に順次移行していけばいいと判断しました。

2の一部サービスについても、AWSからGCPへの移行を緩やかに行うことでパフォーマンスやコスト削減が行えるため問題はありませんでした。

3の導入事例については、新しいものを利用する上で覚悟すべきこと、またエンジニア向けのサービスという特性上チャレンジすることに価値があるということで「導入事例がなければつくればいいじゃないか」の精神で導入を決定しました。
※ もたもたしてる間にabemaTVやWantedlyなどで導入されたのでいろいろクリアになりました

結果

サービスの更新にかかる作業が整理され高頻度でのリリースが可能になりました。まだ自動化出来ていない作業は大量に残っていますが、最適な形を探していきます。

また、TensorFlowを用いてQAをスムーズにしたり、APIをGAE/goで構築しサービスを分離したりとGCPだからこそ出来る改修を模索していこうとおもっています。

日々変化する技術業界の中でteratailが全てのプログラマ,エンジニアにとって使いやすいサービスであるために開発,運営チーム共々日々改善を出来るようなプラットフォームを作っていきたいと思いますので、これからもよろしくお願いします。

ひとこと

移行前日のテンパっている時にasia-northeast1が出るのはやめていただきたい