redux twelve-factor app - yo briefca · 2020-02-14 · twelve-factor app a methodology for building...

40
THE TWELVE-FACTOR APP A METHODOLOGY FOR BUILDING SOFTWARE-AS- A-SERVICE APPS REDUX

Upload: others

Post on 22-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

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,

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,

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,
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,

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,
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,

$$$

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,

$$$

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

http://12factor.net