SlideShare una empresa de Scribd logo
1 de 34
October 4th, 5th & 6th 2018.NET Conf AR v2018
Microservicios .NET: Arquitectura para
Aplicaciones .NET Contenerizadas
Germán Küber
.Net Developer
CloudX
Aplicación de referencia eShopOnContainers - Arquitectura
Ordering microservice
Catalog microservice
eShop WebApp MVC
ASP.NET Core MVC
Identity microservice (STS+users)
eShop SPA Web app
TypeScript/Angular 4
eShop mobile app
Xamarin.Forms
C#
xPlat. OS:
iOS
Android
Windows
Docker Host
eShop traditional Web app
HTML
SQL Server db
Client apps
Basket microservice
Redis cache
Marketing microservice
MongoDB /
CosmosDB
SQL Server DB
SQL Server db
SQL Server db
Location microservice
MongoDB /
CosmosDB
Ordering.API
GracePeriod worker Svc.
October 4th, 5th & 6th 2018.NET Conf AR v2018
Arquitectura externa vs arquitectura interna y
patrones de diseño
Arquitectura Externa por
Aplicación
Arquitectura interna por
Microservicio
October 4th, 5th & 6th 2018.NET Conf AR v2018
Entorno de desarrollo para aplicaciones Docker
October 4th, 5th & 6th 2018.NET Conf AR v2018
Agregar soporte Docker a nuestras Aplicaciones
October 4th, 5th & 6th 2018.NET Conf AR v2018
Ejecutando y depurando una aplicación multi-
contenedor con Visual Studio
October 4th, 5th & 6th 2018.NET Conf AR v2018
Multi contenedor con
docker-compose.yml
October 4th, 5th & 6th 2018.NET Conf AR v2018
Creando un microservicio CRUD simple para datos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Contenedor de microservicio CRUD/orientado a datos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Implementando un microservicio CRUD
simple con ASP.NET Core
October 4th, 5th & 6th 2018.NET Conf AR v2018
Connection String desde Docker Compose
October 4th, 5th & 6th 2018.NET Conf AR v2018
Comunicación entre microservicios
October 4th, 5th & 6th 2018.NET Conf AR v2018
Eventos de integración
October 4th, 5th & 6th 2018.NET Conf AR v2018
Interfaz de un BUS de eventos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Suscribiéndose a eventos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Publicando eventos a través del bus de
eventos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Microservicio CQRS
Microservicio de pedidos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Consultas en (CQRS)
October 4th, 5th & 6th 2018.NET Conf AR v2018
CQRS
La clase
Comando
Procesando un comando dentro de un microservicio
CQRS con cola de mensajes externos
October 4th, 5th & 6th 2018.NET Conf AR v2018
Capas en un microservicio DDD
October 4th, 5th & 6th 2018.NET Conf AR v2018
Un modelo de dominio como un microservicio
• Misma Identidad múltiples Bounded
Contexts (Microservicios)
• Entidades modeladas en cada Microservicio
• La Entidad debe implementar
comportamiento
• Los métodos de la Entidad resguardan sus
invariantes
October 4th, 5th & 6th 2018.NET Conf AR v2018
Patrón Agregado
October 4th, 5th & 6th 2018.NET Conf AR v2018
Patrón Agregado
October 4th, 5th & 6th 2018.NET Conf AR v2018
Microservicio
DDD
implementado
con .NET Core
October 4th, 5th & 6th 2018.NET Conf AR v2018
Eventos de Dominio
• Algo que ocurrió en el pasado
• Mejora la separación de responsabilidades
• Facilita la extensibilidad de nuestro dominio
• Eventos que son manejados dentro del mismo Thread
Implementando eventos de dominio
Disparar y enviar eventos
Un
repositorio
por agregado
October 4th, 5th & 6th 2018.NET Conf AR v2018
eShopContainers: Aplicación de
microservicios de referencia
October 4th, 5th & 6th 2018.NET Conf AR v2018
Gracias!!!
http://germankuber.com.ar
@GermanKuber
German.Kuber@Outlook.com
Germán Küber

Más contenido relacionado

La actualidad más candente

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in DeltaDatabricks
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webMaritzaD
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
Customer Presentation - Financial Services Organization
Customer Presentation - Financial Services OrganizationCustomer Presentation - Financial Services Organization
Customer Presentation - Financial Services OrganizationSplunk
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introductionejlp12
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Chapter1 introduction
Chapter1 introductionChapter1 introduction
Chapter1 introductionDinesh K
 
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data modelHackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data modelPascalDesmarets1
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Jelena Zanko
 
Apache 핵심 프로젝트 camel 엿보기
Apache 핵심 프로젝트 camel 엿보기Apache 핵심 프로젝트 camel 엿보기
Apache 핵심 프로젝트 camel 엿보기Hwang Sun Oh Kelly
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...GeoSolutions
 
Introduction to Apache Flink
Introduction to Apache FlinkIntroduction to Apache Flink
Introduction to Apache Flinkdatamantra
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOTVMware Tanzu
 

La actualidad más candente (20)

Introdução APIs RESTful
Introdução APIs RESTfulIntrodução APIs RESTful
Introdução APIs RESTful
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in Delta
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones web
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
Customer Presentation - Financial Services Organization
Customer Presentation - Financial Services OrganizationCustomer Presentation - Financial Services Organization
Customer Presentation - Financial Services Organization
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Voldemort Nosql
Voldemort NosqlVoldemort Nosql
Voldemort Nosql
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Chapter1 introduction
Chapter1 introductionChapter1 introduction
Chapter1 introduction
 
React Workshop
React WorkshopReact Workshop
React Workshop
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data modelHackolade Tutorial - part 13 - Leverage a Polyglot data model
Hackolade Tutorial - part 13 - Leverage a Polyglot data model
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20
 
Apache 핵심 프로젝트 camel 엿보기
Apache 핵심 프로젝트 camel 엿보기Apache 핵심 프로젝트 camel 엿보기
Apache 핵심 프로젝트 camel 엿보기
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
 
Introduction to Apache Flink
Introduction to Apache FlinkIntroduction to Apache Flink
Introduction to Apache Flink
 
Introduction to HDFS
Introduction to HDFSIntroduction to HDFS
Introduction to HDFS
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
 

Similar a Microservicios net arquitectura para aplicaciones net contenerizadas - net conf

apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays
 
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ....NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...NETFest
 
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...Matias Quaranta
 
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022InfluxData
 
apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays
 
Productising your Microservices as API Products
Productising your Microservices  as API ProductsProductising your Microservices  as API Products
Productising your Microservices as API ProductsWSO2
 
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...ITCamp
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesWSO2
 
AWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala LumpurAWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala LumpurAmazon Web Services
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
Microservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionMicroservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionManning Publications
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택uEngine Solutions
 
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs [apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs WSO2
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka EcosystemGuido Schmutz
 

Similar a Microservicios net arquitectura para aplicaciones net contenerizadas - net conf (20)

apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...
 
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ....NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
 
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...
Cooking serverless recipes with Azure Functions and Azure Cosmos DB - NET Con...
 
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022
Gilmore, Palani [InfluxData] | Use Case: Crypto & Fintech | InfluxDays 2022
 
apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...apidays LIVE Australia - Productising your Microservices as API Products by P...
apidays LIVE Australia - Productising your Microservices as API Products by P...
 
Productising your Microservices as API Products
Productising your Microservices  as API ProductsProductising your Microservices  as API Products
Productising your Microservices as API Products
 
Anatomia deployk8s cir2019
Anatomia deployk8s cir2019Anatomia deployk8s cir2019
Anatomia deployk8s cir2019
 
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...
ITCamp 2018 - Florin Loghiade - Containers in Azure - An Infrastructure persp...
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in Kubernetes
 
AWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala LumpurAWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala Lumpur
 
AWS Startup Insights Singapore
AWS Startup Insights SingaporeAWS Startup Insights Singapore
AWS Startup Insights Singapore
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
Microservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionMicroservices in .NET Core, Second Edition
Microservices in .NET Core, Second Edition
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
 
Aplicaciones distribuidas con Dapr
Aplicaciones distribuidas con DaprAplicaciones distribuidas con Dapr
Aplicaciones distribuidas con Dapr
 
Gab2015 samir arezki_api management
Gab2015 samir arezki_api managementGab2015 samir arezki_api management
Gab2015 samir arezki_api management
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
VISHNU
VISHNUVISHNU
VISHNU
 
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs [apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs
[apidays LIVE HONK KONG] - Building an Integrated Supply Chain for APIs
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 

Más de Germán Küber

Explorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en RustExplorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en RustGermán Küber
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Que son los smart contracts.pptx
Que son los smart contracts.pptxQue son los smart contracts.pptx
Que son los smart contracts.pptxGermán Küber
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesGermán Küber
 
Patrones de diseño en solidity
Patrones de diseño en solidityPatrones de diseño en solidity
Patrones de diseño en solidityGermán Küber
 
Vertical slice architecture
Vertical slice architectureVertical slice architecture
Vertical slice architectureGermán Küber
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesGermán Küber
 
Diamon pattern presentation
Diamon pattern presentationDiamon pattern presentation
Diamon pattern presentationGermán Küber
 
Programación Funcional C#
Programación Funcional C#Programación Funcional C#
Programación Funcional C#Germán Küber
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Germán Küber
 
Un mundo sin if. generics al rescate
Un mundo sin if. generics al rescateUn mundo sin if. generics al rescate
Un mundo sin if. generics al rescateGermán Küber
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresGermán Küber
 

Más de Germán Küber (20)

Explorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en RustExplorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en Rust
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Mev Rapido.pptx
Mev Rapido.pptxMev Rapido.pptx
Mev Rapido.pptx
 
Que son los smart contracts.pptx
Que son los smart contracts.pptxQue son los smart contracts.pptx
Que son los smart contracts.pptx
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 meses
 
Patrones funcionales
Patrones funcionalesPatrones funcionales
Patrones funcionales
 
Patrones de diseño en solidity
Patrones de diseño en solidityPatrones de diseño en solidity
Patrones de diseño en solidity
 
Vertical slice architecture
Vertical slice architectureVertical slice architecture
Vertical slice architecture
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 meses
 
Diamon pattern presentation
Diamon pattern presentationDiamon pattern presentation
Diamon pattern presentation
 
Patrones funcionales
Patrones funcionalesPatrones funcionales
Patrones funcionales
 
Defensive code
Defensive codeDefensive code
Defensive code
 
Programación Funcional C#
Programación Funcional C#Programación Funcional C#
Programación Funcional C#
 
Unit testing consejos
Unit testing   consejosUnit testing   consejos
Unit testing consejos
 
Defensive code C#
Defensive code C#Defensive code C#
Defensive code C#
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 
C sharp 8
C sharp 8C sharp 8
C sharp 8
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.
 
Un mundo sin if. generics al rescate
Un mundo sin if. generics al rescateUn mundo sin if. generics al rescate
Un mundo sin if. generics al rescate
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para Desarrolaldores
 

Último

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Microservicios net arquitectura para aplicaciones net contenerizadas - net conf

  • 1. October 4th, 5th & 6th 2018.NET Conf AR v2018 Microservicios .NET: Arquitectura para Aplicaciones .NET Contenerizadas Germán Küber .Net Developer CloudX
  • 2. Aplicación de referencia eShopOnContainers - Arquitectura Ordering microservice Catalog microservice eShop WebApp MVC ASP.NET Core MVC Identity microservice (STS+users) eShop SPA Web app TypeScript/Angular 4 eShop mobile app Xamarin.Forms C# xPlat. OS: iOS Android Windows Docker Host eShop traditional Web app HTML SQL Server db Client apps Basket microservice Redis cache Marketing microservice MongoDB / CosmosDB SQL Server DB SQL Server db SQL Server db Location microservice MongoDB / CosmosDB Ordering.API GracePeriod worker Svc.
  • 3. October 4th, 5th & 6th 2018.NET Conf AR v2018 Arquitectura externa vs arquitectura interna y patrones de diseño Arquitectura Externa por Aplicación Arquitectura interna por Microservicio
  • 4. October 4th, 5th & 6th 2018.NET Conf AR v2018 Entorno de desarrollo para aplicaciones Docker
  • 5. October 4th, 5th & 6th 2018.NET Conf AR v2018 Agregar soporte Docker a nuestras Aplicaciones
  • 6. October 4th, 5th & 6th 2018.NET Conf AR v2018 Ejecutando y depurando una aplicación multi- contenedor con Visual Studio
  • 7. October 4th, 5th & 6th 2018.NET Conf AR v2018 Multi contenedor con docker-compose.yml
  • 8. October 4th, 5th & 6th 2018.NET Conf AR v2018 Creando un microservicio CRUD simple para datos
  • 9. October 4th, 5th & 6th 2018.NET Conf AR v2018 Contenedor de microservicio CRUD/orientado a datos
  • 10. October 4th, 5th & 6th 2018.NET Conf AR v2018 Implementando un microservicio CRUD simple con ASP.NET Core
  • 11. October 4th, 5th & 6th 2018.NET Conf AR v2018 Connection String desde Docker Compose
  • 12. October 4th, 5th & 6th 2018.NET Conf AR v2018 Comunicación entre microservicios
  • 13. October 4th, 5th & 6th 2018.NET Conf AR v2018 Eventos de integración
  • 14. October 4th, 5th & 6th 2018.NET Conf AR v2018 Interfaz de un BUS de eventos
  • 15. October 4th, 5th & 6th 2018.NET Conf AR v2018 Suscribiéndose a eventos
  • 16. October 4th, 5th & 6th 2018.NET Conf AR v2018 Publicando eventos a través del bus de eventos
  • 17.
  • 18. October 4th, 5th & 6th 2018.NET Conf AR v2018 Microservicio CQRS Microservicio de pedidos
  • 19. October 4th, 5th & 6th 2018.NET Conf AR v2018 Consultas en (CQRS)
  • 20. October 4th, 5th & 6th 2018.NET Conf AR v2018 CQRS
  • 22. Procesando un comando dentro de un microservicio
  • 23. CQRS con cola de mensajes externos
  • 24. October 4th, 5th & 6th 2018.NET Conf AR v2018 Capas en un microservicio DDD
  • 25. October 4th, 5th & 6th 2018.NET Conf AR v2018 Un modelo de dominio como un microservicio • Misma Identidad múltiples Bounded Contexts (Microservicios) • Entidades modeladas en cada Microservicio • La Entidad debe implementar comportamiento • Los métodos de la Entidad resguardan sus invariantes
  • 26. October 4th, 5th & 6th 2018.NET Conf AR v2018 Patrón Agregado
  • 27. October 4th, 5th & 6th 2018.NET Conf AR v2018 Patrón Agregado
  • 28. October 4th, 5th & 6th 2018.NET Conf AR v2018 Microservicio DDD implementado con .NET Core
  • 29. October 4th, 5th & 6th 2018.NET Conf AR v2018 Eventos de Dominio • Algo que ocurrió en el pasado • Mejora la separación de responsabilidades • Facilita la extensibilidad de nuestro dominio • Eventos que son manejados dentro del mismo Thread
  • 31. Disparar y enviar eventos
  • 33. October 4th, 5th & 6th 2018.NET Conf AR v2018 eShopContainers: Aplicación de microservicios de referencia
  • 34. October 4th, 5th & 6th 2018.NET Conf AR v2018 Gracias!!! http://germankuber.com.ar @GermanKuber German.Kuber@Outlook.com Germán Küber

Notas del editor

  1. Arquitectura externa: compuesta por múltiples microservicios, a nivel de orquestadores, y arquitectura física. Arquitectura interna: Independiente de la arquitectura de alto nivel de microservicios que se elija. Pueden/deben utilizar diferentes patrones a lo largo de diferentes microservicios, dependiendo de las necesidades de ste. Pueden estar escritos en diferentes lenguaje o tecnologías Por EJ: CRUD DDD CQRS Arquitectura Basa en Eventos
  2. Desarrollar es igual que en cualquier otro entorno, solo que ahora se probara dentro de Docker (posiblemente será compilada dentro de Docker también) Definimo el fichero Docker de nuestro microservicio, donde configuraremos el entorno, tanto de desarrollo como producción Si la aplicación corre mas de una imagen, debemos descargar todas las imágenes necesarias de nuestro entorno. Puede descargarse haciendo uso del rigistry Modificamos el Docker-compose, donde agregamos nuetro servicio Ejecutamos Docker compose y levantamos todo el entorno de desarrollo o producción Ingresamos a la app para probarla. Subimos los cambios
  3. Desde el punto de vista del diseño, este tipo de microservicios contenerizados es muy simple. Tal vez el problema a resolver sea simple, o tal vez la implementación sea sólo una prueba de concepto. Microservicio Catalogo
  4. Microsoft.AspNetCore.All, se hace referencia a Entity Framework
  5. CQRS y los patrones DDD no son arquitecturas de alto nivel
  6. Usando Dapper como micro ORM para realizar las consultas