REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building...
Transcript of REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building...
![Page 1: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/1.jpg)
THE TWELVE-FACTOR APP
A METHODOLOGY FOR BUILDING SOFTWARE-AS-
A-SERVICE APPS
REDUX
![Page 2: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/2.jpg)
A SOFTWARE STORY
![Page 3: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/3.jpg)
![Page 4: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/4.jpg)
⇾
![Page 5: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/5.jpg)
![Page 6: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/6.jpg)
$$$
![Page 7: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/7.jpg)
$$$
⇾
![Page 8: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/8.jpg)
THE TWELVE-FACTOR APP
A METHODOLOGY FOR BUILDING SOFTWARE-AS-
A-SERVICE APPS
![Page 9: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/9.jpg)
THE TWELVE-FACTOR APP METHODOLOGY
A METHODOLOGY FOR BUILDING SOFTWARE-AS-
A-SERVICE APPS
![Page 10: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/10.jpg)
GOALS
![Page 11: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/11.jpg)
1.
MINIMISE TIME AND COST FOR NEW DEVELOPERS JOINING THE PROJECT
![Page 12: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/12.jpg)
2.
MAXIMISE PORTABILITY BETWEEN EXECUTION
ENVIRONMENTS
![Page 13: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/13.jpg)
3.
ENABLE CONTINUOUS DEPLOYMENT FOR MAXIMUM AGILITY
![Page 14: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/14.jpg)
4.
SCALE UP WITHOUT CHANGES TO TOOLING, ARCHITECTURE
OR PRACTICES.
![Page 15: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/15.jpg)
THE TWELVE-FACTOR APP
A METHODOLOGY FOR BUILDING SOFTWARE-AS-
A-SERVICE APPS
![Page 16: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/16.jpg)
CODEBASE
ONE CODEBASE TRACKED IN REVISION CONTROL,
MANY DEPLOYS
![Page 17: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/17.jpg)
CODEBASE DEPLOYMENTS
⇽ 1 : * ⇾
![Page 18: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/18.jpg)
DEPENDENCIES
EXPLICITLY DECLARE AND ISOLATE DEPENDENCIES
![Page 19: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/19.jpg)
DECLARE
lorem 1.1.0 ipsum 3.2.1 dolor 4.6.0 sit 1.6.1
ISOLATE
lorem 1.1.0 ipsum 3.2.1 dolor 4.6.0 sit 1.6.1
lorem 1.1.0 ipsum 3.2.1 dolor 4.6.0 sit 1.6.1
lorem 1.1.0 ipsum 3.2.1 dolor 4.6.0 sit 1.6.1
lorem 1.1.0 ipsum 3.2.1 dolor 4.6.0 sit 1.6.1
![Page 20: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/20.jpg)
CONFIG
STORE CONFIG IN THE ENVIRONMENT
![Page 21: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/21.jpg)
db_user=… db_pswd=…
api_url=…+ =
![Page 22: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/22.jpg)
BACKING SERVICES
TREAT BACKING SERVICES AS ATTACHED RESOURCES
![Page 23: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/23.jpg)
postgresql://localhost/test?user=fred&password=secret
smb://myserver.mydomain.com/Sharepoint/catpics
https://api.authenticator.com:9876/app/97yt6772
![Page 24: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/24.jpg)
BUILD, RELEASE, RUN
STRICTLY SEPARATE BUILD AND RUN STAGES
![Page 25: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/25.jpg)
BUILD
▶
BUILD
CONFIG
RELEASE RUN
RELEASE+
BUILD
![Page 26: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/26.jpg)
PROCESSES
EXECUTE THE APP AS ONE OR MORE STATELESS
PROCESSES
![Page 27: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/27.jpg)
OPERATING SYSTEM
WEB.1 WORKER.1
WORKER.212 FACTOR APP
⇾⇾
![Page 28: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/28.jpg)
PORT BINDING
EXPORT SERVICES VIA PORT BINDING
![Page 29: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/29.jpg)
ssh::2222 ϟ ⇾
http::4889 ϟ ⇾
xmpp::5222 ϟ ⇾
http::8080 ϟ ⇾APP APP APP
———— :( ————
OPERATING SYSTEM
APP
APP
APP
OS
![Page 30: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/30.jpg)
CONCURRENCY
SCALE OUT VIA THE PROCESS MODEL
![Page 31: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/31.jpg)
OPERATING SYSTEM
WEB.1 WORKER.1 CRON.1
WORKER.2
WORKER.3
WEB.2
![Page 32: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/32.jpg)
DISPOSABILITY
MAXIMIZE ROBUSTNESS WITH FAST STARTUP AND
GRACEFUL SHUTDOWN
![Page 33: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/33.jpg)
WEB.1 ✖ CRON.1
WORKER.2
WORKER.3
✖ ✖
OPERATING SYSTEM
![Page 34: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/34.jpg)
DEV/PROD PARITY
KEEP DEVELOPMENT, STAGING, AND PRODUCTION AS SIMILAR AS POSSIBLE
![Page 35: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/35.jpg)
❄
DEV
MYSQL
APACHE
OSX
STAGE
❄
MARIADB
APACHE
CENTOS
PROD
❄
ORACLE
NGINX
REDHAT
![Page 36: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/36.jpg)
LOGS
TREAT LOGS AS EVENT STREAM
![Page 37: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/37.jpg)
APP.1 APP.2
M1 M2 M1 M1 M2 M1 M2
ϟ ϟ
M1 M2M1 M1M2 M1 M1
M2M2 M2
M2M2
⧖
![Page 38: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/38.jpg)
ADMIN PROCESSES
RUN ADMIN/MANAGEMENT TASKS AS ONE-OFF
PROCESSES
![Page 39: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/39.jpg)
RELEASEdb:migrate ϟ ⇾
lein repl ϟ ⇾ >_
![Page 40: REDUX TWELVE-FACTOR APP - Yo Briefca · 2020-02-14 · twelve-factor app a methodology for building software-as-a-service apps. codebase one codebase tracked in revision control,](https://reader033.fdocuments.us/reader033/viewer/2022042222/5ec9637e87a89d58691d0715/html5/thumbnails/40.jpg)
http://12factor.net