service fabric
TRANSCRIPT
#gib2017 #gib2017
2017 - Brisbane
Lee Simpson | MexiaService Fabric
#gib2017
Microsoft Azure Service FabricA platform for reliable, hyperscale, microservice-based applications
Microservices
Application Programming Models
Azure
WindowsServer Linux
Hosted Clouds
WindowsServer Linux
Service Fabric
Private Clouds
WindowsServer Linux
High Availability
Hyper-Scale
Hybrid Operations
High Density
Rolling Upgrades Stateful
services
Low Latency Fast startup & shutdown
Container Orchestration & lifecycle management Replication &
FailoverSimple
programming models
Load balancing
Self-healingData Partitioning
Automated Rollback
Health Monitoring
Placement Constraints
#gib2017
Battle-hardened for over 5 years
Azure Core Infrastruct
ure
thousands of machines
Power BI
Intune
800k devices
Azure SQL
Database
1.4 million databases
Bing Cortana
500m evals/sec
Azure Documen
t DB
billions transactions/wee
k
Skype for
Business
Hybrid Ops
Event Hubs20bn
events/day
#gib2017
What is a microservice?• Is (logic + state) that is independently versioned,
deployed, and scaled• Has a unique name that can be resolved
e.g. fabric:/myapplication/myservice• Interacts with other microservices over well defined
interfaces and protocols like REST• Remains always logically consistent in the presence of
failures• Hosted inside a “container” (code + config)• Can be written in any language and framework• node.js, Java VMs, any EXE
• Developed by a small engineering team
#gib2017
Types of microservices• Stateless microservice• Has either no state or it can be retrieved from an external store • There can be N instances• e.g. web frontends, protocol gateways, Azure Cloud Services etc.
• Stateful microservice• Maintain hard, authoritative state• N consistent copies achieved through replication and local persistence• e.g. database, documents, workflow, user profile, shopping cart etc.
#gib2017
Datacenter (Azure, Amazon, On-Premises, …)
Load Balanc
er
PC/VM #1Service FabricYour code, etc.
PC/VM #2Service FabricYour code, etc.
PC/VM #3Service FabricYour code, etc.
PC/VM #4Service FabricYour code, etc.PC/VM #5
Service FabricYour code, etc.
Service Fabric Cluster with 5 Nodes
Your code, etc.
(Port: 19080)
Web Request
(Port: 80/443/?)
#gib2017
Service Fabric’s Infrastructure Services
Service DescriptionCluster Manager Cluster management
(REST [HTTP=19080], PowerShell/FabricClient [TCP=19000])
Failover Manager
Rebalances service instances as nodes come/go
Naming Registry mapping service instances endpoints
Fault Analysis Let’s you inject faults to test your servicesImage Store Contains your app packages (not on OneBox)Upgrade Upgrades SF on nodes (Azure only)
#gib2017
#gib2017
• An application is a collection of services• In Service Fabric terms, we call these application types & service
types• So, an application type is a collection of service types
Defining Application Types & Service Types
Cluster “Fabrikam” eStore
App“G” Gallery Svc“P” Payment Svc
eStore App TypeGallery Svc
TypePayment Svc Type
“Contoso” eStore App“G” Gallery
Svc“P” Payment Svc
Image
Store
#gib2017© 2016 Microsoft Corporation. All rights reserved. Microsoft
Ignite
Going FurtherJeffrey Richter Building Microservices Applications on Azure
Service Fabric – Microsoft Virtual Academy