はじめに
- 自分でちょっとしたWebアプリケーションを開発するときに、構成をどうするか悩んだときのメモです。
考えたこと
Webアプリケーションフレームワーク
比較
- Python 製 Web フレームワークを Flask から FastAPI に変えた話
- Flaskと比較しながらサンプル実装
- ドキュメンテーション
- Pydantic によるバリデーション
Django
■モデル ・データベースと連携を取るところ ■ビュー ・他のフレームワークでいうコントローラ ・モデルで引っ張ってきた情報をどのようにみせるか(ロジックで加工する) ■テンプレート ・HTMLファイルとか。ダイレクトにスクリーンに反映されるコード ・モデルから直接情報を持ってこないこと
-
- ディレクトリ構成
- model、ビューの分割
- ディレクトリ構成
FastAPI
- FastAPIの良いところ
Microservice in Python using FastAPI
```
- Auto documentation
- Async/Await support
- Built-in validation and serialization
- 100% type annotated so autocompletion works great ```
その他
- マイクロサービス化も考慮したい
インフラ構成
AWS or GCP
AWS
- AWS Elastic beanstalkからAmazon EKSへ移行する
- AWS Elastic beanstalkの辛い点
- CI/CDをどのように構築するか
- lambda
GCP
- アーキテクチャ: マイクロサービスを使用したスケーラブルなコマース ワークロード
- GCE + Cloud Run が一番安い?
- コンテナでサーバーレス(リクエストごとの起動)が嬉しい
- Cloud Run
- GAE
- GAE (Flexible環境/Docker) をStandard/ruby環境に移行した例も