SlideShare una empresa de Scribd logo
1 de 27
Creasoft.dev 2021
Intro to Cloud Native
Young Suk Ahn Park / MSEng
Jan 2021
Creasoft.dev 2021
About this deck
What is the purpose of this deck?
To provide a high level introduction to
the Cloud Native App concepts.
Who is the target audience?
Team leads and lead engineers.
No prior exposure to cloud native
required.
Outline
1. Traditional Application
2. Cloud Promise & Benefits
3. Moving Toward Cloud
a. Toward Cloud Native
b. The Twelve Factor App
c. Beyond Twelve Factors
d. Microservices
Creasoft.dev 2021
Traditional Application (sans-Cloud)
MONOLITH
Data Store
E
S
B
Manage Everything!
1. Required teams to specialize by process &
layer
2. Everyone worked on single mega app/repo
3. Architecture tended toward tightly coupled
components (sync)
4. Apps scaled vertically: bigger memory,
faster processor, and more threads
5. Apps are responsible for operations
support such as log management,
monitoring, alerting, scheduling
Creasoft.dev 2021
Traditional Application - Pain Points
Practice Pain Points
Specialize teams by process
& layer
Time consuming, error prone hands-offs between teams.
Inefficiency handling service outage. Culture of blaming.
Single mega app, single repo No technology freedom. Slow Development Life Cycle.
Tightly coupled components Rigid architecture, difficult to modify and evolve.
App scaled vertically Costly, complex, SPOF. There is limit to vertical scale.
App responsible for operative
support
Bloated code. Low development speed. Saturated with non-
core domain logics.
Creasoft.dev 2021
Enters
Cloud
Creasoft.dev 2021
The Cloud Promise
Abstracted Infrastructure
1. Team can can specialize by domain and
own most of the processes & layers
2. Team manages smaller apps/repos
3. Apps can swap backing services: DB,
queue, etc.
4. Apps scaled horizontally: just add more
nodes
5. Infrastructure is responsible for log
management & other operation support
SERV-
ICE
Data
Store
SERV-
ICE
Data
Store
SERV-
ICE
Data
Store
App App
Creasoft.dev 2021
Cloud Benefits
Faster Development cycle
under unified team
Automation of build and deploy processes.
Infrastructure management offloaded to provider.
Better Technology Options No need to tie to a single language. Broad range of
services to choose from.
Achievable NFRs Security, Reliability, Scalability provided by the Cloud
Platform.
Focus on Core Domain Mix and match non-core services from the provider.
Lower Cost Low maintenance cost. Pay-per-use model: no cost on
idle resources.
Creasoft.dev 2021
Fulfil the Promise!
You need to work to obtain the benefits!
Your apps need to follow certain principles.
Creasoft.dev 2021
“The cloud is about
HOW you do
computing, not WHERE
you do computing”
- Paul Maritz
Creasoft.dev 2021
Towards Cloud
THE CLOUD
Lift and Shift
Creasoft.dev 2021
DEVELOPMENT OPERATIONS
TOOLS
PRACTICES
Towards Cloud Native
Use Tools,
Apply Cloud
Practices
Creasoft.dev 2021
TOOLS
PRACTICES
Towards Cloud Native
DEV-OPS
Converge Teams,
Evolve
Architecture
Creasoft.dev 2021
DEVELOPMENT OPERATIONS
TOOLS
PRACTICES
Cloud Native elements (non-comprehensive)
● Automate
● Frequent releases
● Managed secrets
● Gitops
● Telemetry
● SLA / SLO
● SRE / RCA
● IaaC
● Manage
dependencies
● Scale out
● Externalize config
● Security upfront
● Microservices
● Observable
design
● Container orchestration
● Pipeline automation
● Autn/Auth
● APM & Logging PAAS
Creasoft.dev 2021
Cloud Native, How Do We Actually Get There?
1. The Twelve-Factor App by Heroku
2. Beyond the Twelve-Factor App, by VMWare
3. Microservice Architecture
Creasoft.dev 2021
The Twelve-Factor App
1. Code base One codebase tracked in revision control, many deploys. E.g. one
single source of truth.
2. Dependencies Explicitly declare and isolate dependencies. E.g. maven.
3. Config Store config in the environment. E.g. K8s ConfigMap, Consul.
4. Backing services Treat backing services as attached resources.
5. Build, release, run Strictly separate build and run stages. No special “back door.”
6. Processes Execute the app as one or more stateless processes.
Creasoft.dev 2021
7. Port binding Export services via port binding. E.g. do not rely on web container.
8. Concurrency Scale out via the process model.
9. Disposability Maximize robustness with fast startup and graceful shutdown.
10. Dev/prod parity Keep development, staging, and production as similar as possible.
11. Logs Treat logs as event streams. E.g. No in-app log file management.
12. Admin processes Run admin/management tasks as one-off processes. Have your
admin logic checked into the repo.
The Twelve-Factor App
Further detail on bolded ones, which we consider needs more discipline.
Creasoft.dev 2021
12FactorApp: 8. Concurrency
● WHAT: Scale out via the process model
○ Not by replacing CPU, adding memory,
increasing threads (“vertical” scaling)
● DOs: Design for horizontal scale
○ Make it horizontally partitionable: sharding
○ Test in multi-pod environment
○ Use eventing for long-running processes
● DONTs: Share or coordinate states across replicas
Creasoft.dev 2021
12FactorApp: 9. Disposability
● WHAT: Maximize robustness with fast startup and
graceful shutdown. Property for elasticity
○ Disposable → they can be started or stopped at a moment’s notice
● DOs: minimize startup time, shut down gracefully
○ Adopt fail-fast design
● DONTs: Implement heavy init. Designs that require
complex shut-down
○ Prime heavy state at boot time: e.g. load cache
Creasoft.dev 2021
12FactorApp: 10. Dev/prod parity
● WHAT: Keep development, staging, and
production as similar as possible
● DOs: keep the gap between development and
production small
○ The time, personnel, tool gap
● DONTs:
○ Delay the release once in dev
○ Maintain special files for specific environment
Creasoft.dev 2021
Beyond the Twelve-Factor App
API first API as a first-class artifact of the development process.
Clear contract removes cross-team dependency. Increases usability
Configuration,
credentials, and
code
Needless to say … Handle credentials with care.
Telemetry Enabling for Observability: Instrumenting application; collecting
performance, domain and health data; logging and alerting.
This is important due to the distributed nature of the system on
cloud.
Authentication and
authorization
Multiple services expose more attack surface.
Security is a must. Authentication and permission rules.
Creasoft.dev 2021
Microservices - Challenges for the Team
1. Need to understand distributed systems
2. Need to understand new tools and technologies
3. Need to understand what patterns to use when building
cloud native applications
Creasoft.dev 2021
Microservices - Hows
1. Breaking the Monolith
2. Operating in the Cloud
3. Using Anti-Corruption Layer
4. Using Strangler Pattern
5. Refactoring common code
6. Implementing for Security and Resiliency
Consider the CAP Theorem: Consistency, High Availability and
Network Partitioning
There is no prescription
for migrating from mono
to microservice
Creasoft.dev 2021
Cloud is not just a nebulous thing
out there.
It’s a proven new way of
developing application that runs
high performing businesses.
Creasoft.dev 2021
Fight your fear of Cloud.
Cloud native means committing to the cloud you chose,
Go all in!
It’s better to have an application that works excessively well
on AWS (or GCP) than a mediocre application that runs
poorly on AWS and Azure and GCP and onprem.
Creasoft.dev 2021
We just touched a tiny surface…
Reach out to us for more details
https://creasoft.dev/en/
info@creasoft.dev
Creasoft.dev 2021
Links
1. The Twelve-Factor App by Heroku
2. Beyond the Twelve-Factor App, by VMWare, 2016
3. Cloud Native, Using Containers, Functions, and Data to Build
Next-Generation Applications, O’Reilly, 2019
Sites
1. Cloud Native
2. Docker
3. Kubernetes
Creasoft.dev 2021
Other Related Concepts
1. Domain Driven Design (DDD)
2. Reactive Model
3. DevOps & System Reliability Engineering practices
4. Chaos Engineering

Más contenido relacionado

La actualidad más candente

Automated Release Pipelines with Azure DevOps
Automated Release Pipelines with Azure DevOpsAutomated Release Pipelines with Azure DevOps
Automated Release Pipelines with Azure DevOps
ProjectCon
 
Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
Patrick Chanezon
 

La actualidad más candente (20)

Availability in a cloud native world - Guidelines for mere mortals v2.0
Availability in a cloud native world - Guidelines for mere mortals v2.0Availability in a cloud native world - Guidelines for mere mortals v2.0
Availability in a cloud native world - Guidelines for mere mortals v2.0
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Fabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experienceFabric8: A free, end-to-end, cloud-native development experience
Fabric8: A free, end-to-end, cloud-native development experience
 
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
KEYNOTE | WHAT'S COMING IN THE NEXT 10 YEARS OF DEVOPS? // ELLEN CHISA, bolds...
 
#SheSharp Conference - Azure DevOps for .NET
#SheSharp Conference - Azure DevOps for .NET#SheSharp Conference - Azure DevOps for .NET
#SheSharp Conference - Azure DevOps for .NET
 
Azure DevOps Day - Kochi
Azure DevOps Day - KochiAzure DevOps Day - Kochi
Azure DevOps Day - Kochi
 
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your doorLFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
LFX Nov 16, 2021 - Find vulnerabilities before security knocks on your door
 
Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1Professional Cloud DevOps Engineer - Study Group - Week 1
Professional Cloud DevOps Engineer - Study Group - Week 1
 
Cloud Native: what is it? Why?
Cloud Native: what is it? Why?Cloud Native: what is it? Why?
Cloud Native: what is it? Why?
 
Azure DevOps Day - Trivandrum
Azure DevOps Day - TrivandrumAzure DevOps Day - Trivandrum
Azure DevOps Day - Trivandrum
 
Automated Release Pipelines with Azure DevOps
Automated Release Pipelines with Azure DevOpsAutomated Release Pipelines with Azure DevOps
Automated Release Pipelines with Azure DevOps
 
A nova jornada DevOps & SRE
 A nova jornada DevOps & SRE A nova jornada DevOps & SRE
A nova jornada DevOps & SRE
 
Salesforce DX Quickstart for Developers (Barcelona Meetup)
Salesforce DX  Quickstart for Developers (Barcelona Meetup)Salesforce DX  Quickstart for Developers (Barcelona Meetup)
Salesforce DX Quickstart for Developers (Barcelona Meetup)
 
use case ibm k8s_service+devops
use case ibm k8s_service+devopsuse case ibm k8s_service+devops
use case ibm k8s_service+devops
 
DevOps e a transformação digital de aplicações
DevOps e a transformação digital de aplicaçõesDevOps e a transformação digital de aplicações
DevOps e a transformação digital de aplicações
 
Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech development
 
Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShift
 
DevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -CloudbeesDevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -Cloudbees
 

Similar a Intro to Cloud Native _ v1.0en (2021/01)

Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptxChapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
JerianMacatuggal
 
Webinar on deployment automation Xebialabs - 15 sept 2010
Webinar on deployment automation  Xebialabs - 15 sept 2010Webinar on deployment automation  Xebialabs - 15 sept 2010
Webinar on deployment automation Xebialabs - 15 sept 2010
XebiaLabs
 

Similar a Intro to Cloud Native _ v1.0en (2021/01) (20)

The biggest constraint to devops in the cloud has a solution
The biggest constraint to devops in the cloud has a solutionThe biggest constraint to devops in the cloud has a solution
The biggest constraint to devops in the cloud has a solution
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
2022: 6 Cloud-Native App Development Trends to Transform Your Business
2022: 6 Cloud-Native App Development Trends to Transform Your Business2022: 6 Cloud-Native App Development Trends to Transform Your Business
2022: 6 Cloud-Native App Development Trends to Transform Your Business
 
Net3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the CloudNet3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the Cloud
 
Cloud Infrastructure Modernisation Guide
Cloud Infrastructure Modernisation GuideCloud Infrastructure Modernisation Guide
Cloud Infrastructure Modernisation Guide
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor App
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Security Across the Cloud Native Continuum with ESG and Palo Alto Networks
Security Across the Cloud Native Continuum with ESG and Palo Alto NetworksSecurity Across the Cloud Native Continuum with ESG and Palo Alto Networks
Security Across the Cloud Native Continuum with ESG and Palo Alto Networks
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
What is Cloud Native Explained?
What is Cloud Native Explained?What is Cloud Native Explained?
What is Cloud Native Explained?
 
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)Migrating to Cloud: Inhouse Hadoop to Databricks (3)
Migrating to Cloud: Inhouse Hadoop to Databricks (3)
 
Matias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effortMatias Creimerman - Cloud migration and modernization effort
Matias Creimerman - Cloud migration and modernization effort
 
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
Combining Cloud Native & PaaS: Building a Fully Managed Application Platform ...
 
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptxChapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
Chapter VI -CLOUD NATIVE AND EMERGENT TRENDS.pptx
 
Building Cloud capability for startups
Building Cloud capability for startupsBuilding Cloud capability for startups
Building Cloud capability for startups
 
Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Addressing the 8 Key Pain Points of Kubernetes Cluster Management
Addressing the 8 Key Pain Points of Kubernetes Cluster ManagementAddressing the 8 Key Pain Points of Kubernetes Cluster Management
Addressing the 8 Key Pain Points of Kubernetes Cluster Management
 
Cloud First Architecture
Cloud First ArchitectureCloud First Architecture
Cloud First Architecture
 
Webinar on deployment automation Xebialabs - 15 sept 2010
Webinar on deployment automation  Xebialabs - 15 sept 2010Webinar on deployment automation  Xebialabs - 15 sept 2010
Webinar on deployment automation Xebialabs - 15 sept 2010
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Intro to Cloud Native _ v1.0en (2021/01)

  • 1. Creasoft.dev 2021 Intro to Cloud Native Young Suk Ahn Park / MSEng Jan 2021
  • 2. Creasoft.dev 2021 About this deck What is the purpose of this deck? To provide a high level introduction to the Cloud Native App concepts. Who is the target audience? Team leads and lead engineers. No prior exposure to cloud native required. Outline 1. Traditional Application 2. Cloud Promise & Benefits 3. Moving Toward Cloud a. Toward Cloud Native b. The Twelve Factor App c. Beyond Twelve Factors d. Microservices
  • 3. Creasoft.dev 2021 Traditional Application (sans-Cloud) MONOLITH Data Store E S B Manage Everything! 1. Required teams to specialize by process & layer 2. Everyone worked on single mega app/repo 3. Architecture tended toward tightly coupled components (sync) 4. Apps scaled vertically: bigger memory, faster processor, and more threads 5. Apps are responsible for operations support such as log management, monitoring, alerting, scheduling
  • 4. Creasoft.dev 2021 Traditional Application - Pain Points Practice Pain Points Specialize teams by process & layer Time consuming, error prone hands-offs between teams. Inefficiency handling service outage. Culture of blaming. Single mega app, single repo No technology freedom. Slow Development Life Cycle. Tightly coupled components Rigid architecture, difficult to modify and evolve. App scaled vertically Costly, complex, SPOF. There is limit to vertical scale. App responsible for operative support Bloated code. Low development speed. Saturated with non- core domain logics.
  • 6. Creasoft.dev 2021 The Cloud Promise Abstracted Infrastructure 1. Team can can specialize by domain and own most of the processes & layers 2. Team manages smaller apps/repos 3. Apps can swap backing services: DB, queue, etc. 4. Apps scaled horizontally: just add more nodes 5. Infrastructure is responsible for log management & other operation support SERV- ICE Data Store SERV- ICE Data Store SERV- ICE Data Store App App
  • 7. Creasoft.dev 2021 Cloud Benefits Faster Development cycle under unified team Automation of build and deploy processes. Infrastructure management offloaded to provider. Better Technology Options No need to tie to a single language. Broad range of services to choose from. Achievable NFRs Security, Reliability, Scalability provided by the Cloud Platform. Focus on Core Domain Mix and match non-core services from the provider. Lower Cost Low maintenance cost. Pay-per-use model: no cost on idle resources.
  • 8. Creasoft.dev 2021 Fulfil the Promise! You need to work to obtain the benefits! Your apps need to follow certain principles.
  • 9. Creasoft.dev 2021 “The cloud is about HOW you do computing, not WHERE you do computing” - Paul Maritz
  • 10. Creasoft.dev 2021 Towards Cloud THE CLOUD Lift and Shift
  • 11. Creasoft.dev 2021 DEVELOPMENT OPERATIONS TOOLS PRACTICES Towards Cloud Native Use Tools, Apply Cloud Practices
  • 12. Creasoft.dev 2021 TOOLS PRACTICES Towards Cloud Native DEV-OPS Converge Teams, Evolve Architecture
  • 13. Creasoft.dev 2021 DEVELOPMENT OPERATIONS TOOLS PRACTICES Cloud Native elements (non-comprehensive) ● Automate ● Frequent releases ● Managed secrets ● Gitops ● Telemetry ● SLA / SLO ● SRE / RCA ● IaaC ● Manage dependencies ● Scale out ● Externalize config ● Security upfront ● Microservices ● Observable design ● Container orchestration ● Pipeline automation ● Autn/Auth ● APM & Logging PAAS
  • 14. Creasoft.dev 2021 Cloud Native, How Do We Actually Get There? 1. The Twelve-Factor App by Heroku 2. Beyond the Twelve-Factor App, by VMWare 3. Microservice Architecture
  • 15. Creasoft.dev 2021 The Twelve-Factor App 1. Code base One codebase tracked in revision control, many deploys. E.g. one single source of truth. 2. Dependencies Explicitly declare and isolate dependencies. E.g. maven. 3. Config Store config in the environment. E.g. K8s ConfigMap, Consul. 4. Backing services Treat backing services as attached resources. 5. Build, release, run Strictly separate build and run stages. No special “back door.” 6. Processes Execute the app as one or more stateless processes.
  • 16. Creasoft.dev 2021 7. Port binding Export services via port binding. E.g. do not rely on web container. 8. Concurrency Scale out via the process model. 9. Disposability Maximize robustness with fast startup and graceful shutdown. 10. Dev/prod parity Keep development, staging, and production as similar as possible. 11. Logs Treat logs as event streams. E.g. No in-app log file management. 12. Admin processes Run admin/management tasks as one-off processes. Have your admin logic checked into the repo. The Twelve-Factor App Further detail on bolded ones, which we consider needs more discipline.
  • 17. Creasoft.dev 2021 12FactorApp: 8. Concurrency ● WHAT: Scale out via the process model ○ Not by replacing CPU, adding memory, increasing threads (“vertical” scaling) ● DOs: Design for horizontal scale ○ Make it horizontally partitionable: sharding ○ Test in multi-pod environment ○ Use eventing for long-running processes ● DONTs: Share or coordinate states across replicas
  • 18. Creasoft.dev 2021 12FactorApp: 9. Disposability ● WHAT: Maximize robustness with fast startup and graceful shutdown. Property for elasticity ○ Disposable → they can be started or stopped at a moment’s notice ● DOs: minimize startup time, shut down gracefully ○ Adopt fail-fast design ● DONTs: Implement heavy init. Designs that require complex shut-down ○ Prime heavy state at boot time: e.g. load cache
  • 19. Creasoft.dev 2021 12FactorApp: 10. Dev/prod parity ● WHAT: Keep development, staging, and production as similar as possible ● DOs: keep the gap between development and production small ○ The time, personnel, tool gap ● DONTs: ○ Delay the release once in dev ○ Maintain special files for specific environment
  • 20. Creasoft.dev 2021 Beyond the Twelve-Factor App API first API as a first-class artifact of the development process. Clear contract removes cross-team dependency. Increases usability Configuration, credentials, and code Needless to say … Handle credentials with care. Telemetry Enabling for Observability: Instrumenting application; collecting performance, domain and health data; logging and alerting. This is important due to the distributed nature of the system on cloud. Authentication and authorization Multiple services expose more attack surface. Security is a must. Authentication and permission rules.
  • 21. Creasoft.dev 2021 Microservices - Challenges for the Team 1. Need to understand distributed systems 2. Need to understand new tools and technologies 3. Need to understand what patterns to use when building cloud native applications
  • 22. Creasoft.dev 2021 Microservices - Hows 1. Breaking the Monolith 2. Operating in the Cloud 3. Using Anti-Corruption Layer 4. Using Strangler Pattern 5. Refactoring common code 6. Implementing for Security and Resiliency Consider the CAP Theorem: Consistency, High Availability and Network Partitioning There is no prescription for migrating from mono to microservice
  • 23. Creasoft.dev 2021 Cloud is not just a nebulous thing out there. It’s a proven new way of developing application that runs high performing businesses.
  • 24. Creasoft.dev 2021 Fight your fear of Cloud. Cloud native means committing to the cloud you chose, Go all in! It’s better to have an application that works excessively well on AWS (or GCP) than a mediocre application that runs poorly on AWS and Azure and GCP and onprem.
  • 25. Creasoft.dev 2021 We just touched a tiny surface… Reach out to us for more details https://creasoft.dev/en/ info@creasoft.dev
  • 26. Creasoft.dev 2021 Links 1. The Twelve-Factor App by Heroku 2. Beyond the Twelve-Factor App, by VMWare, 2016 3. Cloud Native, Using Containers, Functions, and Data to Build Next-Generation Applications, O’Reilly, 2019 Sites 1. Cloud Native 2. Docker 3. Kubernetes
  • 27. Creasoft.dev 2021 Other Related Concepts 1. Domain Driven Design (DDD) 2. Reactive Model 3. DevOps & System Reliability Engineering practices 4. Chaos Engineering

Notas del editor

  1. Intro to Cloud Native, ver 1.0 (es) -- DESCRIPTION -- A high level introduction to the Cloud Native App concepts. Implications, principles and practices. -- TAGS -- 12 factor apps, cloud, cloud native, container, development, devops, docker, kubernetes, microservices, orchestration, software architecture Photo: https://pixabay.com/photos/cloud-finger-smartphone-phone-2537777/
  2. Let’s start by examining the traditional monolith application. Teams: dev, qa, DBA, release, operation
  3. SPOF: Single Point of Failure
  4. Image: https://pixabay.com/vectors/cloud-cloud-computing-3331240/ CI/CD: https://favpng.com/png_download/rxv15DAX
  5. https://unsplash.com/photos/K-Iog-Bqf8E
  6. Often, we omit the “lift” step and attempt to just deploy the same application in the cloud.
  7. Iaac: Infrastructure as a Code
  8. Add examples.
  9. Service should be based on SLA’s
  10. Skipping the benefits, so much has been said about it. Additional knowledge: for the cloud: Container, container orchestration Security (OIDC), secret management, circuit breaker, Distributed Logging, Eventing, CQRS, Functions & Lambdas Gateways, Service Mesh,
  11. https://www.thoughtworks.com/radar/techniques/generic-cloud-usage