MicroServices on Azure
Tech-Talks | Team Technologies LLC
Sergey Seletsky
Senior Solutions Architect
Agenda
Evolution of Architecture
MicroService Pattern
MicroService Challenges
MicroService Benefits
Azure Service Fabric
Related Cloud Patterns
Conclusions
Evolution of Architecture
Browser Any Device
Client
API Proxy
Desktop Web Server
microservices
Server
Db Server
Evolution of Architecture
MicroService Pattern
MicroService Architecture Style
Team Work Allocations problem
Conflicts in source control
Mixed domains
Technology constraints
Blocking issues
IDE Overload
Slow builds
Slow tests
Monolithic Architecture
Services was too complex
Hard to support
Hard to deploy
Hard to scale
MicroService Pattern
Single Responsible
Domain Driven
Isolated
Independently hosted
Autonomous
Elastic
Programmable
Discoverable
Automated
Team Work Allocations with MicroServices
Team A Team B Team C
• Authorization • Customers • Orders
• C# • Java • JavaScript
• Service Fabric • Amazon EC2 • AWS Lambda
• You can allocate feature per team and parallelize development without overhead.
• Recommended to use one technology per solution, but it is possible to use one per team.
• Recommended to use one hosting platform per solution, but it is possible to use more.
MicroService Logical Architecture
Example 1 - JS Example 2 – C#
Experience • Angular UI and Cordova Experience • Xamarin / WPF
SDK • NPM Packaged SDK SDK • NuGet Packaged SDK
Protocol • REST/HTTP Protocol • REST/HTTP
Models • On the wire data models Models • Data Contracts
Service • Node.Js Service • .NET Core Web API
DAC • Express Mongo Client DAC • Document Db Client
Store • Mongo Db Store • Document Db
Automation • Continuous Delivery Automation • Continuous Delivery
MicroService Challenges
MicroService Architecture Challenges
Warning! Only for Highly Skilled Developers!
MicroService Challenges
Discoverability
MicroService Benefits
MicroService Architecture Benefits
MicroService Benefits
Density & Isolation levels
More isolated More efficient
PC VM Container Process
Hardware Not shared Shared Shared Shared
Kernel Not shared Not shared Shared* Shared
System Resources
Not shared Not shared Not shared Shared
(ex: File System)
Lower costs for complex projects
The Scale Cube and MicroServices
Full power of Clouds
Azure Service Fabric
MicroService Architecture powered by Azure
Azure Service Fabric
Azure Service Fabric
Azure Service Fabric
Examples
Examples
Related Cloud Patterns
MicroService Architecture Cloud Patterns
Proxy MicroService Design Pattern
Shared Data MicroService Design Pattern
Load Leveling Design Pattern
Federated Identity Pattern
Retry Pattern
Sharding Pattern
Reading
Domain Driven Design Continuous Delivery Azure Service Fabric Building Microservices
Eric Evans Jez Humble Haishi Bai Sam Newman
David Farley