SlideShare a Scribd company logo
6
Most read
11
Most read
14
Most read
Microservices using .Net core
Microservices using .Net core
Traditional application approach Microservices application approach
• A microservice application
segregates functionality into
separate smaller services.
• Scales out by deploying each
service independently with
multiple instances across
servers/VMs
• A traditional application has
most of its functionality within a
few processes that are
componentized with layers and
libraries.
• Scales by cloning the app on
multiple servers/VMs
App 1 App 2App 1
• Single monolithic database
• Tiers of specific technologies
Data in Traditional approach Data in Microservices approach
• Graph of interconnected microservices
• State typically scoped to the microservice
• Remote Storage for cold data
Stateful
services
Web presentation
services
Stateless
servicesSQL DB
or
No-SQL
Mobile
apps
Web Tier
Services Tier
Data Tier
Monolithic Databases are
shared across services.
Stateless services
with
separate stores
Each microservice
owns its model/data!
SQL
[…]
Database servers are
usually the bottleneck
Cache Tier
Cache doesn’t help
much for massive data
ingress (Events, IoT, etc.)
Identifying a Domain Model per Microservice or Bounded Context
Ordering Microservice Model
Basket Microservice Model
Identity Microservice Model
Order Buyer
OrderItem
BasketItem
ApplicationUser
Basket
… Address
Catalog Microservice Model
Type
BrandCatalogItem
Focus on:
- Dockerfile & Docker-compose.yml
Debugging Multi-Containers App
- Simple CRUD microservice
vs
DDD microservice
Direct Client-To-Microservice communication
Implementing Asynchronous Event-Driven
communication with an Event Bus
Database
Ordering Microservice
Basket Microservice
Database as
Cache
Service
ServiceUser-Profile Microservice
Web API Service
Database
Backend
UserUpdated event
(Publish Action)
Event Bus
(Publish/Subscribe Channel)
UpdateUser
command
UserUpdated event  Buyer info
UserUpdated event  Buyer info
Eventual consistency across microservices’ data based on event-driven async communication
DB update Event Bus Abstractions/Interface
Event Bus Implementations
RabbitMQ
Azure
Service
Bus
Other:
NServiceBus
MassTransit
etc.
Microservices using .Net core
Focus on:
- Event Bus & messaging
Orchestrator’s Cluster managing microservices/containers
Clusters provide:
• High scalability
• Automatic High Availability and resiliency
• High services density per host
Official Docker Images
https://hub.docker.com
or
Cluster of
Nodes/Hosts
VM
App 1 App 2
My ASP.NET Core Services
My Docker Images
Web
Apps
Mobile
Apps
API
Management
API
Apps
Logic
Apps
Notification
Hubs
Content Delivery
Network (CDN)
Media
Services
HDInsight Machine
Learning
Stream
Analytics
Data
Factory
Event
Hubs
Mobile
Engagement
Biztalk
Services
Hybrid
Connections
Service
Bus
Storage
Queues
Backup
StorSimple
Site
Recovery
Import/Export
SQL
Database
DocumentDB
Redis
Cache
Search
Tables
SQL Data
Warehouse
Azure AD
Connect Health
AD Privileged
Identity Mngt
Operational
Insights
Cloud
Services
Batch
Service
Fabric Visual Studio
Application
Insights
Azure SDK
Team Project
Active
Directory
Multi-Factor
Authentication
Automation
Portal
Key Vault
Store /
Marketplace
VM Image Gallery
& VM Depot
SECURITY &
MANAGEMENT PLATFORM SERVICES HYBRID
OPERATIONS
Microsoft Azure
Azure Container
Service
Function
Apps
Azure Compute Continuum
Ultimate
Control
Rapid
Development
VMs /
VM Scale Sets
VM Extensions
Orchestrators
ACS &
Service Fabric
App Service
&
Azure
Functions
IaaS PaaS
Orchestrator Description Good for Common workloads
Azure Service Fabric is a distributed
systems platform that makes it easy
to package, deploy, and manage
scalable and reliable microservices
a) Stateful svc & Actors
b) Microservices based
on plain processes
c) Microservices based
on containers
Docker Swarm is a clustering and
scheduling tool for Docker containers.
With Swarm, IT administrators and
developers can establish and manage a
cluster of Docker nodes as a single
virtual system
Microservices based on
containers
Kubernetes is an open-source platform
for automating deployment, scaling,
and operations of application
containers across clusters of hosts
Microservices based on
containers
As a datacenter operating system,
DC/OS is itself a distributed system, a
cluster manager and a container
platform
Microservices based on
containers (Including other
Linux containers, not just
Docker)
More mature:
Less mature:
More mature:
Less mature:
More mature:
Less mature:
Azure Product
Azure Service Fabric
Azure Container Service
Docker Swarm
Service Fabric
Production-ready &
Microsoft ecosystem
Mesosphere DC/OS
More mature:
Less mature:
Production-ready &
Linux ecosystem
Easy to get started
Dev/Test and Production
Kubernetes
Production-ready &
Linux ecosystem
aka.ms/MicroservicesEbook aka.ms/MicroservicesArchitecture
Additional subjects covered in the eBook
Domain Driven Design Patterns
• Domain Models (Aggregates, Entity, VO, etc.)
• Simplified CQRS
• Dapper MicroORM for queries
• Commands and Mediator patter
• Domain Events (within the same microservice)
Microservices
• Integration Events (across microservices)
• Multi-container docker-compose.yml
• Swagger w/ Swashbuckle
• Security (Authentication/Authorization) with tokens
from IdentityServer4 wrapping ASP.NET Identity
dot.net/architecture
Microservices using .Net core
Microservices using .Net core

More Related Content

PPTX
The Microservices world in. NET Core and. NET framework
PPTX
Azure CosmosDb
PDF
Introduction to CICD
PPTX
Monolithic and Microservices styles of Architecture
PPSX
Microservices Docker Kubernetes Istio Kanban DevOps SRE
PPTX
Azure fundamentals
PPTX
Microsoft Azure Technical Overview
PDF
Why Microservice
The Microservices world in. NET Core and. NET framework
Azure CosmosDb
Introduction to CICD
Monolithic and Microservices styles of Architecture
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Azure fundamentals
Microsoft Azure Technical Overview
Why Microservice

What's hot (20)

PPTX
MSA ( Microservices Architecture ) 발표 자료 다운로드
PDF
Microsoft Azure Cloud Services
PPTX
Microsoft Azure cloud services
PPTX
Azure Networking (1).pptx
PPTX
Introduction to Microservices
PDF
Microsoft Azure Fundamentals
PPTX
Azure Container Apps
PPS
PDF
Microsoft Azure Security Overview
PPTX
Interop 2018 - Understanding Kubernetes - Brian Gracely
PDF
Deploy Application on Kubernetes
PDF
Microservices Design Patterns
PDF
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
PDF
IT Infrastructure Automation with Ansible
PDF
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
PDF
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
PPTX
Api gateway in microservices
ODP
Kubernetes Architecture
PDF
Microservices in Practice
PPTX
Kubernetes for Beginners: An Introductory Guide
MSA ( Microservices Architecture ) 발표 자료 다운로드
Microsoft Azure Cloud Services
Microsoft Azure cloud services
Azure Networking (1).pptx
Introduction to Microservices
Microsoft Azure Fundamentals
Azure Container Apps
Microsoft Azure Security Overview
Interop 2018 - Understanding Kubernetes - Brian Gracely
Deploy Application on Kubernetes
Microservices Design Patterns
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
IT Infrastructure Automation with Ansible
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
Api gateway in microservices
Kubernetes Architecture
Microservices in Practice
Kubernetes for Beginners: An Introductory Guide
Ad

Similar to Microservices using .Net core (20)

PPTX
Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...
PPTX
Connect your datacenter to Microsoft Azure
PPTX
Microsoft azure pack overview
PPTX
Designing Microservices
PDF
Benefits of the Azure Cloud
PPTX
Microservices in Azure
PDF
KoprowskiT_session1_SDNEvent_WASDforBeginners
PPTX
Containers as Infrastructure for New Gen Apps
PDF
Azure Service Fabric - Hamida Rebai - CCDays
PPTX
Microservices in Azure
PPTX
Service Fabric – building tomorrows applications today
PDF
Microservices for Enterprises
PPTX
Introduction to microservices
PPTX
Exploring microservices in a Microsoft landscape
PPTX
Benefits of the Azure cloud
PPTX
Micro services
PPTX
Perth Azure Usergroup Build 2018 updates
PDF
Monolithic to Microservices Architecture
PPT
Cloud architecture
PPTX
Azure Compute, Networking and Storage Overview
Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...
Connect your datacenter to Microsoft Azure
Microsoft azure pack overview
Designing Microservices
Benefits of the Azure Cloud
Microservices in Azure
KoprowskiT_session1_SDNEvent_WASDforBeginners
Containers as Infrastructure for New Gen Apps
Azure Service Fabric - Hamida Rebai - CCDays
Microservices in Azure
Service Fabric – building tomorrows applications today
Microservices for Enterprises
Introduction to microservices
Exploring microservices in a Microsoft landscape
Benefits of the Azure cloud
Micro services
Perth Azure Usergroup Build 2018 updates
Monolithic to Microservices Architecture
Cloud architecture
Azure Compute, Networking and Storage Overview
Ad

More from girish goudar (10)

PPTX
PPTX
Azure devops
PPTX
DevOps Bootcamp
PPTX
Azure governance
PPTX
GlobalAzureBootCamp 2018
PPTX
Microsoft DevOps - Fast track
PPTX
Deploying .net application using VSTS on ACS in kubernetes
PPTX
Windows server and docker
PPTX
.Net Core, Asp.net Core and Docker
PPTX
Introduction to SharePoint 2013
Azure devops
DevOps Bootcamp
Azure governance
GlobalAzureBootCamp 2018
Microsoft DevOps - Fast track
Deploying .net application using VSTS on ACS in kubernetes
Windows server and docker
.Net Core, Asp.net Core and Docker
Introduction to SharePoint 2013

Recently uploaded (20)

PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Geodesy 1.pptx...............................................
DOCX
573137875-Attendance-Management-System-original
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Sustainable Sites - Green Building Construction
PPTX
additive manufacturing of ss316l using mig welding
PPT
Mechanical Engineering MATERIALS Selection
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
web development for engineering and engineering
PDF
Digital Logic Computer Design lecture notes
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Well-logging-methods_new................
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Operating System & Kernel Study Guide-1 - converted.pdf
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Geodesy 1.pptx...............................................
573137875-Attendance-Management-System-original
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Model Code of Practice - Construction Work - 21102022 .pdf
Sustainable Sites - Green Building Construction
additive manufacturing of ss316l using mig welding
Mechanical Engineering MATERIALS Selection
OOP with Java - Java Introduction (Basics)
web development for engineering and engineering
Digital Logic Computer Design lecture notes
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Lecture Notes Electrical Wiring System Components
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Well-logging-methods_new................
Lesson 3_Tessellation.pptx finite Mathematics
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf

Microservices using .Net core

  • 3. Traditional application approach Microservices application approach • A microservice application segregates functionality into separate smaller services. • Scales out by deploying each service independently with multiple instances across servers/VMs • A traditional application has most of its functionality within a few processes that are componentized with layers and libraries. • Scales by cloning the app on multiple servers/VMs App 1 App 2App 1
  • 4. • Single monolithic database • Tiers of specific technologies Data in Traditional approach Data in Microservices approach • Graph of interconnected microservices • State typically scoped to the microservice • Remote Storage for cold data Stateful services Web presentation services Stateless servicesSQL DB or No-SQL Mobile apps Web Tier Services Tier Data Tier Monolithic Databases are shared across services. Stateless services with separate stores Each microservice owns its model/data! SQL […] Database servers are usually the bottleneck Cache Tier Cache doesn’t help much for massive data ingress (Events, IoT, etc.)
  • 5. Identifying a Domain Model per Microservice or Bounded Context Ordering Microservice Model Basket Microservice Model Identity Microservice Model Order Buyer OrderItem BasketItem ApplicationUser Basket … Address Catalog Microservice Model Type BrandCatalogItem
  • 6. Focus on: - Dockerfile & Docker-compose.yml Debugging Multi-Containers App - Simple CRUD microservice vs DDD microservice
  • 8. Implementing Asynchronous Event-Driven communication with an Event Bus Database Ordering Microservice Basket Microservice Database as Cache Service ServiceUser-Profile Microservice Web API Service Database Backend UserUpdated event (Publish Action) Event Bus (Publish/Subscribe Channel) UpdateUser command UserUpdated event  Buyer info UserUpdated event  Buyer info Eventual consistency across microservices’ data based on event-driven async communication DB update Event Bus Abstractions/Interface Event Bus Implementations RabbitMQ Azure Service Bus Other: NServiceBus MassTransit etc.
  • 10. Focus on: - Event Bus & messaging
  • 11. Orchestrator’s Cluster managing microservices/containers Clusters provide: • High scalability • Automatic High Availability and resiliency • High services density per host Official Docker Images https://hub.docker.com or Cluster of Nodes/Hosts VM App 1 App 2 My ASP.NET Core Services My Docker Images
  • 12. Web Apps Mobile Apps API Management API Apps Logic Apps Notification Hubs Content Delivery Network (CDN) Media Services HDInsight Machine Learning Stream Analytics Data Factory Event Hubs Mobile Engagement Biztalk Services Hybrid Connections Service Bus Storage Queues Backup StorSimple Site Recovery Import/Export SQL Database DocumentDB Redis Cache Search Tables SQL Data Warehouse Azure AD Connect Health AD Privileged Identity Mngt Operational Insights Cloud Services Batch Service Fabric Visual Studio Application Insights Azure SDK Team Project Active Directory Multi-Factor Authentication Automation Portal Key Vault Store / Marketplace VM Image Gallery & VM Depot SECURITY & MANAGEMENT PLATFORM SERVICES HYBRID OPERATIONS Microsoft Azure Azure Container Service Function Apps
  • 13. Azure Compute Continuum Ultimate Control Rapid Development VMs / VM Scale Sets VM Extensions Orchestrators ACS & Service Fabric App Service & Azure Functions IaaS PaaS
  • 14. Orchestrator Description Good for Common workloads Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices a) Stateful svc & Actors b) Microservices based on plain processes c) Microservices based on containers Docker Swarm is a clustering and scheduling tool for Docker containers. With Swarm, IT administrators and developers can establish and manage a cluster of Docker nodes as a single virtual system Microservices based on containers Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts Microservices based on containers As a datacenter operating system, DC/OS is itself a distributed system, a cluster manager and a container platform Microservices based on containers (Including other Linux containers, not just Docker) More mature: Less mature: More mature: Less mature: More mature: Less mature: Azure Product Azure Service Fabric Azure Container Service Docker Swarm Service Fabric Production-ready & Microsoft ecosystem Mesosphere DC/OS More mature: Less mature: Production-ready & Linux ecosystem Easy to get started Dev/Test and Production Kubernetes Production-ready & Linux ecosystem
  • 15. aka.ms/MicroservicesEbook aka.ms/MicroservicesArchitecture Additional subjects covered in the eBook Domain Driven Design Patterns • Domain Models (Aggregates, Entity, VO, etc.) • Simplified CQRS • Dapper MicroORM for queries • Commands and Mediator patter • Domain Events (within the same microservice) Microservices • Integration Events (across microservices) • Multi-container docker-compose.yml • Swagger w/ Swashbuckle • Security (Authentication/Authorization) with tokens from IdentityServer4 wrapping ASP.NET Identity

Editor's Notes

  • #4: Traditional Approach : Application is made up of layers and will be part of a process and if you want to scale you need to scale cloning the application into multiple servers Microservices Approach : The application comprises small set of services and the scaling out is done by scaling out each service Independently by running multiple instance across servers These services or microservices run in its own process and the communication between other microservices using protocols such as http , web sockets or AMQP. Microservice implements a specific business capability end to end and each of these services should be developed autonomously and should be independently deployable with fully automated deployment mechanism
  • #5: Microservices should own its data model and data and logic Cold data for reporting Advantages and disadvantages of microservices Maintainability Cost savings Polygot Disadvantage Initial implementation Microserices :Small and focused on doing one thing well Vertical slicing or Functional cohesion Bounded context
  • #6: This is just a sample, actual bounded context boundaries would depend on your real Domains. Depending on each Domain, the entities and their position could be different.
  • #8: Client apps can access the microservices using HTTP synchronous protocol If we are using the same for communication between microservices then there will issues like If there is dependency between microservices then microservices cannot be deployed independently. Usually microservices should not be aware of other microservices One of the microservice will be waiting for response from the other microservices and which in turn call another service. Then the first microservices will be waiting for the response And also if the downstream microservice fails . The failure will get cascaded
  • #10: This slide is required. Do NOT delete. This should be the first slide after your Title Slide. This is an important year and we need to arm our attendees with the information they can use to Grow Share! Please ensure that your objectives are SMART (defined below) and that they will enable them to go in and win against the competition to grow share. If you have questions, please contact your Track PM for guidance. We have also posted guidance on writing good objectives, out on the Speaker Portal (https://www.mytechready.com).   This slide should introduce the session by identifying how this information helps the attendee, partners and customers be more successful. Why is this content important? This slide should call out what’s important about the session (sort of the why should we care, why is this important and how will it help our customers/partners be successful) as well as the key takeaways/objectives associated with the session. Call out what attendees will be able to execute on using the information gained in this session. What will they be able to walk away from this session and execute on with their customers. Good Objectives should be SMART (specific, measurable, achievable, realistic, time-bound). Focus on the key takeaways and why this information is important to the attendee, our partners and our customers. Each session has objectives defined and published on www.mytechready.com, please work with your Track PM to call these out here in the slide deck. If you have questions, please contact your Track PM. See slide 5 in this template for a complete list of Tracks and TPMs.
  • #12: For each service instance you use one container Docker images/containers are “units of deployment” A container is an instance of a Docker Image A host (VM/server) handles many containers https://blogs.msdn.microsoft.com/azureservicefabric/2016/04/25/orchestrating-containers-with-service-fabric/ Service Fabric will support the different types of containers discussed above in an upcoming release. At a high level, containers can be seen as encapsulated, individually deployable components running as isolated instances on the same kernel, leveraging operating system level virtualization. This means that each application, its runtime, dependencies, and system libraries run inside a container with full, private access to their own isolated view of operating system constructs. Along with portability, this degree of security and resource isolation is the main benefit for using containers with Service Fabric, which otherwise runs services in traditional processes. On Linux, this isolation has traditionally been provided by cgroups and namespaces, and Windows Server Containers (coming in Windows Server 2016) will behave similarly. In addition, Windows Server 2016 will offer Hyper-V Containers, an even higher level of security isolation for hostile multi-tenant scenarios. Figure 1 shows the different isolation levels.
  • #18: This slide is required. Do NOT delete. This should be the first slide after your Title Slide. This is an important year and we need to arm our attendees with the information they can use to Grow Share! Please ensure that your objectives are SMART (defined below) and that they will enable them to go in and win against the competition to grow share. If you have questions, please contact your Track PM for guidance. We have also posted guidance on writing good objectives, out on the Speaker Portal (https://www.mytechready.com).   This slide should introduce the session by identifying how this information helps the attendee, partners and customers be more successful. Why is this content important? This slide should call out what’s important about the session (sort of the why should we care, why is this important and how will it help our customers/partners be successful) as well as the key takeaways/objectives associated with the session. Call out what attendees will be able to execute on using the information gained in this session. What will they be able to walk away from this session and execute on with their customers. Good Objectives should be SMART (specific, measurable, achievable, realistic, time-bound). Focus on the key takeaways and why this information is important to the attendee, our partners and our customers. Each session has objectives defined and published on www.mytechready.com, please work with your Track PM to call these out here in the slide deck. If you have questions, please contact your Track PM. See slide 5 in this template for a complete list of Tracks and TPMs.