-
Notifications
You must be signed in to change notification settings - Fork 16
/
12_factor.theory.txt
30 lines (26 loc) · 2.65 KB
/
12_factor.theory.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
12_FACTOR
12 FACTOR ==> #Create isolated apps that scale up, behave as expected and easy to config.
#Isolated apps:
# - one repo === one app
# - dependency -> dependency manager:
# - no system-wide dependency
# - run in isolated environment (e.g. nvm|pyenv) to make sure
# - local/remote backing services (databases, etc.) -> URL only
# - if should communicate, export itself by listening to localhost:PORT
#That scale up:
# - stateless/share-nothing processes
# - automated:
# - start on boot
# - fast startup, graceful shutdown (SIGTERM or sudden death)
# - timestamp releases
#Behaves as expected, i.e. branches are as close as possible, and easy to config:
# - same people (DevOps), same tools (OS, backing services), continuous deployment
# - use container (Vagrant, etc.)
# - logs to stdout (branch-specific config redirects it)
# - admin scripts run in same environment as the app itself (e.g. REPL)
# - steps:
# - build, not branch-specific: most should happen here
# - release, branch-specific: only adds config (ENVVAR-only, not in code)
# - run: should be minimalistic