Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Running Microservices on Azure Service Fabric by Michele Tedesco

Running Microservices on Azure Service Fabric by Michele Tedesco

Modern Cloud Applications and Microservices are a trending topic among Development Teams, as they are supposed to enable innovation, digital transformation, and reduce time to market of business capabilities.

Azure Service Fabric is Microsoft's microservice platform and has seen rapid uptake with customers as well as internal Microsoft teams.

In the session I would like to cover the latest updates and capabilities for developing microservice applications with Azure Service Fabric, whether you bring an existing executable, or use the "Reliable Services and Actors" programming model.

Michele Tedesco

Michele is a Premier Field Engineer (PFE) for Software Development at Microsoft. He consults and supports different sized enterprise customers in the whole EMEA region on their journey to the Azure cloud.

Azure Zurich User Group

March 28, 2017

More Decks by Azure Zurich User Group

Other Decks in Technology


  1. None
  2. None
  3. None
  4. None
  5. None
  6. (Consistency, Availability, Partition Tolerance)

  7. • Single monolithic database • Tiers of specific technologies State

    in Monolithic approach State in Microservices approach • Graph of interconnected microservices • State typically scoped to the microservice • Variety of technologies used stateless services stateless services with separate stores stateful services stateless presentation services
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. Service Fabric cluster Azure Container Service Virtual Machines

  15. Structured PaaS Unstructured PaaS Pure PaaS Pure IaaS IaaS PaaS

  16. None
  17. Microservices Azure Windows Server Linux Hosted Clouds Windows Server Linux

    Service Fabric Private Clouds Windows Server Linux High Availability Hyper-Scale Hybrid Operations High Density Rolling Upgrades Stateful services Low Latency Fast startup & shutdown Container Orchestration & lifecycle management Replication & Failover Simple programming models Load balancing Self-healing Data Partitioning Automated Rollback Health Monitoring Placement Constraints
  18. None
  19. None
  20. Queues Storage Stateless Services Pattern Front End (Stateless Web) Stateless

    Middle-tier Compute Cache • Scale stateless services backed by partitioned storage • Increase reliability and ordering with queues • Reduce read latency with caches • Manage your own transactions for state consistency • More moving parts each managed differently Load Balancer
  21. Stateful Middle-tier Compute Stateful Services Pattern Simplify design, reduce latency

    Front End (Stateless Web) • Application state lives in the compute tier • Low Latency reads and writes • Partitions are first class at the service layer for scale- out • Built in transactions • Fewer moving parts • External stores for exhaust and offline analytics Load Balancer Cold Data Stores For Exhaust (Optional)
  22. None
  23. None
  24. None
  25. Azure Cloud Services (Web & Worker Roles) Azure Service Fabric

    (Services) • 1 service instance per VM • Slow deployment & upgrades • Slow scaling of roles up/down • Emulator for development • Many microservices per PC/VM • Fast deployment & upgrades • Fast scaling of microservices up/down • OneBox cluster for development
  26. None
  27. None
  28. None
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. Application Package Cloud Service

  36. None
  37. None
  38. CARADIGM ENVIRONMENT TOPOLOGY Storage Resources All in primary subscription Tenant

    N Storage Tenant N Resources Global Resources in Primary Subscription Common VNET for PROD POD Browser Clients External Doc Sharing Source Systems Tenent 2 Resources Tenant 1 Resources In tenant owned subscription Mobile Devices Global Storage Tenant 2 Storage = Security Group = VM Scale Set = Key Vault = Azure Active Directories = Service Bus = Service Bus Topic(s) = Service Bus Queue(s) = Event Hub = Azure Subscription = Azure Storage Account = SQL Database = Data Replication Mgt. User Tenant 1 Storage Management Splunk Server Mgt. Node = VNet = SubNet = Svc. Fabric Cluster = AAD Domain Svcs. • Limit RPC access to range of IPs • Authenticate against POD AAD Service Fabric Cluster FrontEnd Node Type Public Web Sites & Services BackEnd Node Type Framework Services Ingestion Node Type Ingestion Worker Services Load Balancer URL Router [NGinX] (Public IP/DNS Name) Load Balancer Non-compute Azure resources
  39. None
  40. Application Type Easy support path Long term strategy Web Role

    (ASP.NET Web Form) No support Convert to ASP.NET Core MVC Web Role (ASP.NET MVC) OWIN Convert to ASP.NET Core MVC Worker Role With migration to Stateless Service Stateful Service ASP.NET Web API OWIN Convert to ASP.NET Core Web API ASP.NET Core Yes N/A
  41. Cloud Service Service Fabric HTTP Hosting SSL, port bindings, routing

    IIS Self hosted via OWIN Configuration Management CloudConfigurationManager (node specific) CodePackageActivationContext (service instance specific) Configuration Change Notification RoleInstance.Changed CodePackageActivationContext Deployment CSPKG to old portal Deployed to existing local or prod cluster as a service instance XML publish profiles Startup Tasks CSDEF startup task Entry point in service manifest
  42. None
  43. None
  44. None