Building a massively scalable
system with DataStax and
Microsoft's next generation
Paas infrastructure
Rob Bagby
Sr. Cloud Architect – Microsoft
www.deveducate.com / www.robbagby.com
Rob.Bagby@Microsoft.com
@RBagby
Jesus Aguilar
Sr. Cloud Architect – Microsoft
www.giventocode.com
Jesus.Aguilar@microsoft.com
@GivenToCode
How do I scale my Data linearly?
Does the VM have the required resources?
Are there any cold VMs that I shouldn't be paying for?
How do I move a service?
Is the VM running?Is the VM too hot?How do I deploy across a part of the cluster?
Does the VM have the required capacity?
How do I roll back a deployment if it is does not work?
How do I deploy across a part of the cluster?
Can I have multiple versions running side-by-side?
Where should I move it?
Does my data have a single point of failure?
Is my application running?
Can I replicate data across data centers?
Large and Distributed Challenges
Ops Management
High Density
Resource Governance
Deployment and Packaging
Rolling updates
Scalability
Hyper Scale
Load balancing
Scale Out
Maintainability
Granular versioning
In-flight testing
Microservices
Availability
Failure resilient
Rolling updates
Recovery from failures
Azure Service Fabric
VNext PaaS offering
Battle tested – internally used
by +5 years in large systems
State of the art orchestration
and management
Stateful and Stateless
programming model
271 CustomersService Fabric Preview
Azure Service Fabric + Cassandra
Massively scalable system
Cloud powered
Modern architecture patterns
Stateless Services
Cassandra Cluster
Cassandra Deployment Options
Azure Marketplace Templates GitHub Templates
Demo 1 – Cassandra on Azure
Large and Distributed Challenges
Ops Management
High Density
Resource Governance
Deployment and Packaging
Rolling updates
Scalability
Hyper Scale
Load balancing
Scale Out
Maintainability
Granular versioning
In-flight testing
Microservices
Availability
Failure resilient
Rolling updates
Recovery from failures
Achieving High Density with Azure Service Fabric
IaaS Approach
1 Cluster – 1 VM
Azure Service Fabric
(Stateless, stateful or Actor services)
• 1 service instance per VM with uneven workloads
• Lower compute density
• Slow in deployment & upgrades
• Slower in scaling and disaster recovery
• Many microservices per VM
• High microservices density
• Fast deployment & upgrades
• Fast scaling microservices across the cluster
Placement Constraints
You control your
topology
Web
Internal API
N1
DMZ = False
N2
DMZ = True
N4
DMZ = True
N5
DMZ = True
N6
DMZ = False
N3
DMZ = False
Constraints = “(DMZ == False)”
Constraints = “(DMZ == True)”
Demo 2 – The Sample Application
Large and Distributed Challenges
Ops Management
High Density
Resource Governance
Deployment and Packaging
Rolling updates
Scalability
Hyper Scale
Load balancing
Scale Out
Maintainability
Granular versioning
In-flight testing
Microservices
Availability
Failure resilient
Rolling updates
Recovery from failures
FD2FD1
UD2
UD1
Nodes will go down.
Fault Domains
Same physical location, HW
failures
Upgrade Domains
SW upgrades to the underlying
compute resources
Web Web
API API
Rolling Updates
UD 1
UD 2 UD 3
N1
N2 N3
N4
N5 N6
V1
V1
V1
V2V2V2
Large and Distributed Challenges
Ops Management
High Density
Resource Governance
Deployment and Packaging
Rolling updates
Scalability
Hyper Scale
Load balancing
Scale Out
Maintainability
Granular versioning
In-flight testing
Microservices
Availability
Failure resilient
Rolling updates
Recovery from failures
Demo 3 – Handling Failures &
Rolling Upgrade
Large and Distributed Challenges
Ops Management
High Density
Resource Governance
Deployment and Packaging
Rolling updates
Scalability
Hyper Scale
Load balancing
Scale Out
Maintainability
Granular versioning
In-flight testing
Microservices
Availability
Failure resilient
Rolling updates
Recovery from failures
Scaling and Balancing
• Declarative Model – “I want the topology to look like this”
• Service Fabric does the work
• Balances Resources
• Moves services when hot
• Respects constraints
• You provide guidance
• These metrics are important
• CPU
• Memory
• Etc.
• Balancing Threshold
• Activity Threshold
Demo 4 – Scalability
Questions

Microsoft: Building a Massively Scalable System with DataStax and Microsoft's Next Generation PaaS Infrastructure

  • 1.
    Building a massivelyscalable system with DataStax and Microsoft's next generation Paas infrastructure Rob Bagby Sr. Cloud Architect – Microsoft www.deveducate.com / www.robbagby.com Rob.Bagby@Microsoft.com @RBagby Jesus Aguilar Sr. Cloud Architect – Microsoft www.giventocode.com Jesus.Aguilar@microsoft.com @GivenToCode
  • 2.
    How do Iscale my Data linearly? Does the VM have the required resources? Are there any cold VMs that I shouldn't be paying for? How do I move a service? Is the VM running?Is the VM too hot?How do I deploy across a part of the cluster? Does the VM have the required capacity? How do I roll back a deployment if it is does not work? How do I deploy across a part of the cluster? Can I have multiple versions running side-by-side? Where should I move it? Does my data have a single point of failure? Is my application running? Can I replicate data across data centers?
  • 3.
    Large and DistributedChallenges Ops Management High Density Resource Governance Deployment and Packaging Rolling updates Scalability Hyper Scale Load balancing Scale Out Maintainability Granular versioning In-flight testing Microservices Availability Failure resilient Rolling updates Recovery from failures
  • 4.
    Azure Service Fabric VNextPaaS offering Battle tested – internally used by +5 years in large systems State of the art orchestration and management Stateful and Stateless programming model
  • 5.
  • 6.
    Azure Service Fabric+ Cassandra Massively scalable system Cloud powered Modern architecture patterns Stateless Services Cassandra Cluster
  • 7.
    Cassandra Deployment Options AzureMarketplace Templates GitHub Templates
  • 8.
    Demo 1 –Cassandra on Azure
  • 9.
    Large and DistributedChallenges Ops Management High Density Resource Governance Deployment and Packaging Rolling updates Scalability Hyper Scale Load balancing Scale Out Maintainability Granular versioning In-flight testing Microservices Availability Failure resilient Rolling updates Recovery from failures
  • 10.
    Achieving High Densitywith Azure Service Fabric IaaS Approach 1 Cluster – 1 VM Azure Service Fabric (Stateless, stateful or Actor services) • 1 service instance per VM with uneven workloads • Lower compute density • Slow in deployment & upgrades • Slower in scaling and disaster recovery • Many microservices per VM • High microservices density • Fast deployment & upgrades • Fast scaling microservices across the cluster
  • 11.
    Placement Constraints You controlyour topology Web Internal API N1 DMZ = False N2 DMZ = True N4 DMZ = True N5 DMZ = True N6 DMZ = False N3 DMZ = False Constraints = “(DMZ == False)” Constraints = “(DMZ == True)”
  • 12.
    Demo 2 –The Sample Application
  • 13.
    Large and DistributedChallenges Ops Management High Density Resource Governance Deployment and Packaging Rolling updates Scalability Hyper Scale Load balancing Scale Out Maintainability Granular versioning In-flight testing Microservices Availability Failure resilient Rolling updates Recovery from failures
  • 14.
    FD2FD1 UD2 UD1 Nodes will godown. Fault Domains Same physical location, HW failures Upgrade Domains SW upgrades to the underlying compute resources Web Web API API
  • 15.
    Rolling Updates UD 1 UD2 UD 3 N1 N2 N3 N4 N5 N6 V1 V1 V1 V2V2V2
  • 16.
    Large and DistributedChallenges Ops Management High Density Resource Governance Deployment and Packaging Rolling updates Scalability Hyper Scale Load balancing Scale Out Maintainability Granular versioning In-flight testing Microservices Availability Failure resilient Rolling updates Recovery from failures
  • 17.
    Demo 3 –Handling Failures & Rolling Upgrade
  • 18.
    Large and DistributedChallenges Ops Management High Density Resource Governance Deployment and Packaging Rolling updates Scalability Hyper Scale Load balancing Scale Out Maintainability Granular versioning In-flight testing Microservices Availability Failure resilient Rolling updates Recovery from failures
  • 19.
    Scaling and Balancing •Declarative Model – “I want the topology to look like this” • Service Fabric does the work • Balances Resources • Moves services when hot • Respects constraints • You provide guidance • These metrics are important • CPU • Memory • Etc. • Balancing Threshold • Activity Threshold
  • 20.
    Demo 4 –Scalability
  • 21.