www.developersummit.com
Thriving in the Cloud:
Venturing Beyond the 12 Factors
Rich Hagarty
IBM Developer Advocate
Gireesh Punathil
IBM Master Inventor, Architect
Your
company
logo here
Presenters
GIREESH PUNATHIL
• Software Engineers @ IBM
• Focused on cloud-native Java
technologies
• Based in the India and USA
RICH HAGARTY
@rhagarty8
@gireeshpunam
GIDS_15FactorWorkshop.pdf
What does the Cloud offer?
Co$t Speed
Speed
Speed
Speed
Speed
Speed
Resiliency
Innovation
Scalability
@gracejansen27
GIDS_15FactorWorkshop.pdf
12 Factor Apps
@gracejansen27
12 Factor App Methodology
https://12factor.net/
The original 12 factors:
1. Codebase
2. Dependencies
3. Configuration
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
https://12factor.net/
Revised 15 factors
1. One Codebase, one application
2. API first
3. Dependency management
4. Design, build, release, and run
5. Configuration, credentials and code
6. Logs
7. Disposability
https://www.oreilly.com/library/view/beyond-the-twelve-factor/9781492042631/
8. Backing services
9. Environment parity
10. Administrative processes
11. Port binding
12. Stateless processes
13. Concurrency
14. Telemetry
15. Authentication and authorization
Revised 15 factors
1. One Codebase, one application
2. API first
3. Dependency management
4. Design, build, release, and run
5. Configuration, credentials and code
6. Logs
7. Disposability
https://www.oreilly.com/library/view/beyond-the-twelve-factor/9781492042631/
8. Backing services
9. Environment parity
10. Administrative processes
11. Port binding
12. Stateless processes
13. Concurrency
14. Telemetry
15. Authentication and authorization
The Original
12 Factors
@gracejansen27
1. One codebase, one application
Production
Staging
Q/A
DevSecOps
Developer
Codebase
Deploys
1. CodeBase
@gracejansen27
1. One codebase, one application
1. CodeBase
Production
Staging
Q/A
DevSecOps
Developer
Codebase
Deploys
@gracejansen27
3. Dependency management
2. Dependencies
Application Source
Code
Makes use of…
@gracejansen27
3. Dependency management
2. Dependencies
Application Source
Code
Makes use of…
@gracejansen27
4. Design, build, release, run
5. Build, release, run
CI/CD
Design Build Release Run
@gracejansen27
4. Design, build, release, run
5. Build, release, run
CI/CD
Design Build Release Run
@gracejansen27
5. Configuration, credentials and
code
3. Configuration
Application
Uses…
@gracejansen27
5. Configuration, credentials and
code
3. Configuration
Application
Uses…
https://openliberty.io/guides/microprofile-config.html
@gracejansen27
6. Logs
11. Logs Message
Broker
Interested
Service
Interested
Service
Logger
@gracejansen27
6. Logs
11. Logs Message
Broker
Interested
Service
Interested
Service
Logger
@gracejansen27
7. Disposability
9. Disposability
Carl the Cat
Chickens Pet
VS
@gracejansen27
3 4
1
5
2
6
7
7. Disposability
9. Disposability
Carl the Cat
https://openliberty.io/guides/microprofile-fallback.html
@gracejansen27
3 4
1
5
2
6
7
Chickens Pet
VS
8. Backing Services
4. Backing Services
Backing
Service
Application
Backing
Service
Backing
Service
Backing
Service
@gracejansen27
8. Backing Services
4. Backing Services
Backing
Service
Application
Backing
Service
Backing
Service
Backing
Service
@gracejansen27
9. Environmental parity
10. Dev/Prod Parity
Development Q/A Production
= =
@gracejansen27
9. Environmental parity
10. Dev/Prod Parity
Development Q/A Production
= =
https://openliberty.io/guides/microshed-testing.html
@gracejansen27
10. Administrative processes
12. Admin Processes
https://openliberty.io/guides/kubernetes-intro.html
11. Port Binding
7. Port Binding
Service A Service B Service C
http://<a_dns>:3030 http://<another_dns>:4040 http://<som_other_dns>:5050
@gracejansen27
11. Port Binding
7. Port Binding
Service A Service B Service C
http://<a_dns>:3030 http://<another_dns>:4040 http://<som_other_dns>:5050
12. Stateless processes
6. Processes
Process A
Process B Process C Process D
12. Stateless processes
6. Processes
Process A
Process B Process C Process D
https://openliberty.io/guides/rest-intro.html
13. Concurrency
8. Concurrency
Web.1
Web.2
Worker.1
Worker.2
Worker.3
Worker.4
Clock.1
Workload diversity (process types)
Scale
(running
processes)
@gracejansen27
13. Concurrency
8. Concurrency
Web.1
Web.2
Worker.1
Worker.2
Worker.3
Worker.4
Clock.1
Workload diversity (process types)
Scale
(running
processes)
@gracejansen27
Thriving in the
cloud through
the revised 15
factors
@gracejansen27
2. API first
NEW
Application Source
Code
Feedback
2. API first
NEW
Application Source
Code
Feedback
https://openliberty.io/guides/microprofile-openapi.html
14. Telemetry
NEW
Application
14. Telemetry
NEW
Application
https://openliberty.io/guides/microprofile-metrics.html https://openliberty.io/guides/microprofile-health.html
15. Authentication and
authorization
NEW
Application
Authorised
User
Unauthorised
User
RBAC
verification
15. Authentication and
authorization
NEW
Application
Authorised
User
Unauthorised
User
RBAC
verification
https://openliberty.io/guides/microprofile-
jwt.html
@gracejansen27
Public or Private Cloud
App
Services
(database,
registry, …)
15-Factor App
App
Artefact repo
Image repo
Public or Private Cloud
App
Services
(database,
registry, …)
1. One Codebase,
One Application
15-Factor App
3. Dependency Management
5. Configuration,
Credentials & Code
8. Backing services
4. Design, Build, release, run 11. Stateless Processes
App
11. Port binding
13. Concurrency
7. Disposability
9. Environmental
parity
6. Logs
10. Admin process
Artefact repo
Image repo
2. API First
14. Telemetry
15. Authentication
& Authorization
Public or Private Cloud
App
Services
(database,
registry, …)
1. One Codebase,
One Application
15-Factor App
3. Dependency Management
5. Configuration,
Credentials & Code
8. Backing services
4. Design, Build, release, run 11. Stateless Processes
App
11. Port binding
13. Concurrency
7. Disposability
9. Environmental
parity
6. Logs
10. Admin process
Artefact repo
Image repo
2. API First
14. Telemetry
15. Authentication
& Authorization
Helpful OSS
tools and
technologies
Jakarta EE
© 2021 IBM Corporation
https://jakarta.ee
Open Source Cloud
Native Java:
Community-Driven
Collaboration
javax.* -> jakarta.*
Jakarta EE or Java EE
MicroProfile
© 2021 IBM Corporation
https://microprofile.io
What is
MicroProfile?
● MicroProfile is an open-source community
specification for building Java microservices
● A community of individuals, organizations,
and vendors collaborating within an open
source (Eclipse) working group to bring API
optimized for building microservices to the
Java community
microprofile.io
© 2021 IBM Corporation
MicroProfile
Contributors
© 2021 IBM Corporation
MicroProfile
Vendors/Implementations
© 2021 IBM Corporation
MicroProfile 5.0
Stack Reactive
Streams
Operators 2.0
Reactive
Messaging 2.0
GraphQL 1.1
Context
Propagation
1.3
Standalone Projects
LRA 1.0
© 2021 IBM Corporation
https://developer.ibm.com/components/open-liberty/series/what-is-
microprofile/
Jakarta EE
JSON-B 2.0
Jakarta EE
JSON-P 2.0
Jakatra EE
CDI 3.0
Config 3.0
Fault
Tolerance 4.0
JWT
Propagation
2.0
Health
4.0
Metrics 4.0
Open Tracing
3.0
Open API 3.0
Jakatra EE
JAX-RS 3.0
Rest Client
3.0
Open Liberty
© 2021 IBM Corporation
Open Liberty
© 2021 IBM Corporation
Open Liberty 5th
Birthday!
© 2021 IBM Corporation
Focus on code
Easy to make fast and iterative changes
Easy to write tests
True-to-production testing (as much as possible)
Ready for containers
Not-in-your-way tools and flexibility
Open Liberty Overview
© 2021 IBM Corporation
Developer Experience: dev mode
• Boosts developer
productivity
• Immediate feedback for
code and config changes
• No re-build necessary
mvn liberty:dev
© 2021 IBM Corporation
https://developer.ibm.com/tutorials/achieve-rapid-iterative-cloud-native-application-development/
<feature>servlet-4.0</feature>
<feature>jsf-2.3</feature>
Just Enough Runtime
You control which features are loaded into each Liberty instance
Kernel
servlet-4.0
http-2.0 appmgr
jsp-2.3 jsf-2.3
Java EE
© 2021 IBM Corporation
API Support
• First shipped in WAS 8.5 in 2012
• Servlet + JSP + JPA
• Web Profile 6 in 2014
• Java EE 7 in 2016 – first commercial
product to certify
• Java EE 8 in 2018 – first to certify
• Jakarta EE 8 in 2019 – first to certify
• Jakarta EE 9 in 2021 – first vendor
compatible implementation
• Eclipse MicroProfile – first to deliver 1.0-
1.4, 2.0-2.1, 3.0, 4.0, 5.0
© 2021 IBM Corporation
Developer productivity
Repositories Build
IDEs
Dev Mode
APIs Testing
© 2021 IBM Corporation
66
Kubernetes optimized
• Deliver faster without costly
tuning exercises
• Get optimal performance even
as the environment changes
• Simple Operator-based deploy
and day-2 operations experience
• Supported production-ready
images
• APIs for Kubernetes integration
• Container-based usage tracking
Open Liberty Guides
Open Liberty Guides https://openliberty.io/guides/
Workshop Platform
Skills Network Labs
70
© 2021 IBM Corporation
Summary
Summary:
• Twelve-factor applications = great start
• But… to thrive in the cloud, we need to look beyond the 12 factors
• 3 Extra Factors:
• API First, Telemetry and Authentication & Authorisation (Security)
• No excuses!
• Lots of open-source tools and technologies available to help
• Action: Evaluate your own applications against these 15 factors and consider
what you could do to enable them to truly thrive in the cloud
Useful Resources
• https://openliberty.io/blog/2019/09/05/12-factor-
microprofile-kubernetes.html
• https://developer.ibm.com/articles/creating-a-12-factor-
application-with-open-liberty/
• https://developer.ibm.com/articles/15-factor-applications/
• https://github.com/OpenLiberty/open-liberty-deep-dive
74
Links and Materials
MicroProfile
• MicroProfile Starter: https://start.microprofile.io/
• What is MicroProfile?
https://developer.ibm.com/components/open-
liberty/series/what-is-microprofile/
• MicroProfile Homepage:
https://projects.eclipse.org/proposals/eclipse-microprofile
Open Liberty
• Open Liberty Starter: https://openliberty.io/start/
• Open Liberty Site: https://openliberty.io/
• Open Liberty Guides: https://openliberty.io/guides
• Open Liberty Docs: https://openliberty.io/docs
Other Useful Links
• Microshed Homepage: https://microshed.org/
• Testcontainers Homepage: https://www.testcontainers.org/
• Jakarta EE Homepage: https://jakarta.ee/
All Open Source!
© 2021 IBM Corporation
Connect with us
https://www.linkedin.com/company/openlibertyio/ https://twitter.com/OpenLibertyIO
Thank You!
Questions?
rich.hagarty@ibm.com
@rhagarty8
https://www.linkedin.com/in/rhagarty/
76

More Related Content

PPTX
BuildStuffConf Going beyond the 12 factors
PPTX
Devoxx Ukraine - Going beyond the 12 factors
PPTX
JCON_15FactorWorkshop.pptx
PPTX
SwissJUG_15_factor_app.pptx
PPTX
Thriving in the cloud: Going beyond the 12 factors
PPTX
Docker12 factor
PDF
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
PDF
JavaOne 2015: 12 Factor App
BuildStuffConf Going beyond the 12 factors
Devoxx Ukraine - Going beyond the 12 factors
JCON_15FactorWorkshop.pptx
SwissJUG_15_factor_app.pptx
Thriving in the cloud: Going beyond the 12 factors
Docker12 factor
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
JavaOne 2015: 12 Factor App

Similar to GIDS_15FactorWorkshop.pdf (20)

PDF
.NET Cloud-Native Bootcamp
PPTX
SAP Inside Track Singapore 2014
PDF
Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
PDF
Twelve-Factor App: Software Application Architecture
PPTX
Breaking the Monolith
PDF
Webcast urbancodemobiltomainframe
PPT
Java Development on Bluemix
PPTX
App Mod 01: Moving existing apps to the cloud
PDF
Transform Digital Business with DevOps
PDF
12-factor-jruby
PDF
Codecoon - A technical Case Study
PDF
.NET Cloud-Native Bootcamp- Los Angeles
PDF
Cloud Foundry May 1 2014
PDF
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
PPTX
Delivering Applications Continuously to Cloud
PDF
PDF
IBM Bluemix Tech Meetup 18-02-2015
PPTX
Twelve Factor - Designing for Change
PPTX
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
PPTX
Advanced Strategies for Testing Responsive Web
.NET Cloud-Native Bootcamp
SAP Inside Track Singapore 2014
Securing Red Hat OpenShift Containerized Applications At Enterprise Scale
Twelve-Factor App: Software Application Architecture
Breaking the Monolith
Webcast urbancodemobiltomainframe
Java Development on Bluemix
App Mod 01: Moving existing apps to the cloud
Transform Digital Business with DevOps
12-factor-jruby
Codecoon - A technical Case Study
.NET Cloud-Native Bootcamp- Los Angeles
Cloud Foundry May 1 2014
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
Delivering Applications Continuously to Cloud
IBM Bluemix Tech Meetup 18-02-2015
Twelve Factor - Designing for Change
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Advanced Strategies for Testing Responsive Web
Ad

More from RichHagarty (9)

PDF
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
PDF
JITServerTalk JCON World 2023.pdf
PDF
javalightspeed-jakartatech-2023.pdf
PDF
Java-light-speed NebraskaCode.pdf
PDF
JITServerTalk Nebraska 2023.pdf
PDF
USAA Mono-to-Serverless.pdf
PDF
Will Microservices Die.pdf
PDF
JITServerTalk-OSS-2023.pdf
PDF
JITServerTalk.pdf
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
JITServerTalk JCON World 2023.pdf
javalightspeed-jakartatech-2023.pdf
Java-light-speed NebraskaCode.pdf
JITServerTalk Nebraska 2023.pdf
USAA Mono-to-Serverless.pdf
Will Microservices Die.pdf
JITServerTalk-OSS-2023.pdf
JITServerTalk.pdf
Ad

Recently uploaded (20)

PDF
Microsoft-365-Administrator-s-Guide_.pdf
PPTX
ANICK 6 BIRTHDAY....................................................
PPTX
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
PDF
Module 7 guard mounting of security pers
PDF
Unnecessary information is required for the
PPTX
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
PDF
PM Narendra Modi's speech from Red Fort on 79th Independence Day.pdf
PPTX
Lesson-7-Gas. -Exchange_074636.pptx
PPTX
PurpoaiveCommunication for students 02.pptx
DOC
EVC毕业证学历认证,北密歇根大学毕业证留学硕士毕业证
PPTX
Unit 8#Concept of teaching and learning.pptx
PDF
IKS PPT.....................................
PPTX
Copy- of-Lesson-6-Digestive-System.pptx
PDF
Presentation on cloud computing and ppt..
PPTX
power point presentation ofDracena species.pptx
PPTX
NORMAN_RESEARCH_PRESENTATION.in education
PPTX
Knowledge Knockout ( General Knowledge Quiz )
PDF
COLEAD A2F approach and Theory of Change
PPTX
3RD-Q 2022_EMPLOYEE RELATION - Copy.pptx
PDF
6.-propertise of noble gases, uses and isolation in noble gases
Microsoft-365-Administrator-s-Guide_.pdf
ANICK 6 BIRTHDAY....................................................
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
Module 7 guard mounting of security pers
Unnecessary information is required for the
Phylogeny and disease transmission of Dipteran Fly (ppt).pptx
PM Narendra Modi's speech from Red Fort on 79th Independence Day.pdf
Lesson-7-Gas. -Exchange_074636.pptx
PurpoaiveCommunication for students 02.pptx
EVC毕业证学历认证,北密歇根大学毕业证留学硕士毕业证
Unit 8#Concept of teaching and learning.pptx
IKS PPT.....................................
Copy- of-Lesson-6-Digestive-System.pptx
Presentation on cloud computing and ppt..
power point presentation ofDracena species.pptx
NORMAN_RESEARCH_PRESENTATION.in education
Knowledge Knockout ( General Knowledge Quiz )
COLEAD A2F approach and Theory of Change
3RD-Q 2022_EMPLOYEE RELATION - Copy.pptx
6.-propertise of noble gases, uses and isolation in noble gases

GIDS_15FactorWorkshop.pdf