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. Service Fabric
The platform that runs any application anywhere
</>
.NET
</>
IIS
COM
ASP.NET
Core
Go
C++
NGINX
5. Deploy anything and everything in a container
Bring your own network to connect to other systems
No code changes required
No servers or VMs to manage with Service Fabric Mesh
Modernize
</>
NGINX
IIS
COM
Service Fabric
7. 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/
8. 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. Serverless
infrastructure
Lifecycle
management
Pay only for
what you use
Scale on
demand
Intelligent
traffic routing
Microservice
and container
orchestration
Security &
compliance
Health &
monitoring
</>
Azure Service Fabric Mesh
A fully-managed microservices platform for business critical applications
.NET
</>
Microservices
development
12. How you write your applications
Service Fabric Native applications
• Low-level control of Service Fabric platform primitives
• .NET and Java frameworks tightly integrated with runtime lifecycle
• Several different programming models
• Allows processes or containers
Service Fabric Resources
• Loosely coupled individually deployable resources
• Decoupled from runtime lifecycle
• Universal model for any language, framework, or arbitrary application
• Everything runs in containers
• Run Docker Compose workloads on Service Fabric
• Limited Service Fabric integration
• Portability for existing applications described by Docker Compose
• Everything runs in containers
Docker Compose
Simplicity
Portability
Control
Integration
On-premAny cloudLocal Azure
On-premAny cloudLocal Azure
On-premAny cloudLocal MeshAzure
16. Service Fabric Resources
Applications and Services
Networks and Gateways
Volumes
Routing rules
Auto-scale rules
A deployment model composed of individual resources.
Anything that can be deployed to Service Fabric is a resource.
Secrets
17. Service Fabric Resources
Applications and Services
Networks and Gateways
Volumes
Routing rules
Auto-scale rules
Resources are described declaratively in YAML or JSON files.
Resources can be deployed anywhere Service Fabric runs.
Secrets
18. Service Fabric Resources
Any language, any framework
• No Service Fabric frameworks or base classes. Just containers.
• Service Fabric libraries provide integration with the Service Fabric environment.
Container
Service Fabric Libraries
• Reliable Collections
• Local H/A storage for ASP.NET Core
• SF API Client
.NET Core
Java
Node.js
Python
Ruby
Go
C++
Tomcat/IIS/NGINX
SomeOldCOMThing.exe
Ada95
19. 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
20. 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
22. Reliable Collections
Co-located H/A storage available to your applications
Partitioning for horizontal scaling
Replaces external low-latency distributed key value stores
23. 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
24. Classified as Microsoft Confidential
Reliable Collections “for .NET”
Not your usual Reliable Collections…
25. 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
26. 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
27. 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
28. 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
29. 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