2. 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
3. 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
4. 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/
5. 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
9. Reliable Collections
Co-located H/A storage available to your applications
Partitioning for horizontal scaling
Replaces external low-latency distributed key value stores
10. 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
11. 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
12. 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
15. 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
16. 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
17. 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
18. 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
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
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
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
There are three SF offerings…
Goals
Strong consistency
Transactional
Partitioned for data scale-out
Co-located state and compute
Pros
Speed
High-availability
Horizontal scalability
Cons
Management
Complexity
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
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.