from a monolith to microservices with azure service fabric
TRANSCRIPT
Origins of this experimentMicroservicesDevOpsConcepts : Service DiscoveryConcepts : Reverse ProxyDemosChallengesConclusion
02/12/2016 3
1 year of “Microservices”
Which module does this functionality fit?Add codeMergeGet a coffee
02/12/2016 9
1 year of “Microservices”How/where do we host this service? Where?Cloud? Which product? How to deploy? Monitor? communicate with The Monolith?Business case validation?Configuration management? (that one is a biggy)On premise? IIS Setup?Authentication/Authorization?Logging?What DB can/should we use? SqlServer, Ravendb, DocumentDB?Versioning?Test environments?CI setup?Deployment scripts? Internet facing services?What about security?Etc, …
02/12/2016 10
New services nearly every release, every week
150 git repos
1 person can’t assess the entire system
1 year of “Microservices”
02/12/2016 11
1 year of “Microservices”
40 Windows services (doubled)
52 IIS processes (doubled)
X2 (x4)
02/12/2016 13
Scalability
Highly Available24/7
Zero Down Time DeploysCloud
Serverless
DevOps
Blue Green
02/12/2016 15
Service DiscoveryService Discovery
Service Discovery
Service A Service BCommunicate
Highly available, Consistent
02/12/2016 21
Service DiscoveryService Discovery
Service Discovery
Service A Service BCommunicate
Highly available, Consistent
Service AService A
Service BService B
02/12/2016 22
Service DiscoveryService DiscoveryService Discovery
Service A Service BService A
Service AService B
Service B
R
Reverse proxy
02/12/2016 26
02/12/2016 29
Cluster management for microservices
Windows or Linux
Process deployment and orchestration
Can we do this?
What would this mean for developers?
What would it mean for DevOps?
What does it mean for the Lifecycle?
What do we get from this?
So, can we have the cake, and eat it too?
02/12/2016 35
queue
Server1
NSB
queue
Server2
NSBSubscribe(msg@server1)
Publish(queue@server2
Send(queue@Server2)
02/12/2016 37
DTC
DTC (and other 2PC protocols) require HA and low latency between resources.
Incompatible with the cloud
02/12/2016 40
Outbox and Deduplication Pattern
“Using Outbox allows for running endpoints with similar reliability to DTC while not actually using DTC.”
At least once + deduplication
DTC : Msmq/NServiceBus
02/12/2016 41
https://docs.particular.net/nservicebus/outbox/
02/12/2016 43
Wrap up
Service Fabric ticks all the boxesCloud vs On-premNot invasiveFuture proof (cloud, container, no vendor lock-in)
Remove DTC and MSMQ
02/12/2016 44
Thank youMicroservices article
http://www.erbrech.com/blog/2016/10/27/What-we-dont-tell-you-about-microservices.html
Hosting a web app In Service Fabric
http://www.erbrech.com/blog/2016/11/01/Hosting-a-web-application-in-Service-Fabric.html
Service Fabric Overview
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview
Twitter : @serbrechhttp://www.erbrech.com/blog