3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Twelve-Factor Appの項目を一言にまとめる

Last updated at Posted at 2024-03-05

皆さん、抽象化好きですよね。抽象化するのはとても難しいけどめちゃちゃ大事ですしコミュニケーション能力にもかかわるところです。でも具体ももってないのに抽象すると"ITコンサル風"になるので気を付けなければいけないです。
会社でTwelve-Factor Appの勉強会(なのか?)を行った。このサイトを見てただの抽象的な概念の読み合わせがあり、WebアプリやSaasはこう作りべきと抽象的に書かれているものを淡々と読んでいくが、確かに大事なことが書かれてるんだけどただ読み流しなだけでみんな本当に理解してるのか?と感じたので、一瞬で理解できるよう一言でまとめて概念を理解してスッキリしようと思います。
あと、2012年に提唱されて少し古いので、すでにクラウドを扱う上での考慮を加えたBeyond the Twelve-Factor App(2016年)があるので長いしわかりずらいので一言にする。間違い指摘は歓迎します。

1. One codebase, one application

1つのプロジェクトに1つのリポジトリにしようね。

2. API first

APIのコアな設計を固めてから開発しようね。

3. Dependency management

依存ライブラリは管理しようね

4. Design, build, release, and run

設計、開発、運用、手順をはっきりさせようね

5. Configuration, credentials, and code

設定/環境情報はコードには書かないでね

6. Logs

ログはちゃんと取るようにしようね

7. Disposability

サクッと起動、サクッと停止できるようにしてね

8. Backing services

外部サービス特にDBとかバックサービスは簡単に切り替えられるようにしようね

9. Environment Parity

どの環境でも同じように動くようにしようね

10. Administrative Processes

管理タスクはラクにできるようにしようね。管理画面作るといいよ

11. Port Binding

アプリはポート単位に分けると毎回サーバー構築しなくて済むから効率いいよ

12. Stateless Processes

情報はバックサービスで保持しとけ、ステートレスにしとけばリソース追加と削除が簡単になるからいいよ13につながるよ

13. Concurrency

12にすることで水平にリソース拡張できるから複数の同時並行でインスタンスを起動させるとかで役立つよ

14. Telemetry

パフォーマンスとかどのリソースが使われてるとかちゃんと見れるようにしようね

15. Authentication and Authorization

どこの誰が入っていいかちゃんと決めとこうね。

感想

言うまでもない当たり前なこともあるけど確かにそうだけど要件によってはそうじゃないこともある。例えばOne codebase, one applicationはこれに限ったことじゃないし、モノレポで管理する方が嬉しい場合もある。あくまで基本的な考え方の材料として、じゃあ私のPJはそれが最適か?と項目別に照合する材料にすればいいなと思いました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?