SlideShare a Scribd company logo
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

More Related Content

What's hot

Serverless with Google Cloud Functions
Serverless with Google Cloud FunctionsServerless with Google Cloud Functions
Serverless with Google Cloud Functions
Jerry Jalava
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
Simon Su
 
A novel building infrastructure as code
A novel building infrastructure as codeA novel building infrastructure as code
A novel building infrastructure as code
Yu-Lin Huang
 
Google App Engine Introduction
Google App Engine IntroductionGoogle App Engine Introduction
Google App Engine Introduction
Simon 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 workshop
Akash Agrawal
 
Serverless Architecture in Azure and AWS
Serverless Architecture in Azure and AWSServerless Architecture in Azure and AWS
Serverless Architecture in Azure and AWS
Seven Peaks Speaks
 
Cloud in your Cloud
Cloud in your CloudCloud in your Cloud
Cloud in your Cloud
Matthew Campbell
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps Technologies
Kriangkrai Chaonithi
 
AWS for web developers
AWS for web developersAWS for web developers
AWS for web developers
Mirumee Software
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute Engine
Simon 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 ops
Joseph Lust
 
Going Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablGoing Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mabl
Joseph 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
 
Industrial Light & Magic
Industrial Light & MagicIndustrial Light & Magic
Industrial Light & Magic
Amazon Web Services
 
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
Hansamali 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 GraphQL
Assaf 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 Cloud
Oleg Posyniak
 

What's hot (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
 

Similar to 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 SRE
Araf 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 Bluemix
Ram Vennam
 
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
Dun & Bradstreet Cloud Innovation Center
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf 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 Cloud
MongoDB
 
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
Markus Eisele
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptx
Grace 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 monolith
Markus 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.pptx
Grace 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 SDS
ShapeBlue
 
IBM - Introduction to Cloudant
IBM - Introduction to CloudantIBM - Introduction to Cloudant
IBM - Introduction to Cloudant
Francisco González Jiménez
 
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
Raul 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 MongoDB
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
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-Service
David Currie
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
Siva Rama Krishna Chunduru
 
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
Sakari 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
 

Similar to 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...
 

More from 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 GCP
Oliver Fierro
 
GCP CloudRun Overview
GCP CloudRun OverviewGCP CloudRun Overview
GCP CloudRun Overview
Oliver 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 gcp
Oliver 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-gdgcloudsantiago
Oliver 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 microservices
Oliver Fierro
 

More from 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
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

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