microservices to scale using azure service fabric
TRANSCRIPT
MukulJainHeadofXpiritIndiaXEBIA
SomethingInterestingisHappening…..
DigitalDisruptionisBetterandFaster
SpeedUpandScaleUp
TechnologyEvolution
Microservices ==SOADoneRight==Scalability?
App1
Traditionalapproach Microservicesapproach
• Amicroserviceapplicationseparatesfunctionalityintoseparatesmallerservices.
• Amonolithicapplicationhasmostofitsfunctionalitywithinafewprocesses.
• Scalesbycloningtheapponmultipleservers/VMs/Containers
• Scalesbydeployingeachserviceindependentlycreatinginstancesoftheseservicesacrossservers/VMs/containers
App1 App2
• Singlemonolithicdatabase• Tiersofspecifictechnologies
StateinTraditionalapproach StateinMicroservicesapproach• Graphofinterconnectedmicroservices• Statetypicallyscopedtothemicroservice• Varietyoftechnologiesused• RemoteStorageforcolddata
statelessserviceswithseparatestores
statefulservices
statelesspresentationservices
statelessservices
WhatisMicroservice?AutonomousService
Containcodeplusstate
Interactwithothermicroservices overwelldefinedinterfaces
RemainConsistentandAvailableinthepresenceofFailures
• Autonomy• Highcohesion• Lowcoupling
DeveloperDependencies
For a monolith to change, all must agree on each change. Each change has unanticipated effectsrequiring careful testing beforehand.
Developers can create and activate new microservices without prior coordination with others. Their adherence to MSA principles makes continuous delivery of new or modified services possible.
Elements in SOA are developed more autonomously but must be coordinated with others to fit into the overall design.
Microservice
Benefits
AnyLanguageandframework
Resilienceagainstfailure
Selectivescaling
Deploymentofsmallerpieceswithlowerrisk
AlignmentwithOrganization• SmallFocusedTeams
ImprovedResource
Utilizationtoreducecost
FaultIsolation
ServersTreatedascattle,not
pets
ServiceFabricHighAvailability
Hyper-Scale
HybridOperations
HighDensity
Microservices
RollingUpgrades
StatefulServicesLowLatency FastStartup&
Shutdown
CodeOrchestration&LifecycleManagement
Replication&FailoverSimpleprogramming
models ResourceManagement
Self-healingDataPartitioning
AutomatedRollback
HealthMonitoring
PlacementConstraints
Azure Privatecloud Otherclouds
AzureCloudServices(WebandWorkerRoles)
AzureServiceFabric(Stateless,stateful orActorservices)
• 1roleinstanceperVM• Unevenutilization• Slowdeployment&upgrade(boundtoVM)• Slowscalingandfailurerecovery
• ManymicroservicesperVM• EvenUtilization(bydefault,customizable)• Fastdeployment&upgrade• Fastscalingofindependentmicroservices
WindowsOS
WindowsOS WindowsOS
WindowsOS
WindowsOS
WindowsOS
FabricNode
FabricNode
FabricNode
FabricNode
FabricNode
FabricNode
LinuxSupportJavaSupportOnPremisesClusters
App1 App2
AppTypePackages ServiceFabricClusterVMs
HandlingMachineFailures
App1 App2
AppTypePackages ServiceFabricClusterVMs
HandlingMachineFailures
StatefulMicroservices- Replication
Primary
Secondary
Replication
ServiceFabricClusterVMs
WindowsOS
WindowsOS WindowsOS
WindowsOS
WindowsOS
WindowsOS
FabricNode
FabricNode
FabricNode
FabricNode
FabricNode
FabricNode
AppBv2
AppBv2AppBv2
AppAv1
AppAv1AppAv1
AppCv1
AppCv1
AppCv1
AppRepository
AppAv1
AppCv1
AppBv2
AppCv2
AppCv2
AppCv2
AppCv2
Node5Node4Node3 Node6Node2Node1
P2
S
SS
P4SP1
SP3SS
S
• Servicescanbepartitionedforscale-out.• Youcanchooseyourownpartitioningscheme.• Replicasautomaticallyscaleout&inonclusterchanges
Performanceandstressresponse•Richbuilt-inmetricsforActorsandServicesprogrammingmodels•Easytoaddcustomapplicationperformancemetrics
Healthstatusmonitoring•Built-inhealthstatusforclusterandservices•Flexibleandextensiblehealthstoreforcustomapphealthreporting•Allowscontinuousmonitoringforreal-timealertingonproblemsinproduction
ServicesbuiltwithServiceFabric
:SpeedUpandScaleUpTakeaways