building hyper scale platform-as-a-service microservices with microsoft azure

21
Building Hyper-Scale Platform-as-a-Service Microservices with Microsoft Azure Patriek van Dorp and Alex Thissen

Upload: alex-thissen

Post on 08-Jan-2017

98 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Building hyper scale platform-as-a-service microservices with Microsoft Azure

Building Hyper-Scale Platform-as-a-Service

Microservices with Microsoft Azure

Patriek van Dorp and Alex Thissen

Page 2: Building hyper scale platform-as-a-service microservices with Microsoft Azure

About me: Patriek van [email protected]

@pvandorp

http://onwindowsazure.comXpirit

Page 3: Building hyper scale platform-as-a-service microservices with Microsoft Azure

About me: Alex [email protected]

@alexthissen

http://blog.alexthissen.nlXpirit

Microsoft Regional Director

Page 4: Building hyper scale platform-as-a-service microservices with Microsoft Azure

AgendaChallenges in large distributed enterprise systemsMicro-introduction to microservicesMicrosoft Azure Service FabricActor pattern and programming modelWrapupQuestions and Answers

Page 5: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 6: Building hyper scale platform-as-a-service microservices with Microsoft Azure

Transitioning to a microservices architecture

Page 7: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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)

Page 8: Building hyper scale platform-as-a-service microservices with Microsoft Azure

• 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

Page 9: Building hyper scale platform-as-a-service microservices with Microsoft Azure

Benefits

Heterogeneous technology landscape

Resilience against failure

Selective scaling

Deployment of smaller pieces with lower risk

Alignment with organization• Ownership with teams

Composability

Replaceability

Page 10: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 11: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 12: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 13: Building hyper scale platform-as-a-service microservices with Microsoft Azure

Microsoft Azure Service Fabric Cluster

Node

Node

NodeNode

Node

App 1

App 2

Page 14: Building hyper scale platform-as-a-service microservices with Microsoft Azure

• 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?

Page 15: Building hyper scale platform-as-a-service microservices with Microsoft Azure

DEMO

Stateless vs. Stateful Services

Page 16: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 17: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 18: Building hyper scale platform-as-a-service microservices with Microsoft Azure

DEMO

Reliable Actors API

Page 19: Building hyper scale platform-as-a-service microservices with Microsoft Azure

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

Page 20: Building hyper scale platform-as-a-service microservices with Microsoft Azure

?Think ahead. Ask now.

http://www.xpirit.com/@xpiritbv

http://xpirit.com/blog

@pvandorp and @alexthissen

[email protected] [email protected]

Page 21: Building hyper scale platform-as-a-service microservices with Microsoft Azure

http://www.xpirit.com

Leading IT specialists in Microsoft Application Lifecycle Management,

Cloud, Enterprise Mobility & Security