Cloud Run × Flaskでお手軽にマイクロサービスを実現する

はじめに

個人開発でアプリ作成中なんですが、バックエンドをrailsで作っていました。
そんなある日。。。 こんな記事を見ました。
Firebaseでバックエンドエンジニア不在のアプリ開発 クックパッドが体感した、メリットと課題

Firebaseならバックエンドエンジニアを必要としない開発ができる

( ゚д゚) ... マジカ

これに感化されてCloud Functionでバックエンドを作ってました。

ある理由でそれは辞めました。

なぜ、Cloud Functionを採用しなかったか

今回マイクロサービスをアーキテクチャとして採用し、さらに各機能を自分が作るのは嫌なので、BaaSをサービスと定義して自分はBFFだけ作ってやろうという腹でした。

それだったら、BaaS単位で共通のライブラリファイル作ったほうが、他のプロジェクトを立ち上げる時に楽だよね?となり、クラウドファンクションにそういう共通化する機能があることを知り採用しようとしました。

しかし。。

めんどくさい(;´Д`)

そもそもローカルでファンクション単位でしか実行出来ないのも嫌気が差して
これ、ローカル実行出来るフレームワークをクラウドファンクションみたいにサーバレスで動かせばよいのでは?
と発想。

cloud runというDockerでサーバレスに構築、しかもリクエスト単位の稼働で課金(データの永続化は出来ない)
という、正にクラウドファンクションの上位?互換のサービスがあることを知り今回採用しました。

結局、何が言いたいの?

  • マイクロサービス
  • サーバレス
  • リクエスト単位課金
  • 低料金
  • 自分で機能を作りたくない
  • 環境構築したくない

これらを実現したい人向けにサンプル(土台)を作ったから、使ってね!
と言いたいです。

作ったもの

以下です。

https://github.com/taiseiotsuka/Flask-On-CloudRun

readmeに全部構築手順書いたので、よければ使ってみてください。

※ DockerリポジトリはGoogle Container Registryを使うことを想定としています。
※ デプロイはGCPのマネコンから行うことを想定としています。
※ BaaSに当たる部分は今回サンプルとしてGoogle Firestore(Nosql DB)を使用しています。

使い方わからなかったら質問してね!

Bye

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした