はてなの金次郎

とあるエンジニアの技術系ブログ

第3回 Google Cloud INSIDE Games & Appsに参加してきました

f:id:gyuuuutan:20180320060544p:plain

はじめに

はじめてGoogle Cloud INSIDE Games & Appsに参加してきました。

このイベントは、事例をもとにアプリ開発の裏側を徹底解説することで、より実践的な知識と経験の共有の場となることを目指しています。

とありましたが、今回のテーマが「マイクロサービスのアーキテクチャと事例紹介」でしたので、GCPでマイクロサービスをどう実現したか(するか)という内容が主でした。アプリ開発に関してはFirebaseが少し出てきたかなくらいです。以下簡単ですが、内容の共有です。詳細はスライドを確認してください。

Google Cloud Platformで実現するプロダクションレディマイクロサービス

GCPを使えばプロダクションレディマイクロサービスが簡単に構築運用できますよという話でした。 プロダクションレディマイクロサービスによると、以下の原則を備えたマイクロサービスを作れば、本番トラフィックを任せられる可用性の高いシステムが構築できるとのことです。

  • 安定性
  • 信頼性
  • スケーラビリティ
  • 耐障害性と大惨事への対応
  • パフォーマンス
  • 監視
  • ドキュメント

上記の原則を備えたマイクロサービスをGCPでどう実現するか。

  • 安定性 / 信頼性
    • 標準的なデプロイパイプライン
      • GAE : カナリアリリース・A/Bテスト
      • GKE : Spinnakerを併用
  • スケーラビリティ
    • GAE : Webアプリのための統合PaaS
    • GKE : マネージドのKubernetes (KaaS)
  • 耐障害性と大惨事への対応
    • サービスごとにリリースチェックリストがある
  • パフォーマンス
  • 監視
    • Stackdriver : 運用のための統合ツール -ドキュメント
    • Cloud Endpoints : 標準化されたエンドポイントを提供

チュートリアル - Google App Engine - Google Kubernetes Engine - Google Endpoints

バスNAVITIME on GKE, Inside of Bus NAVITIME.

GKEに移行した手順と苦労した点の話でした。

GCP本格採用で遭遇した課題とマイクロサービス的解決

CQRSという切り口でC(Command:更新系)をGAE flexible × Scala でQ(Query:参照系)をGAE standard × GoでUniposを開発したという話でした。 GAE flexibleはインスタンスの起動時間が分単位だったり、セキュリティの関係で(?)週に1度リブートされたりするため注意が必要とのことです。

おわりに

はじめての六本木ヒルズは怖くて終始挙動不審だったと思います。セッションの内容はマイクロサービスに関する話が主でした。もう少しアプリ開発ならではの話も聞きたかった気もしますが、すごく勉強させていただきました。今回は予定があり懇親会に参加できなかったですが、次回はぜひ参加したいです。