Azure
Introducing:
Service Fabric and
Azure Service Fabric Mesh
Mikkel Mork Hegnhoj
Program Manager – Azure Compute – Application Services
CloudBrew - October 2018
What is Service Fabric?
Open Sourced technology from Microsoft
http://github.com/Microsoft/service-fabric
The platform that is used to run a lot of Azure
Resource providers to CosmosDB or Intune
Distributed systems platform
cluster technology
Data-aware platform
enables stateful distributed application without any central data store in the platform
Microservices platform
what it’s good at
Programming
Models
Dev & Ops
Tooling
Orchestration Lifecycle
Management
Health &
Monitoring
Always On
Availability
Auto
Scaling
AzureOn-premises infrastructureAny cloudDev machine
Service Fabric: Microservices platform
Build OperateDeploy
When should you care about Service
Fabric?Key things to listen for which points to Service Fabric
Global service (ISVs, SaaS
providers)
Microservices architecture
IoT
Co-located data, persisted cache,
low-latency data access
Virtual Actor frameworks
Windows containers
.Net core services / Java services
Large scale orchestration of legacy
applications
Gaming
Inspiration -
https://customers.microsoft.com/
Virtual machines
OS patching
Runtime upgrades
Capacity planning
Network and storage
Micro-billing
App deployment
You
Azure
Responsibility
Cluster capacity
Network and storage
App deployment
Virtual machines
OS patching
Runtime upgrades
Hardware
OS patching
Runtime upgrades
Cluster capacity
Network and storage
App deployment
Shapes and Forms of Service Fabric services
Bring your own infrastructure
Service Fabric
Standalone
On-premisesAny cloud
Dev machine
Dedicated Azure clusters
Azure
Service Fabric
Azure
Service Fabric Mesh
Serverless microservices
Service Fabric
Full Control Fully managed
Infrastructure
Cluster
Applications and
Services
Azure, On-Premises or
another datacenters
The federation ring
Cluster map
System services
Orchestration
Reliable Services and
Collections
Guest executables
Containers
SPA VotingWeb
VotingData
VotingData
VotingData
VotingData
Build & Deploy SF Native applications
Build OperateDeploy
Describe ManagePackage
Reliable Collections
Co-located H/A storage available to your applications
Partitioning for horizontal scaling
Replaces external low-latency distributed key value stores
Reliable Collections
Data provider services
• High-value data
• Databases
• Volume stores
• Message buses
• Event stores
Applications
• Data that can be rehydrated
• Queues
• Caches
• Session state
• Checkpoints, snapshots, aggregates
Build cloud native applications on Service Fabric
• Any language, any framework
• Service Fabric Libraries for .NET Core and Spring
• Easy H/A state storage with Reliable Collections
• Intelligent traffic routing and connectivity
Modernize with Service Fabric
Run anything in containers or processes
Bring your own network to connect to other systems
No code changes required
Enhance with cloud-native applications
Service Fabric Mesh
Applications
Resources in Service Fabric
Build & Deploy SF Mesh applications
Build OperateDeploy
Package Describe Manage
Application and Service Resources
Services describe how a set of containers run
• Container image, environment variables, CPU/Memory requirements, endpoints, etc.
• References to other resources, such as networks, volumes, and secrets.
• Applications are a group of services.
Service
Application
Container
Container
Service
Container
Container
Open Network
(Internet)
Gateway and networks
Gateway connects two networks and routes traffic
• L4 routing: TCP
• L7 routing: HTTP(S)
Service A
Service C
Service BGateway
Isolated Network
To be
released
Volume Resource
Service Fabric
Volume disk
General-purpose file storage
• Read and write files using normal disk I/O file APIs.
• Backed by Azure File storage or Service Fabric Volume disk
Azure File storage
Replicated local disk Network storage
Service
Volume
To be
released
Secrets Resource
Inline or stored in Azure Key Vault
• Applications and service resources have Managed Service Identity (MSI) with AAD to be
able to access secrets in Azure Key Vault
• Secrets and certificates can be auto-rolled over with policies
Secret
Service
To be
released
Routing Rule Resource - Intelligent traffic routing
Service package
service 1
Service package
service 3
Service package
service 2
Advanced HTTP/HTTPS traffic routing with load balancing
Proxy handles partition resolution and key hashing
Routing Rule resource
Network
Envoy proxy Envoy proxyEnvoy proxyEnvoy proxy
To be
released
Diagnostics and Monitoring
Containers write stdout/stderr logs to volumes
Azure Application Insights integration for .NET
Azure Monitor for platform events and container metrics
Container
Service
.NET
Service Fabric
Azure Application Insights
Azure Monitor
Volume
stdout/stderr
AppInsights SDK
Platform events & metrics
To be
released
More Resources - @mikkelhegn
Code sample: https://github.com/MikkelHegn/netconf2018demo/tree/cloudbrew2018
Service Fabric developer SDK​
• http://aka.ms/ServiceFabricSDK
Service Fabric course and lab​
• https://mva.microsoft.com/en-US/training-courses/building-microservices-applications-on-azure-service-fabric-16747
Learn from samples, free clusters, and labs​
• http://aka.ms/ServiceFabricSamples
• http://aka.ms/tryservicefabric
• https://blogs.msdn.microsoft.com/azureservicefabric/2016/07/06/introduction-to-service-fabric-lab-part-1/
Questions? Comments? Issues?​
• https://stackoverflow.com/questions/tagged/azure-service-fabric
• http://aka.ms/ServiceFabricForum
• https://github.com/azure/service-fabric-issues
• http://aka.ms/ServiceFabricSlack (request invite here)​
• Monthly Q&A – Announcements on the Team Blog here

Service Fabric and Azure Service Fabric Mesh introduction

  • 1.
    Azure Introducing: Service Fabric and AzureService Fabric Mesh Mikkel Mork Hegnhoj Program Manager – Azure Compute – Application Services CloudBrew - October 2018
  • 2.
    What is ServiceFabric? Open Sourced technology from Microsoft http://github.com/Microsoft/service-fabric The platform that is used to run a lot of Azure Resource providers to CosmosDB or Intune Distributed systems platform cluster technology Data-aware platform enables stateful distributed application without any central data store in the platform Microservices platform what it’s good at
  • 3.
    Programming Models Dev & Ops Tooling OrchestrationLifecycle Management Health & Monitoring Always On Availability Auto Scaling AzureOn-premises infrastructureAny cloudDev machine Service Fabric: Microservices platform Build OperateDeploy
  • 4.
    When should youcare about Service Fabric?Key things to listen for which points to Service Fabric Global service (ISVs, SaaS providers) Microservices architecture IoT Co-located data, persisted cache, low-latency data access Virtual Actor frameworks Windows containers .Net core services / Java services Large scale orchestration of legacy applications Gaming Inspiration - https://customers.microsoft.com/
  • 5.
    Virtual machines OS patching Runtimeupgrades Capacity planning Network and storage Micro-billing App deployment You Azure Responsibility Cluster capacity Network and storage App deployment Virtual machines OS patching Runtime upgrades Hardware OS patching Runtime upgrades Cluster capacity Network and storage App deployment Shapes and Forms of Service Fabric services Bring your own infrastructure Service Fabric Standalone On-premisesAny cloud Dev machine Dedicated Azure clusters Azure Service Fabric Azure Service Fabric Mesh Serverless microservices Service Fabric Full Control Fully managed
  • 6.
    Infrastructure Cluster Applications and Services Azure, On-Premisesor another datacenters The federation ring Cluster map System services Orchestration Reliable Services and Collections Guest executables Containers
  • 7.
  • 8.
    Build & DeploySF Native applications Build OperateDeploy Describe ManagePackage
  • 9.
    Reliable Collections Co-located H/Astorage available to your applications Partitioning for horizontal scaling Replaces external low-latency distributed key value stores
  • 10.
    Reliable Collections Data providerservices • High-value data • Databases • Volume stores • Message buses • Event stores Applications • Data that can be rehydrated • Queues • Caches • Session state • Checkpoints, snapshots, aggregates
  • 11.
    Build cloud nativeapplications on Service Fabric • Any language, any framework • Service Fabric Libraries for .NET Core and Spring • Easy H/A state storage with Reliable Collections • Intelligent traffic routing and connectivity
  • 12.
    Modernize with ServiceFabric Run anything in containers or processes Bring your own network to connect to other systems No code changes required Enhance with cloud-native applications
  • 13.
  • 14.
    Build & DeploySF Mesh applications Build OperateDeploy Package Describe Manage
  • 15.
    Application and ServiceResources Services describe how a set of containers run • Container image, environment variables, CPU/Memory requirements, endpoints, etc. • References to other resources, such as networks, volumes, and secrets. • Applications are a group of services. Service Application Container Container Service Container Container
  • 16.
    Open Network (Internet) Gateway andnetworks Gateway connects two networks and routes traffic • L4 routing: TCP • L7 routing: HTTP(S) Service A Service C Service BGateway Isolated Network To be released
  • 17.
    Volume Resource Service Fabric Volumedisk General-purpose file storage • Read and write files using normal disk I/O file APIs. • Backed by Azure File storage or Service Fabric Volume disk Azure File storage Replicated local disk Network storage Service Volume To be released
  • 18.
    Secrets Resource Inline orstored in Azure Key Vault • Applications and service resources have Managed Service Identity (MSI) with AAD to be able to access secrets in Azure Key Vault • Secrets and certificates can be auto-rolled over with policies Secret Service To be released
  • 19.
    Routing Rule Resource- Intelligent traffic routing Service package service 1 Service package service 3 Service package service 2 Advanced HTTP/HTTPS traffic routing with load balancing Proxy handles partition resolution and key hashing Routing Rule resource Network Envoy proxy Envoy proxyEnvoy proxyEnvoy proxy To be released
  • 20.
    Diagnostics and Monitoring Containerswrite stdout/stderr logs to volumes Azure Application Insights integration for .NET Azure Monitor for platform events and container metrics Container Service .NET Service Fabric Azure Application Insights Azure Monitor Volume stdout/stderr AppInsights SDK Platform events & metrics To be released
  • 21.
    More Resources -@mikkelhegn Code sample: https://github.com/MikkelHegn/netconf2018demo/tree/cloudbrew2018 Service Fabric developer SDK​ • http://aka.ms/ServiceFabricSDK Service Fabric course and lab​ • https://mva.microsoft.com/en-US/training-courses/building-microservices-applications-on-azure-service-fabric-16747 Learn from samples, free clusters, and labs​ • http://aka.ms/ServiceFabricSamples • http://aka.ms/tryservicefabric • https://blogs.msdn.microsoft.com/azureservicefabric/2016/07/06/introduction-to-service-fabric-lab-part-1/ Questions? Comments? Issues?​ • https://stackoverflow.com/questions/tagged/azure-service-fabric • http://aka.ms/ServiceFabricForum • https://github.com/azure/service-fabric-issues • http://aka.ms/ServiceFabricSlack (request invite here)​ • Monthly Q&A – Announcements on the Team Blog here

Editor's Notes

  • #6 There are three SF offerings…
  • #11 Goals Strong consistency Transactional Partitioned for data scale-out Co-located state and compute Pros Speed High-availability Horizontal scalability Cons Management Complexity
  • #20 Easily host multiple web applications on the same cluster Easily set up routing rules for multiple web applications in SF Mesh No more custom gateway services required Built-in partitioning and key hashing
  • #21 Platform events (container provisioning and deployment) and container metrics will be available via Azure Monitor Events: container activated, deactivated, terminated Metrics: CPU %, Mem usage, Mem usage %, Network I/O Application events The common pattern of using stdout/stderr with docker containers is supported. You can access your logs via CLI as well as put them on a mounted volume so you can bring your monitoring solution sidecar (fluentd) or processes (logstash) and tail the files to get them to Log Analytics, Elasticsearch, or whatever platform you choose to aggregate your logs .NET based applications – Application Insights. Continue to offer and build on a great integration story for SF Apps in .NET using AI for monitoring.