SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Microservices&
Docker+DDD+CQRS
By Geovanny Alzate Sandoval
Whatare
Microservices?
2
Benefits
• Resiliency
• Scalability
• Data isolation
• Small teams
• Mix of technologies
• Long-term agility
3
Challenges
• Choosing right size
• Complexity
• Queries
• Data consistency and integrity
• Communication
4
Choosing
patterns&
Technologies
5
Why Docker
Mandatory…?
• Isolation
• Scalability
• Reliability & Resiliency
• Performance
• Saving resources $$$
6
Why .Net Core
• Lightweight & Modularity
• Containers start faster
• Small footprint per Container
• Cross-platform
• Visual Studio & Docker integration
7
Why DDD (Domain Driven Design)
• Do you remember the Right size
challenge?
• Bounded Contexts
• Decoupled subsystems
• Event Driven
• Business understanding
8
Why CQRS (Command and Query Responsibility Segregation)
• Do you remember the Queries
Challenge?
• Scale the read and write sides
independently
• Improved separation of concerns
• Supports multiple denormalized
views
• Enables specialized teams
9
CQRS + Event Sourcing
• Everything is an event!
• Source of truth/Immutable
• Stats, big data, machine learning,
etc.
10
Orchestrators
• Kubernetes
• Docker Swarm
• Mesosphere DC/OS
• Azure Service Fabric
11
Demo!
12
Problem
DUber is a public transport company that matches drivers with users that require a taxi
service in order to move them from one place to another through an App that allows
them to request a service using their current location and picking up the destination on a
map.
The main problems:
• DUber became a pretty popular application and it’s used by
millions of people, but currently, it has scaling problems due to
its monolithic architecture.
• In the rush hours the DUber’s services collapse because the
system can’t support the big amount of requests.
• DUber is facing problems tracking all about the trip, since it
starts until it ends. So user and driver aren’t aware, for instance
when a service is canceled or the driver is on the way, etc.
• Since the current architecture is a monolithic one and the team
is very big, the release process in DUber takes long time,
especially for bugs because before the fix is released, is
necessary to test and redeploy the whole application.
13
Business domain model
14
Bounded Contexts
15
Architecture
16
Monolithicvs.
Microservices
17
Monolithic stats
18
Microservices stats
19
Comparison
Comparisons between the same application, but deployed as Monolithic one and Microservices based.
Monolithic
• Total requests: 1504
• Request/Second: 12.64
• Avg. Response Time: 3.09 secs
• % Errors: 0.6
Microservices
• Total requests: 6239
• Request/Second: 51.99
• Avg. Response Time: 365.5 ms
• % Errors: 0
20
Results
• Efficiency: Microservices one is 314.83 % more efficient than the monolithic one.
• Performance: Microservices one is 8.45x faster than the monolithic one.
• Reliability and resiliency: In this example, Microservices one was 100% reliable and resilient.
21
Q&A
ThankYou!
Geovanny Alzate Sandoval
@vany0114
http://elvanydev.com/

Weitere ähnliche Inhalte

Was ist angesagt?

SQL Server Lecture 1
SQL Server Lecture 1SQL Server Lecture 1
SQL Server Lecture 1
Hazem Torab
 
Thinking in Terms of a Data Center Operating System
Thinking in Terms of a Data Center Operating SystemThinking in Terms of a Data Center Operating System
Thinking in Terms of a Data Center Operating System
Weston Bassler
 
eCommerce Series Part 5 - Enterprise Architecture
eCommerce Series Part 5 - Enterprise ArchitectureeCommerce Series Part 5 - Enterprise Architecture
eCommerce Series Part 5 - Enterprise Architecture
Ashwinee Kumar
 

Was ist angesagt? (14)

SQL Server Lecture 1
SQL Server Lecture 1SQL Server Lecture 1
SQL Server Lecture 1
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Thinking in Terms of a Data Center Operating System
Thinking in Terms of a Data Center Operating SystemThinking in Terms of a Data Center Operating System
Thinking in Terms of a Data Center Operating System
 
Dp sql server
Dp sql serverDp sql server
Dp sql server
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
The Future of Database Development
The Future of Database DevelopmentThe Future of Database Development
The Future of Database Development
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
Megatron Hybrid Cluser Servers
Megatron Hybrid Cluser ServersMegatron Hybrid Cluser Servers
Megatron Hybrid Cluser Servers
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices Architecture
 
Robust Applications in Mesos using External Storage
Robust Applications in Mesos using External StorageRobust Applications in Mesos using External Storage
Robust Applications in Mesos using External Storage
 
REDIS (Remote Dictionary Server)
REDIS (Remote Dictionary Server)REDIS (Remote Dictionary Server)
REDIS (Remote Dictionary Server)
 
High performance java ee with j cache and cdi
High performance java ee with j cache and cdiHigh performance java ee with j cache and cdi
High performance java ee with j cache and cdi
 
eCommerce Series Part 5 - Enterprise Architecture
eCommerce Series Part 5 - Enterprise ArchitectureeCommerce Series Part 5 - Enterprise Architecture
eCommerce Series Part 5 - Enterprise Architecture
 
Sql Server 2014 Hybrid Cloud
Sql Server 2014 Hybrid Cloud  Sql Server 2014 Hybrid Cloud
Sql Server 2014 Hybrid Cloud
 

Ähnlich wie Microservices & Docker + DDD + CQRS

Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007
 

Ähnlich wie Microservices & Docker + DDD + CQRS (20)

Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Achieving scale and performance using cloud native environment
Achieving scale and performance using cloud native environmentAchieving scale and performance using cloud native environment
Achieving scale and performance using cloud native environment
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric Architectures
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architecture
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Cloud Application architecture styles
Cloud Application architecture styles Cloud Application architecture styles
Cloud Application architecture styles
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 
Cambridge Breakfast Seminar
Cambridge Breakfast SeminarCambridge Breakfast Seminar
Cambridge Breakfast Seminar
 
Scaling Your Database in the Cloud
Scaling Your Database in the CloudScaling Your Database in the Cloud
Scaling Your Database in the Cloud
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
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
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 

Kürzlich hochgeladen

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+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
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Kürzlich hochgeladen (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
+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...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

Microservices & Docker + DDD + CQRS

  • 3. Benefits • Resiliency • Scalability • Data isolation • Small teams • Mix of technologies • Long-term agility 3
  • 4. Challenges • Choosing right size • Complexity • Queries • Data consistency and integrity • Communication 4
  • 6. Why Docker Mandatory…? • Isolation • Scalability • Reliability & Resiliency • Performance • Saving resources $$$ 6
  • 7. Why .Net Core • Lightweight & Modularity • Containers start faster • Small footprint per Container • Cross-platform • Visual Studio & Docker integration 7
  • 8. Why DDD (Domain Driven Design) • Do you remember the Right size challenge? • Bounded Contexts • Decoupled subsystems • Event Driven • Business understanding 8
  • 9. Why CQRS (Command and Query Responsibility Segregation) • Do you remember the Queries Challenge? • Scale the read and write sides independently • Improved separation of concerns • Supports multiple denormalized views • Enables specialized teams 9
  • 10. CQRS + Event Sourcing • Everything is an event! • Source of truth/Immutable • Stats, big data, machine learning, etc. 10
  • 11. Orchestrators • Kubernetes • Docker Swarm • Mesosphere DC/OS • Azure Service Fabric 11
  • 13. Problem DUber is a public transport company that matches drivers with users that require a taxi service in order to move them from one place to another through an App that allows them to request a service using their current location and picking up the destination on a map. The main problems: • DUber became a pretty popular application and it’s used by millions of people, but currently, it has scaling problems due to its monolithic architecture. • In the rush hours the DUber’s services collapse because the system can’t support the big amount of requests. • DUber is facing problems tracking all about the trip, since it starts until it ends. So user and driver aren’t aware, for instance when a service is canceled or the driver is on the way, etc. • Since the current architecture is a monolithic one and the team is very big, the release process in DUber takes long time, especially for bugs because before the fix is released, is necessary to test and redeploy the whole application. 13
  • 20. Comparison Comparisons between the same application, but deployed as Monolithic one and Microservices based. Monolithic • Total requests: 1504 • Request/Second: 12.64 • Avg. Response Time: 3.09 secs • % Errors: 0.6 Microservices • Total requests: 6239 • Request/Second: 51.99 • Avg. Response Time: 365.5 ms • % Errors: 0 20 Results • Efficiency: Microservices one is 314.83 % more efficient than the monolithic one. • Performance: Microservices one is 8.45x faster than the monolithic one. • Reliability and resiliency: In this example, Microservices one was 100% reliable and resilient.

Hinweis der Redaktion

  1. Son servicios pequeños, autónomos, independientes y resilientes, donde cada servicio debe implementar una responsabilidad específica en el dominio, es decir no debe mezclar responsabilidades. Cada microservicio tiene su propia db.
  2. Resiliencia: cuando un microservicio falla por cualquier razón (errores temporales) otro microservicio debe ser capaz de responder. Es importante implementar técnicas para manejar errores temporales como, reintentos, circuit breaker,  timeout, fallback, etc. Muchas de estas técnicas son implementadas por los orquestadores, por ejemplo cuando un servicio se cae el orquestador es capaz de levantar otra instancia, o si un nodo se cae el orquestador puede crear otro nodo y levantar las instancias que estaban en ese nodo. Escalabilidad: cada microservicio debe escalar independientemente, a diferencia de las aplicaciones monolíticas donde necesitas escalar el sistema entero. Puedes escalar sólo el microservicio que necesitas y cuando lo necesitas. Aislamiento de datos: ya que cada ms tiene su propia db es mucho más fácil escalar la db o la capa de datos y los cambios relacionados con la estructura e incluso con los datos, tienen menos impacto ya que sólo afectarán una pequeña parte del sistema, lo cual ayuda en la gobernabilidad y mantenibilidad. También te permite tener persistencia poliglota. Equipos pequeños: debido a que cada ms es pequeño y tiene una sola responsabilidad en términos del dominio, cada ms puede tener un equipo pequeño ya que no comparte ni el código ni la db, lo que facilita hacer un cambio o agregar una nueva característica ya que no tiene dependencias con otros microservicios, lo cual favorece la agilidad. Agilidad: dado que los ms son autónomos, son desplegados independientemente lo cual facilita enormemente los releases o soluciones de bugs, a diferencia de las aplicaciones monolíticas donde un bug puede bloquear el reléase entero mientras que se soluciona, se integra, se prueba y se publica, incluso cuando el bug no tiene nada que ver con la nueva característica que se quiere desplegar. Entonces, puedes actualizar un servicio sin tener que desplegar la aplicación completa o deshacer el cambio fácilmente si algo sale mal. Mezcla de Tecnologías: gracias a que cada equipo es pequeño e independiente, podemos tener un rico ecosistema de microservicios, ej: un equipo .Net, otro NodeJS.
  3. Tamaño: cuando se está diseñando un microservicio hay que tener mucho cuidado con su propósito y responsabilidad, porque de eso va a depender que nuestro ms sea consistente y autónomo, no debe ser ni muy grande ni muy pequeño. Complejidad: a diferencia de las app monolíticas donde lidias sólo con una pieza grande de software, en una arquitectura de ms tienes que lidiar con un montón. Mientras que en una app monolítica una operación pude interactuar con un servicio o incluso ninguno, en una arquitectura de ms, una operación puede interactuar con un montón de servicios, entonces tenemos que manejar cosas como: comunicación entre cliente y ms, comunicación entre ms, coordinación, manejo de errores, compensación de transacciones, etc. Además los microservicios requieren más esfuerzo en gobernabilidad. Consultas: ya que cada ms tiene su propia db, no podemos simplemente hacer un query uniendo tablas, la información está en diferentes dbs e incluso cada db puede ser de diferente tipo. Consistencia e integridad: uno de los grandes retos de los ms es mantener los datos consistentes. Si necesitas mantener una transacción entre múltiples ms no puedes usar simplemente un ACID transaction, porque los datos están distribuidos en diferentes servidores. La mejor opción es usar Compensación de Transacciones. Las transacciones distribuidas, como 2PC, tampoco son una buena opción porque muchas db modernas (NoSQL) no lo soportan, además son bloqueantes y dependen de terceros como Oracle, IBM, etc. El teorema de CAP dice que en una base de datos distribuida es imposible garantizar disponibilidad y consistencia al mismo tiempo, hay que elegir una de las dos, normalmente la mejor opción es elegir disponibilidad. Es decir, si estás usando una estrategia bloqueante como 2PC no estás garantizando disponibilidad por el tiempo en que los recursos están bloqueados y si usas compensación de transacciones no estás siendo consistente por el delay de las undo operations. Comunicación: comunicación entre clientes y ms, o entre ms puede llegar a ser muy compleja, por ejemplo la autenticación de las peticiones, el protocolo usado, HTTP o AMQP, etc.
  4. Explicar qué es una imagen y qué es un container. Isolation: ya que una imagen es inmutable una vez creada, hace que un ambiente sea el mismo sin importar en dónde esté desplegado, esto quiere decir que estoy garantizando que mi aplicación va a funcionar igual independientemente del ambiente o de la máquina. No más Works on mi machine. Escalabilidad: podemos escalar rápidamente simplemente creando containers, ya que un container representa un único proceso. Confiabilidad y Resiliencia: con la ayuda de un orquestador, si tienes 5 instancias y una falla el orquestador creará otro container para replicar el proceso que falló. Performance: Docker containers son más rápidos comparados con máquinas virtuales, ya que no necesitan hacer uso de todo el SO ya que sólo usan el Kernel. Esto hace además que los containers puedan iniciar rápidamente. Ahorro de recursos: en un ambiente de desarrollo. Evita que los desarrolladores pierdan tiempo configurando su ambiente.
  5. Lightweight & Modularity: NO monolítico. .Net Core => Windows Nano Server/Linux images (LIVIANAS, no incluyen SDK) .Net Framework => Windows Server Core (INCLUYE Full .Net Framework) Containers start faster: Imágenes más livianas = descarga más rápida Small footprint: imagenes más pequeñas = más densidad/más containers por hardware (VM usualmente) Cross-platform: .Net Core => Windows & Linux .Net Framework => solo windows
  6. Explicación DDD Bounded Context: un contexto significa una responsabilidad específica, entonces un bounded context es una responsabilidad específica con unos límites explícitos. DDD nos ayuda a tener nuestro sistema desacoplado y consistente
  7. CQRS es un patrón arquitectónico que consiste en dividir la implementación de comandos y queries para que sean independientes.
  8. Es el write model (command side) de nuestra implementación de CQRS. Memento Pattern.
  9. Por qué un orquestador: Uno de los grandes retos de una app basada en ms es la complejidad. Si solo tenemos un par de ms probablemente no sea un problema, pero si tenemos docenas o cientos de ms y miles de instancias de esos ms, podría ser una tarea muy compleja de administrar. Un orquestador nos ayuda a manejar los recursos eficientemente, nos brinda alta disponibilidad, escalar, resiliencia, monitoreo, load balancing, etc. Entonces la idea de usar un orquestador es deshacernos de esos retos de infraestructura y enfocarnos solamente en dar valor al negocio resolviendo problemas de negocio.
  10. As you can see DUber is facing problems related to scalability, availability, agility and tracking business objects/workflows. So, we’re going to tackling those problems with a Microservice architecture helped by DDD, CQRS, Docker and Azure Service Fabric mainly, but first, we’re going to start analyzing the problem making a business domain model helped by DDD.