12 factors to cloud success - developermarch · apache deltaspike p.m.c [email protected]...
TRANSCRIPT
![Page 1: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/1.jpg)
Rafael Benevides
12 Factors to Cloud Success
![Page 2: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/2.jpg)
2
12 Factors to Cloud Success
Rafael Benevides
http://bit.ly/12factors-app
![Page 3: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/3.jpg)
@rafabene
Rafael Benevides
Director of Developer Experience at Red Hat
Apache DeltaSpike P.M.C
@rafabene
Java Certifications:
SCJA / SCJP / SCWCD / SCBCD / SCEA
JBoss Certifications:
JBCD / JBCAA
Red Hat Certifications:
OpenShift / Containers / Ansible
Other Certifications:
SAP Netweaver / ITIL / IBM Software Quality
![Page 4: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/4.jpg)
@rafabene @burrsutter developers.redhat.com
http://developers.redhat.com
![Page 5: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/5.jpg)
@rafabene
One day...
![Page 6: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/6.jpg)
@rafabene
What are the humans
"super powers"?
![Page 7: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/7.jpg)
@rafabene
Thinking has taken us where no one has gone before.
![Page 8: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/8.jpg)
@rafabene
until they've decided to become PROGRAMMERS
Humans had been problem solvers...
![Page 9: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/9.jpg)
@rafabene
Problem solving loop
Identify a
Analyze cause and effect
Identify the
![Page 10: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/10.jpg)
@rafabene
What should we do with a solution?
![Page 11: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/11.jpg)
@rafabene
Share engage people. Together we are stronger!
![Page 12: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/12.jpg)
@rafabene
● A methodology
● Manifesto
● Best practices
● Principles
Created by
![Page 13: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/13.jpg)
@rafabene
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Processes
7. Port binding
8. Concurrency
9. Disposability
10.Dev/prod parity
11.Logs
12.Admin processes
![Page 14: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/14.jpg)
@rafabene
1 - Codebase
One codebase tracked in revision control, many deploys
![Page 15: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/15.jpg)
@rafabene
1 - Codebase (What does it mean?)
Use Version Control - But use it the right way!
App 2 repository
App 3 repository App 3
package
App 3 deploy
environments
App 2
package
App 2 deploy
environments
App 1 repository App 1
package
App 1 deploy
environments
![Page 16: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/16.jpg)
@rafabene
Same App but different repos
1 - Codebase (DO NOTs)
Production
App package
QA
App package Development
App repository 1
App repository 2
DO NOT have different codebases for different deployments
![Page 17: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/17.jpg)
@rafabene
1 - Codebase (DO NOTs)
App 2
package The one
repository
App 1
package
App 3
package
DO NOT have multiple apps and docs in the same repo
![Page 18: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/18.jpg)
@rafabene
2 - Dependencies
Explicitly declare and isolate dependencies
![Page 19: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/19.jpg)
@rafabene
2 - Dependencies (What does it mean?)
● Use a package manager to avoid dependency hell.
● Don't commit dependencies in the codebase repository.
![Page 20: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/20.jpg)
@rafabene
Let's take a detour to factor 5
We will return to factors 3 and 4 later
![Page 21: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/21.jpg)
@rafabene
5 - Build, release, run
Strictly separate build and run stages
![Page 22: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/22.jpg)
@rafabene
5 - Build, release, run (What does it mean?)
Stage Who? What? Why?
Build CI WAR / JAR / etc Avoid "It works in my machine"
Release CD Container image Deployments / Updates and Rollbacks
Run Platform Container instance Speed, Management, Orchestration
The twelve-factor app uses strict separation between the build, release, and run stages.
● Every release should always have a unique release ID
● Releases should allow rollbacks
![Page 23: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/23.jpg)
@rafabene
Let's go back to the factor
3
![Page 24: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/24.jpg)
@rafabene
3 - Config
Store config in the environment
![Page 25: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/25.jpg)
@rafabene
3 - Config (What does it mean?)
If you have to repackage your application, you're doing it wrong!
Prefer to store the config in Environment Variables
![Page 26: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/26.jpg)
@rafabene
4 - Backing Services (What does it mean?)
Treat backing services as attached resources
![Page 27: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/27.jpg)
@rafabene
6 - Processes (What does it mean?)
Execute the app as one or more stateless processes
Twelve-factor processes are stateless and share-nothing
![Page 28: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/28.jpg)
@rafabene
7 - Port Binding (What does it mean?)
Export services via port binding
Port: 5000 mysql: 3306
Port: 80
$MYSQL_SERVICE_PORT
App - Port: 8080
The twelve-factor app is completely self-contained
![Page 29: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/29.jpg)
@rafabene
8 - Concurrency
Scale out via the process model
![Page 30: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/30.jpg)
@rafabene
8 - Concurrency (What does it mean?)
● You can scale up and out ● Scale processes types ● Workload diversity ● It "advocates" for Microservices
![Page 31: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/31.jpg)
@rafabene
9 - Disposability (What does it mean?)
Maximize robustness with fast startup and graceful shutdown
● Processes can be started or stopped at a moment’s notice ● Processes should minimize startup time ● Processes shut down gracefully when they receive a SIGTERM ● Processes should also be robust against sudden death
Pets
Vs
Cattle
![Page 32: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/32.jpg)
@rafabene
10 - Dev/prod parity Keep development, staging, and production as similar as possible
![Page 33: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/33.jpg)
@rafabene
10 - Dev/prod parity (What does it mean?)
The twelve-factor app is designed for continuous deployment by keeping the gap between development and production small
![Page 34: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/34.jpg)
@rafabene
11 - Logs (What does it mean?)
A twelve-factor app never concerns itself with routing or storage of its output stream
Treat logs as event streams
Process
Log stream
![Page 35: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/35.jpg)
@rafabene
12 - Admin processes (What does it mean?)
Run admin/management tasks as one-off processes
Main Process
Admin process
![Page 36: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/36.jpg)
@rafabene
Summary
● Technology and language agnostic
methodology
● But satisfied by
○ Containers,
○ Microservices,
○ and CI/CD Pipelines
● Focused on DevOps
● More info: https://12factor.net/ ● Demo app: https://github.com/redhat-developer-
demos/12factor-app
![Page 37: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/37.jpg)
@rafabene developers.redhat.com
http://developers.redhat.com http://developers.redhat.com
![Page 38: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/38.jpg)
@rafabene
@RAFABENE
![Page 39: 12 Factors to Cloud Success - DeveloperMarch · Apache DeltaSpike P.M.C benevides@redhat.com @rafabene Java Certifications: SCJA / SCJP / SCWCD / SCBCD / SCEA JBoss Certifications:](https://reader031.vdocuments.mx/reader031/viewer/2022011822/5ec589b8a8184f5b061e1648/html5/thumbnails/39.jpg)
@rafabene
www.modsummit.com
www.developersummit.com