🔑

12 factor app

2023/12/04に公開

12 factor app

こんにちは!ビクトルです!

今回はdevopsでSaaSを開発する技術について話したいと思っています。

アプリを開発するときに始めてのcommitから本番でデプロイするまで悩んでることが多い気がしていると思います。

それで、12 factor appのルールについて話しにいきましょ~

1. Codebase

コードは一箇所にまとめておくべきです。たとえば、GitHub。そして、デプロイのために一個以上にpipelineを用意するべきです。。

2. Dependencies

アプリの依存関係を一箇所にまとめ、管理をしやすくしてください。

3. Config

アプリの変数は環境変数に設定を保存し、どこでも開発環境で更新して利用されます。

4. Backing services

もしアプリケーションが statefullであれば、データを管理するためのデータベースなどを作成してください。それともキャッシュやqueueなど。

5. Build, release, run

デプロイミスを減らすためにコードのビルドpipelineとデプロイpipelineを分けてください。

6. Processes

アプリはstatelessであり、データがデータベースに保存してください。もしdiskやメモリをあまり使わないでください。

7. Port binding

アプリはポートをつけて開発環境で公開してください。

8. Concurrency

プロセスリクエストを処理できるようにスケールする必要があり、環境内では並列で実行されます。

9. Disposability

アプリは実行開始を早くしてシャットダウンするときアプリと連携してるサービスをゆっくりしてください。

10. Dev/prod parity

dev環境と本番環境と一緒にしてください。

11. Logs

ログ分析のためにログイベントをしてください。

12. Admin processes

データベースマイグレーションやタスクなどどこでもの環境に同じ結果にしてください。


参考

Discussion