🙆
Souzoh Tech Talk #05:Infrastructure
概要
2021/09/15に開催された下記勉強会のメモです
パネルディスカッション
Infrastructure
アーキテクチャの全体像はこちら参照
Cloud Run
- 選定理由
- エンジニアが少ないのでk8sのクラスタをマネージが大変だと思った
- k8sのマニュフェスト書くよりお手軽
- なんでもできないもの選ぶのは意外と良い選択
- できない時に諦めつく
- シンプルに仕上がる
- 作る時に迷わない
- 選定当初はもうちょっと柔軟性あると思ってた
- 結果としては問題なかった
- エンジニアが少ないのでk8sのクラスタをマネージが大変だと思った
- Google Cloud製品との連携
- Google Workflow
- CIのGithubActionのWorkflowと同じようなもの
- 複数のサービスにまたぐような処理
- ステップを定義できる
- Google Tasks
- バッチ処理
- たくさんのデータを処理するとき
- バッチ処理
- Google Scheduler
- Cronのような定期実行
- エンドポイント叩くとCroudRunが動くといった使い方をしている
- Google Pub/Sub
- メッセージパブリッシュして関心のあるサービスがサブスクライブ
- Google Workflow
- コスト
- ちゃんと比較できないから難しいけど、多分安いと思う
- インスタンスを構えなくて良い
- リクエスト来続けるようなサービスはalways on CPU allocation使うといいかも?
Q&A
- Pub/SubとTask使い分け
- Pub/Subはメッセージが絶対一つという保証がない
- サブスクリプションを複数やったケースに限るが低い確率で発生
- Taskは設定できるエンドポイントが変更できる
- Pub/Subはメッセージが絶対一つという保証がない
- always-on CPU allocationが使える状態でもTasksでバッチ使う方が良い?
- 処理を分けれるので良い
CloudSQL/PostgreSQL
- 選定理由
- なぜSpanner使っていないのか
- スモールチームでスタートするので開発スピードが重要
- ORMの存在が重要
- Spannerだと弱い
- 独自に書くか対応してるやつ選ぶ必要がある
- Spannerだと弱い
- 高い?
- 安くする方法もあるのでなんとも
- なんでPostgreSQL?
- スケーラブルなものにしたい
- Cockroach DBはpostgreしゃべるので後で変更できる選択肢として
- メルカリではmysql多いけど
- read heaveyであまり負荷来ないので他の選択肢を優先
Q&A
- CloudSQL4半期に一度ダウンタイムが避けられないがどうしてるか?
- マイクロサービスなのでサービスを一部使えないみたいにしてやろうかなと考えている
- 日程調節もできる
- GraphQL, gRPCとかリソースが少ない時、開発が大変そうだけど?
- 今までやってたのでハードルあまりなかった
- 自動化とか組んでる
- 速やかにマイクロサービスが立てれるようになってる
- 判断的には好み?
- 考えないといけないことは増える
- デプロイしづらいとかもある
- アーキテクチャの将来計画について
- CloudRunからk8sにしないといけない時が来る?
- しばらくは変えなくてもいいかも
- うまく動いている
- CloudRunからk8sにしないといけない時が来る?
CDN / Fastry
- 選定理由
- Fastryはメルカリで使ってる
- CloudCDNだとコストかかるかも?
- GCPでいけるかもと考えていた
- NextJSの関係だったような?
- リクエスト多い
- SSRで捌けなくなりそうだった
- CloudCDNは中見て細かい制御ができない
キャッシュ戦略
- NextJSの関係だったような?
Q&A
- GraphCDN on Fastry使ってみる予定ある?
- 今のところ予定はないかも
- GraphQLはCDNでキャッシュしづらいというのはあるが、GraphQLの負担が問題になってない
- 100倍とか1000倍のクエリーが来るようになったら?
- Cloudflare WorkersなどEdgeWorkersの動向どうみてる?
- このあたりあまり見てない
- VCLで事足りてる感
- FastlyのImage Optimizerなど使っていますか?
- 今はimageproxyをCloudRunで動かしてる
- webpのオートディティクションある
- 同じURLに複数のオブジェクトもつとかやってる
- Fastry最初使う予定なかったので
- 今はimageproxyをCloudRunで動かしてる
- キャッシュ戦略によるインフラ負荷の軽減のトピック
- めちゃくちゃ減った99.9%くらいFastryで捌いてる
- NextJSがSSRできるのが強い
- CloudinaryでマルチCDNとか考えていますか?
- どういう目的でやりたいか?
- 純粋なコンテンツデリバリーという意味ではFastryにおいてあれば基本大丈夫と考えている
- 考えてるのはFastry障害あった時どうするか
- 使えませんとだけ返す仕組みとか
課題と取り組み/技術選定の理由
- 課題
- Canary deployment
- Terraform module
- Cloud SQL maintenance window
その他
CI/CDの話する予定あったけどこちらの記事読んでくださいとのこと
Discussion