SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Cloud Design Patterns
in a microservices world
https://www.miti.cl
OLIVER FIERRO V. – ARQUITECTO DE SOLUCIONES
HT TPS://CL.LINKEDIN.COM/IN/OLIVERFIERRO
https://www.meetup.com/Cloud-Native-Chile
Índice
◦ 12 factors
◦ Concepts of Design Pattern
◦ Micro-monolith
◦ AntiPatterns
◦ Design Patterns in action
◦ Frameworks
12 factors 2
Dependencies
1 Codebase
4 Backing
services
5 Build,
Release, Run
7 Port binding6 Processes
12 Admin
processes
11 Logs
9 Disposability
10 Dev/prod
parity
8
Concurrency
3 Config1. One codebase tracked in revision control, many deploys
2. Explicitly declare and isolate dependencies
3. Store config in the environment
4. Treat backing services as attached resources
5. Strictly separate build and run stages
6. Execute the app as one or more stateless processes
7. Export services via port binding
8. Scale out via the process model
9. Maximize robustness with fast startup and graceful
shutdown
10. Keep development, staging, and production as similar as
possible
11. Treat logs as event streams
12. Run admin/management tasks as one-off processes
Concepts of Design Patterns
Best practices accepted by the industry, applied to the design of
a cloud oriented distributed solution, with the purpose to solve
an especific and recurrent problem.
Micro-monolith
▪ Develop services without having the boundary of the domain or
business capability.
▪ Overcharge of a service with funtionalities from several domains or
busness capabilities.
▪ Mantain a monolithic database without define the bounded context of
the information.
▪ Migrate a SOA service to a Microservice (one to one), only considering
a technology factor.
Anti-Patterns
A very dangerous style
Be carefully with the migration strategy!!
- The services have full access to all objects in the database
- The same team organization, with a new name: cell
Design Patterns in action
Business Domain
• Business capabilities design
• Domain-driven design
Architecture
• Microservices architecture
(paradigm)
• Event-driven architecture
Microservices/Cloud
Business Domain
Architecture
Microservices/Cloud
Design Patterns in action
Business Domain
Business capabilities
Business capabilities design
Domain
Subdomain
Business
Capabilities
Domain 1 Domain 2 Domain 3
Subdomain 1
Subdomain 2
Capability 1
Capability 2
Capability 3
Capability 4
Capability 5
Subdomain 3
Subdomain 4
Capability 6
Capability 7
Capability 8
Capability 9
Subdomain 5
Capability 10
Capability 11
Capability 12
Capability 13
Capability 14
Subdomain 6
Domain-driven design
Bounded
Context 1
Bounded
Context 3
Bounded
Context 2
Business
Capability 1
Bounded
Context 5
Bounded
Context 4
Business
Capability 2
Business Domain
Business capabilities
Domain-driven design
User
Customer
Preferences
Customer
Loyalty
Customer
Campaigns
Marketing
Management
Loyalty
ManagementCustomer
Management
Business Domain
Business capabilities
Business Domain
Domain-driven Design
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
Business Domain
Domain-driven Design
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
Business Domain
Domain-driven Design
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
Architecture
Microservices architecture
1. Identify operations
2. Identify Services
3. Define service API
and collaborations
Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
Architecture
Microservices architecture
Architecture
Event-driven architecture
Architecture
Event-driven architecture
The services use a combination of
notifications, request/response,
and publish/subscribe.
1.- The passenger’s smartphone
sends a notification to request a
pickup.
2.- The Trip Management service
verifies that the passenger’s account
is active by using request/response
to invoke the Passenger Service.
3.- The Trip Management service then creates the trip
and uses publish/subscribe to notify other services
including the Dispatcher, which locates an available
driver.
Microservices/Cloud
Event Sourcing
“All changes to an application state are stored as a sequence of events.”
Martin Fowler
Order state
Flight state
Checkin state
Microservices/Cloud
SAGAS
1. Book a seat on flight F1
from Seattle to London.
2. Book a seat on flight F2
from London to Paris.
3. Book a seat on flight F3
from Paris to Seattle.
4. Reserve a room at hotel
H1 in London.
5.Reserve a room at hotel
H2 in Paris.
Microservices/Cloud
API GATEWAY
La granularidad de las
API’s provistas por los
microservicios es
frecuentemente distinta a
la que requieren los
clientes o consumidores.
Construyo un api Gateway
para cada tipo de cliente.
Microservices/Cloud
BACKEND FOR FRONT END
Microservices/Cloud
API Composition
Microservices/Cloud
ConfigServer
Best Practices
▪ Configuraciones externalizadas
ConfigServer + Repositorio.
◦ Variables de entorno (conexiones a bases de
datos, datos de correo electrónico)
◦ Profiles active (develop, test, production)
▪ Confidencialidad de Variables
Datos confidenciales o sensibles como
secretos (User, Password)
▪ Log externalizado
Escribir en la salida estándar (contenedor)
Logstash (estructura) + Kibana (visualiza)
▪ Services Isolation
Servicios contenerizados (Docker)
Best Practices
▪ Estándar de Interoperabilidad
Verbos HTTP + Rest API (Restful)
• Autodescubrimiento de servicios
Kubernates / Eureka + zulu
• Seguridad de API
Gateway: apikey
Servicio: JSON Web Token / OAUTH
▪ API Status
HealthCheck
▪ Dependencias de librerías externas
Maven
Best Practices
▪ Operaciones de api como interfaz
Swagger (estándar openapi)
▪ Gateway como punto único de acceso
Kong (apikey)
▪ Modelo de datos
Autónomo, No relacional (mongodb)
▪ Inmutabilidad de los servicios
Orientado a contenedores: Docker
▪ Caché inteligente
Memcaché, Redis u otro para acceso rápido
desde la nube pública.
▪ Orientación a Eventos
Mecanismo de integración asíncrono por
evento y/o streaming (Kafka, Pub/Sus, Colas
u otro)
▪ Autoescalabilidad
Definición de mínima y máxima capacidad
automática
Best Practices
swagger interface
Best Practices
swagger interface
https://azure.microsoft.com/en-us/resources/infographics/cloud-design-patterns/
Frameworks
JPA
springboot
springcloud
¿Quienes se motivaron?
Jesús
Rodríguez
Founder - Organizer
Natalia Rivera
Co-Organizer
Oliver Fierro
Co-Organizer
Jonathan
González
Co-Organizer
Cloud Design Patterns
in a microservices world
https://www.miti.cl
OLIVER FIERRO V. – ARQUITECTO DE SOLUCIONES
HT TPS://CL.LINKEDIN.COM/IN/OLIVERFIERRO
https://www.meetup.com/Cloud-Native-Chile

Weitere ähnliche Inhalte

Was ist angesagt?

Serverless with Google Cloud Functions
Serverless with Google Cloud FunctionsServerless with Google Cloud Functions
Serverless with Google Cloud FunctionsJerry Jalava
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App EngineSimon Su
 
A novel building infrastructure as code
A novel building infrastructure as codeA novel building infrastructure as code
A novel building infrastructure as codeYu-Lin Huang
 
Google App Engine Introduction
Google App Engine IntroductionGoogle App Engine Introduction
Google App Engine IntroductionSimon Su
 
Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)Matthew Campbell
 
Google cloud infrastructure workshop
Google cloud infrastructure workshopGoogle cloud infrastructure workshop
Google cloud infrastructure workshopAkash Agrawal
 
Serverless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSServerless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSSeven Peaks Speaks
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps TechnologiesKriangkrai Chaonithi
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute EngineSimon Su
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less opsJoseph Lust
 
Going Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablGoing Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablJoseph Lust
 
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB
 
How to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHow to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHansamali Gamage
 
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...Openbar
 
Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Carlos Mendible
 
Serverless and GraphQL
Serverless and GraphQLServerless and GraphQL
Serverless and GraphQLAssaf Gannon
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudOleg Posyniak
 

Was ist angesagt? (20)

Serverless with Google Cloud Functions
Serverless with Google Cloud FunctionsServerless with Google Cloud Functions
Serverless with Google Cloud Functions
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
 
A novel building infrastructure as code
A novel building infrastructure as codeA novel building infrastructure as code
A novel building infrastructure as code
 
Google App Engine Introduction
Google App Engine IntroductionGoogle App Engine Introduction
Google App Engine Introduction
 
Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)Making Wallstreet talk with GO (GO India Conference 2015)
Making Wallstreet talk with GO (GO India Conference 2015)
 
Google cloud infrastructure workshop
Google cloud infrastructure workshopGoogle cloud infrastructure workshop
Google cloud infrastructure workshop
 
Serverless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSServerless Architecture in Azure and AWS
Serverless Architecture in Azure and AWS
 
Cloud in your Cloud
Cloud in your CloudCloud in your Cloud
Cloud in your Cloud
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps Technologies
 
AWS for web developers
AWS for web developersAWS for web developers
AWS for web developers
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute Engine
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
 
Going Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablGoing Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mabl
 
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
 
Industrial Light & Magic
Industrial Light & MagicIndustrial Light & Magic
Industrial Light & Magic
 
How to create a Function App on Cosmos DB
How to create a Function App on Cosmos DBHow to create a Function App on Cosmos DB
How to create a Function App on Cosmos DB
 
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...
Openbar Kontich // Google Cloud: past, present and the (oh so sweet) future b...
 
Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...
 
Serverless and GraphQL
Serverless and GraphQLServerless and GraphQL
Serverless and GraphQL
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
 

Ähnlich wie CloudDesignPatterns

Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Lucas Jellema
 
Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on BluemixRam Vennam
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxGrace Jansen
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
 
Updates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDSUpdates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDSShapeBlue
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2Raul Chong
 
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDB
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDBMongoDB World 2019: Wipro Software Defined Everything Powered by MongoDB
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDBMongoDB
 
Webinar: Cloud Data Masking - Tips to Test Software Securely
Webinar: Cloud Data Masking - Tips to Test Software Securely Webinar: Cloud Data Masking - Tips to Test Software Securely
Webinar: Cloud Data Masking - Tips to Test Software Securely Skytap Cloud
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceDavid Currie
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerSakari Hoisko
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 

Ähnlich wie CloudDesignPatterns (20)

Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on Bluemix
 
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
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptx
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
 
Updates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDSUpdates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDS
 
IBM - Introduction to Cloudant
IBM - Introduction to CloudantIBM - Introduction to Cloudant
IBM - Introduction to Cloudant
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
 
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDB
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDBMongoDB World 2019: Wipro Software Defined Everything Powered by MongoDB
MongoDB World 2019: Wipro Software Defined Everything Powered by MongoDB
 
Webinar: Cloud Data Masking - Tips to Test Software Securely
Webinar: Cloud Data Masking - Tips to Test Software Securely Webinar: Cloud Data Masking - Tips to Test Software Securely
Webinar: Cloud Data Masking - Tips to Test Software Securely
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 

Mehr von Oliver Fierro

GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...
GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...
GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...Oliver Fierro
 
Serverless and Design Patterns In GCP
Serverless and Design Patterns In GCPServerless and Design Patterns In GCP
Serverless and Design Patterns In GCPOliver Fierro
 
GCP CloudRun Overview
GCP CloudRun OverviewGCP CloudRun Overview
GCP CloudRun OverviewOliver Fierro
 
Study jam 2021 google developers latam - mecanismos de persistencia en gcp
Study jam 2021   google developers latam - mecanismos de persistencia en gcpStudy jam 2021   google developers latam - mecanismos de persistencia en gcp
Study jam 2021 google developers latam - mecanismos de persistencia en gcpOliver Fierro
 
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...Oliver Fierro
 
Gcp pubsub-bestpractices-gdgcloudsantiago
Gcp pubsub-bestpractices-gdgcloudsantiagoGcp pubsub-bestpractices-gdgcloudsantiago
Gcp pubsub-bestpractices-gdgcloudsantiagoOliver Fierro
 
How To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesHow To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesOliver Fierro
 

Mehr von Oliver Fierro (7)

GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...
GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...
GDG Cloud Santiago Chile Tips Certificacion GCP Professional Machine Learning...
 
Serverless and Design Patterns In GCP
Serverless and Design Patterns In GCPServerless and Design Patterns In GCP
Serverless and Design Patterns In GCP
 
GCP CloudRun Overview
GCP CloudRun OverviewGCP CloudRun Overview
GCP CloudRun Overview
 
Study jam 2021 google developers latam - mecanismos de persistencia en gcp
Study jam 2021   google developers latam - mecanismos de persistencia en gcpStudy jam 2021   google developers latam - mecanismos de persistencia en gcp
Study jam 2021 google developers latam - mecanismos de persistencia en gcp
 
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...Bootcamp   gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
Bootcamp gdg cloud scl - introduccion a arquitectura cloud en gcp - oliver ...
 
Gcp pubsub-bestpractices-gdgcloudsantiago
Gcp pubsub-bestpractices-gdgcloudsantiagoGcp pubsub-bestpractices-gdgcloudsantiago
Gcp pubsub-bestpractices-gdgcloudsantiago
 
How To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesHow To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservices
 

Kürzlich hochgeladen

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

CloudDesignPatterns

  • 1. Cloud Design Patterns in a microservices world https://www.miti.cl OLIVER FIERRO V. – ARQUITECTO DE SOLUCIONES HT TPS://CL.LINKEDIN.COM/IN/OLIVERFIERRO https://www.meetup.com/Cloud-Native-Chile
  • 2. Índice ◦ 12 factors ◦ Concepts of Design Pattern ◦ Micro-monolith ◦ AntiPatterns ◦ Design Patterns in action ◦ Frameworks
  • 3. 12 factors 2 Dependencies 1 Codebase 4 Backing services 5 Build, Release, Run 7 Port binding6 Processes 12 Admin processes 11 Logs 9 Disposability 10 Dev/prod parity 8 Concurrency 3 Config1. One codebase tracked in revision control, many deploys 2. Explicitly declare and isolate dependencies 3. Store config in the environment 4. Treat backing services as attached resources 5. Strictly separate build and run stages 6. Execute the app as one or more stateless processes 7. Export services via port binding 8. Scale out via the process model 9. Maximize robustness with fast startup and graceful shutdown 10. Keep development, staging, and production as similar as possible 11. Treat logs as event streams 12. Run admin/management tasks as one-off processes
  • 4. Concepts of Design Patterns Best practices accepted by the industry, applied to the design of a cloud oriented distributed solution, with the purpose to solve an especific and recurrent problem.
  • 5. Micro-monolith ▪ Develop services without having the boundary of the domain or business capability. ▪ Overcharge of a service with funtionalities from several domains or busness capabilities. ▪ Mantain a monolithic database without define the bounded context of the information. ▪ Migrate a SOA service to a Microservice (one to one), only considering a technology factor.
  • 6. Anti-Patterns A very dangerous style Be carefully with the migration strategy!! - The services have full access to all objects in the database - The same team organization, with a new name: cell
  • 7. Design Patterns in action Business Domain • Business capabilities design • Domain-driven design Architecture • Microservices architecture (paradigm) • Event-driven architecture Microservices/Cloud Business Domain Architecture Microservices/Cloud
  • 9. Business Domain Business capabilities Business capabilities design Domain Subdomain Business Capabilities Domain 1 Domain 2 Domain 3 Subdomain 1 Subdomain 2 Capability 1 Capability 2 Capability 3 Capability 4 Capability 5 Subdomain 3 Subdomain 4 Capability 6 Capability 7 Capability 8 Capability 9 Subdomain 5 Capability 10 Capability 11 Capability 12 Capability 13 Capability 14 Subdomain 6
  • 10. Domain-driven design Bounded Context 1 Bounded Context 3 Bounded Context 2 Business Capability 1 Bounded Context 5 Bounded Context 4 Business Capability 2 Business Domain Business capabilities
  • 12. Business Domain Domain-driven Design Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
  • 13. Business Domain Domain-driven Design Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
  • 14. Business Domain Domain-driven Design Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
  • 15. Architecture Microservices architecture 1. Identify operations 2. Identify Services 3. Define service API and collaborations Eric Evans 2003 - Domain-Driven Design - Tackling Complexity in the Heart of Software
  • 18. Architecture Event-driven architecture The services use a combination of notifications, request/response, and publish/subscribe. 1.- The passenger’s smartphone sends a notification to request a pickup. 2.- The Trip Management service verifies that the passenger’s account is active by using request/response to invoke the Passenger Service. 3.- The Trip Management service then creates the trip and uses publish/subscribe to notify other services including the Dispatcher, which locates an available driver.
  • 19. Microservices/Cloud Event Sourcing “All changes to an application state are stored as a sequence of events.” Martin Fowler Order state Flight state Checkin state
  • 20. Microservices/Cloud SAGAS 1. Book a seat on flight F1 from Seattle to London. 2. Book a seat on flight F2 from London to Paris. 3. Book a seat on flight F3 from Paris to Seattle. 4. Reserve a room at hotel H1 in London. 5.Reserve a room at hotel H2 in Paris.
  • 22. La granularidad de las API’s provistas por los microservicios es frecuentemente distinta a la que requieren los clientes o consumidores. Construyo un api Gateway para cada tipo de cliente. Microservices/Cloud BACKEND FOR FRONT END
  • 25. Best Practices ▪ Configuraciones externalizadas ConfigServer + Repositorio. ◦ Variables de entorno (conexiones a bases de datos, datos de correo electrónico) ◦ Profiles active (develop, test, production) ▪ Confidencialidad de Variables Datos confidenciales o sensibles como secretos (User, Password) ▪ Log externalizado Escribir en la salida estándar (contenedor) Logstash (estructura) + Kibana (visualiza) ▪ Services Isolation Servicios contenerizados (Docker)
  • 26. Best Practices ▪ Estándar de Interoperabilidad Verbos HTTP + Rest API (Restful) • Autodescubrimiento de servicios Kubernates / Eureka + zulu • Seguridad de API Gateway: apikey Servicio: JSON Web Token / OAUTH ▪ API Status HealthCheck ▪ Dependencias de librerías externas Maven
  • 27. Best Practices ▪ Operaciones de api como interfaz Swagger (estándar openapi) ▪ Gateway como punto único de acceso Kong (apikey) ▪ Modelo de datos Autónomo, No relacional (mongodb) ▪ Inmutabilidad de los servicios Orientado a contenedores: Docker ▪ Caché inteligente Memcaché, Redis u otro para acceso rápido desde la nube pública. ▪ Orientación a Eventos Mecanismo de integración asíncrono por evento y/o streaming (Kafka, Pub/Sus, Colas u otro) ▪ Autoescalabilidad Definición de mínima y máxima capacidad automática
  • 32. ¿Quienes se motivaron? Jesús Rodríguez Founder - Organizer Natalia Rivera Co-Organizer Oliver Fierro Co-Organizer Jonathan González Co-Organizer
  • 33. Cloud Design Patterns in a microservices world https://www.miti.cl OLIVER FIERRO V. – ARQUITECTO DE SOLUCIONES HT TPS://CL.LINKEDIN.COM/IN/OLIVERFIERRO https://www.meetup.com/Cloud-Native-Chile