building hyper scale platform-as-a-service microservices with microsoft azure
TRANSCRIPT
Building Hyper-Scale Platform-as-a-Service
Microservices with Microsoft Azure
Patriek van Dorp and Alex Thissen
About me: Alex [email protected]
@alexthissen
http://blog.alexthissen.nlXpirit
Microsoft Regional Director
AgendaChallenges in large distributed enterprise systemsMicro-introduction to microservicesMicrosoft Azure Service FabricActor pattern and programming modelWrapupQuestions and Answers
Challenges in large distributed systems• Architecture aligned to organization
and vice versa• Strict technology choices with
additional governance• Specialized teams per function• Monolithic structure from
evolutionary growth • Long test periods and big release
schedules• High risk big-bang deployments of
dependent systems• Hard to scale entire system or parts
Transitioning to a microservices architecture
The many definitions of microservices- Small and focused on doing one thing well- Autonomous
“Loosely coupled service oriented architecture with bounded contexts”Adrian Cockcroft (Netflix)
“SOA done right”Anonymous
“… services are independently deployable and scalable, each service also provides a firm module boundary, even allowing for different services to be written in different programming languages.”Martin Fowler (Thoughtworks)
• Organized by logical cohesion• Teams own layers spanning domains• Unified technology choice
From horizontal to verticalChange your architecture to vertical partitions
• Modeled after organization’s domains • Owned by team• Top to bottom• Isolated from each other as much as possible
Benefits
Heterogeneous technology landscape
Resilience against failure
Selective scaling
Deployment of smaller pieces with lower risk
Alignment with organization• Ownership with teams
Composability
Replaceability
Problems and solutions• Rolling upgrades• Availability guarantees• Scale out architecture• Resource governance• Density• Packaging and deployment• Policy enforcement• Granular versioning• Stateful workloads• Leader election
MesosKubernetesZookeeperRedisRavenMongoDBYarnFleetHadoopContainers
Microsoft Azure Service Fabric
Complexity
ConsistencyConcurrency
Replication & Failover
Name Resolution Communication
High-Density
Health Monitoring
Rolling UpgradesFault Domains
Low Latency
Microsoft Azure On-Premises Service Provider
Microsoft Azure Service Fabric
Complexity
ConsistencyConcurrency
Replication & Failover
Name Resolution Communication
High-Density
Health Monitoring
Rolling UpgradesFault Domains
Low Latency
Microsoft Azure On-Premises Service Provider
Microsoft Azure Service Fabric
Microsoft Azure Service Fabric Cluster
Node
Node
NodeNode
Node
App 1
App 2
• Stateless Microservices:• Has no local persistent state • Optionally stores state in external data stores• Can have multiple instances for improving performance• E.g. Web API, Gateway Service, etc.
• Stateful Microservices:• Contains highly consistent local state• Provides redundancy through replication• Scale for performance, not for redundancy• E.g Databases, Workflows, etc.
• Existing apps written with other frameworks• node.js, Java VMs, any EXE
What can you build with Service Fabric?
DEMO
Stateless vs. Stateful Services
Microsoft Azure Service Fabric
Complexity
ConsistencyConcurrency
Replication & Failover
Name Resolution Communication
High-Density
Health Monitoring
Rolling UpgradesFault Domains
Low Latency
Microsoft Azure On-Premises Service Provider
Microsoft Azure Service Fabric
Reliable Services API Reliable Actors API
Reliable Actors• Actors are isolated single-threaded components that
encapsulate both state and behavior• Actor communicate with the system, including other
Actors, by sending asynchronous messages with a request/response pattern• Actors are virtual: there is no need to initialize or
destroy them
DEMO
Reliable Actors API
Summary• Microservices as a potential
architecture style• Adding complexity to gain simplicity• Choose an appropriate programming
model• Azure platform services help solve
remaining challenges for reliability and scaling
• Read more in the Xpirit Magazine
?Think ahead. Ask now.
http://www.xpirit.com/@xpiritbv
http://xpirit.com/blog
@pvandorp and @alexthissen
http://www.xpirit.com
Leading IT specialists in Microsoft Application Lifecycle Management,
Cloud, Enterprise Mobility & Security