The Problem
Definition of Scaling
- X – Horizontal
- Y – Functional
- Z – Data partitioning
Scale Dimensions
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
3 - Tier
Can we do better?
- Separation by functional requirements
- Small and easy to understand
- How small is Micro?
- Distributed system!
Microservices
- Separation by functional requirements
- Small and easy to understand
- How small is Micro?
- Distributed system!
- DOCKER != MICROSERVICE
Microservices
Definition
Microservice
Does it scale?
Does it scale?
Does it scale?
Does it scale?
Does it scale?
Does it scale?
Complexity
https://www.martinfowler.com/microservices/#when
- PRO:
- Enforces a cleaner architecture
- Independent deployments
- Scaleability
- CON:
- Distributed System!
- Resilience
- Increased management overhead
Conclusion
Actor Model
The solution?
- Encapsulate Logic and Data
- Lives in RAM
- Single Threaded!
What is an Actor?
Actor
+
Elexir
- Everything is an Actor
- Erlang  …..
- Open Source
- Full Control
- YOU are responsible
- Useable with Service Fabric
Akka.Net
- Open Source
- Microsoft Research
- Virtual Actor Model
- Battle Tested
- IO Interactiv (Hitman)
- Halo
- Useable with Service Fabric
Orleans
- PaaS v2
- Kubernetes on Steroids
- Orchestrator + Actor Runtime
- Battle Tested
- Azure SQL, Event Hub, Document DB
Service Fabric
Azure Other CloudsOn Premise
Azure Service Fabric
Any OS, Any Cloud
Dev Box
Service Fabric on
Linux in Azure
Preview
Service Fabric for
Linux
Coming 2017
Service Fabric
Windows SDK
Available
Service Fabric on
Windows in Azure
Available
Service Fabric in
Azure Stack GA
Coming 2017
Service Fabric for
Windows Server
Available
Service Fabric on
Linux in Azure
Available Preview
Service Fabric Programming Models & CI/CD
Other CloudsAzureDev Box On Premise
60bn events/day
Migrating a traditional application to microservices
1) Traditional app
2)Hosted as guest executables or containers in Service Fabric
3)Simple modernization - new microservices added alongside
4)Deeper modernization - breaking app into microservices
5)Transformed into microservices
Migrating a traditional application to microservices
1) Traditional app
2)Hosted as guest executables or containers in Service Fabric
3)Simple modernization - new microservices added alongside
4)Deeper modernization - breaking app into microservices
5)Transformed into microservices
Image Contents
License.txt PerfLogs Program Files
Program Files (x86) Users Windows
HKLM HKCU
HKCR HKU
Image Contents
mysite.html
inetpub
SOFTWARE/
mykey
HKLM
container
Service Fabric cluster
IIS / ASP.NET
Front-end web service
container
IIS / ASP.NET
Back-end web service
Docker Compose
DNS
Service
Migrating a traditional application to microservices
1) Traditional app
2)Hosted as guest executables or containers in Service Fabric
3)Simple modernization - new microservices added alongside
4)Deeper modernization - breaking app into microservices
5)Transformed into microservices
fabric:/application
container
container
Service Fabric cluster
Docker Compose
container
container
Service Fabric cluster
Host process
Service host process
Service instance/replica (multiple)
ASP.NET Core
Azure API
ManagementService Fabric
Azure Load Balancer
Azure API Management
IoT Hub
Event Hub
stateless web gateway Service Fabric
Service Fabric
Service Fabric
Service Fabric
fabric:/ModernApp/ReportController
Report Processing Service
Report Processing Service
fabric:/ModernApp/Tps/Processing/{name}
POST /api/reports/{name}
GET /api/reports/
GET /api/reports/{name}/status
DELETE /api/reports/{name}
GET /api/status
fabric:/ModernApp/LegacyWebService
POST /api/tps/{name}
POST /api/tps/{name}
POST /api/reports/{name}
GET /api/reports
DELETE /api/reports/{name}
fabric:/ModernApp/LegacyDataService
GET /Index
Azure load
balancer
Azure API
Management
Web UI
API
Service Fabric cluster
Your service
Full .NET Framework
Your service
Any language
Your service
Java, .NET Core
Your service
Any language
Your service
.NET Core, Full .NET, Java
Your service
Any language
Reliable Services and Actors
Reliable Services ASP.NET Core integration
Service Fabric home
https://github.com/Azure/service-fabric
https://github.com/Azure/service-fabric-aspnetcore
https://github.com/Azure/service-fabric-services-and-actors-dotnet
Date ID Theatre Sessions
Wed 1:30PM
Fri 1:00PM
T6968-R1 Service Fabric architecture in the SwissRe Digital Platform: An IoT scenario
Wed 1:30PM T6089 How Wolters Kluwer created an isolated job system and containerization strategy on
Azure Service Fabric
Wed 7:30PM T6051 Microservice architecture with ASP.NET Core
Thurs 1:00PM T6084 Managing secure, scalable Azure Service Fabric clusters and applications
Thurs 4:30PM T6001 Containerizing your Microsoft ASP.NET 4.x apps
Date ID Breakout Sessions
Wed 5:00PM B8087 Azure Compute: New features and roadmap
Thurs 4:00PM T6001 Azure Service Fabric, microservices, containers, and the road ahead
Fri 9:00AM B8013 Developing on Windows Server: Innovation for today and tomorrow - containers,
Docker, .NET Core, Service Fabric, and more
 Questions? Comments? Issues?
 https://stackoverflow.com/questions/tagged/azure-service-fabric
 http://aka.ms/servicefabricforum
 https://github.com/azure/service-fabric-issues
 Learn from blog, free clusters, samples and labs
 http://aka.ms/servicefabricblog
 http://aka.ms/tryservicefabric –>returning soon.
 http://aka.ms/servicefabricsamples
 http://aka.ms/sflab1 and http://aka.ms/sflab2
Microservice and Service Fabric talk

Microservice and Service Fabric talk

  • 4.
  • 5.
    - X –Horizontal - Y – Functional - Z – Data partitioning Scale Dimensions
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Can we dobetter?
  • 17.
    - Separation byfunctional requirements - Small and easy to understand - How small is Micro? - Distributed system! Microservices
  • 18.
    - Separation byfunctional requirements - Small and easy to understand - How small is Micro? - Distributed system! - DOCKER != MICROSERVICE Microservices
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    - PRO: - Enforcesa cleaner architecture - Independent deployments - Scaleability - CON: - Distributed System! - Resilience - Increased management overhead Conclusion
  • 28.
  • 29.
    - Encapsulate Logicand Data - Lives in RAM - Single Threaded! What is an Actor?
  • 30.
  • 31.
  • 32.
    Elexir - Everything isan Actor - Erlang  …..
  • 33.
    - Open Source -Full Control - YOU are responsible - Useable with Service Fabric Akka.Net
  • 34.
    - Open Source -Microsoft Research - Virtual Actor Model - Battle Tested - IO Interactiv (Hitman) - Halo - Useable with Service Fabric Orleans
  • 35.
    - PaaS v2 -Kubernetes on Steroids - Orchestrator + Actor Runtime - Battle Tested - Azure SQL, Event Hub, Document DB Service Fabric
  • 36.
    Azure Other CloudsOnPremise Azure Service Fabric Any OS, Any Cloud Dev Box Service Fabric on Linux in Azure Preview Service Fabric for Linux Coming 2017 Service Fabric Windows SDK Available Service Fabric on Windows in Azure Available Service Fabric in Azure Stack GA Coming 2017 Service Fabric for Windows Server Available Service Fabric on Linux in Azure Available Preview
  • 37.
    Service Fabric ProgrammingModels & CI/CD Other CloudsAzureDev Box On Premise
  • 38.
  • 40.
    Migrating a traditionalapplication to microservices 1) Traditional app 2)Hosted as guest executables or containers in Service Fabric 3)Simple modernization - new microservices added alongside 4)Deeper modernization - breaking app into microservices 5)Transformed into microservices
  • 41.
    Migrating a traditionalapplication to microservices 1) Traditional app 2)Hosted as guest executables or containers in Service Fabric 3)Simple modernization - new microservices added alongside 4)Deeper modernization - breaking app into microservices 5)Transformed into microservices
  • 42.
    Image Contents License.txt PerfLogsProgram Files Program Files (x86) Users Windows HKLM HKCU HKCR HKU Image Contents mysite.html inetpub SOFTWARE/ mykey HKLM
  • 43.
    container Service Fabric cluster IIS/ ASP.NET Front-end web service container IIS / ASP.NET Back-end web service Docker Compose DNS Service
  • 44.
    Migrating a traditionalapplication to microservices 1) Traditional app 2)Hosted as guest executables or containers in Service Fabric 3)Simple modernization - new microservices added alongside 4)Deeper modernization - breaking app into microservices 5)Transformed into microservices
  • 45.
    fabric:/application container container Service Fabric cluster DockerCompose container container Service Fabric cluster
  • 46.
  • 47.
    Service host process Serviceinstance/replica (multiple) ASP.NET Core
  • 48.
  • 49.
    Azure Load Balancer AzureAPI Management IoT Hub Event Hub stateless web gateway Service Fabric Service Fabric Service Fabric Service Fabric
  • 50.
    fabric:/ModernApp/ReportController Report Processing Service ReportProcessing Service fabric:/ModernApp/Tps/Processing/{name} POST /api/reports/{name} GET /api/reports/ GET /api/reports/{name}/status DELETE /api/reports/{name} GET /api/status fabric:/ModernApp/LegacyWebService POST /api/tps/{name} POST /api/tps/{name} POST /api/reports/{name} GET /api/reports DELETE /api/reports/{name} fabric:/ModernApp/LegacyDataService GET /Index Azure load balancer Azure API Management Web UI API Service Fabric cluster
  • 51.
    Your service Full .NETFramework Your service Any language
  • 52.
    Your service Java, .NETCore Your service Any language
  • 53.
    Your service .NET Core,Full .NET, Java Your service Any language
  • 54.
    Reliable Services andActors Reliable Services ASP.NET Core integration Service Fabric home https://github.com/Azure/service-fabric https://github.com/Azure/service-fabric-aspnetcore https://github.com/Azure/service-fabric-services-and-actors-dotnet
  • 55.
    Date ID TheatreSessions Wed 1:30PM Fri 1:00PM T6968-R1 Service Fabric architecture in the SwissRe Digital Platform: An IoT scenario Wed 1:30PM T6089 How Wolters Kluwer created an isolated job system and containerization strategy on Azure Service Fabric Wed 7:30PM T6051 Microservice architecture with ASP.NET Core Thurs 1:00PM T6084 Managing secure, scalable Azure Service Fabric clusters and applications Thurs 4:30PM T6001 Containerizing your Microsoft ASP.NET 4.x apps Date ID Breakout Sessions Wed 5:00PM B8087 Azure Compute: New features and roadmap Thurs 4:00PM T6001 Azure Service Fabric, microservices, containers, and the road ahead Fri 9:00AM B8013 Developing on Windows Server: Innovation for today and tomorrow - containers, Docker, .NET Core, Service Fabric, and more
  • 56.
     Questions? Comments?Issues?  https://stackoverflow.com/questions/tagged/azure-service-fabric  http://aka.ms/servicefabricforum  https://github.com/azure/service-fabric-issues  Learn from blog, free clusters, samples and labs  http://aka.ms/servicefabricblog  http://aka.ms/tryservicefabric –>returning soon.  http://aka.ms/servicefabricsamples  http://aka.ms/sflab1 and http://aka.ms/sflab2