High Availability Distributed (Micro-)services. Clemens Vasters Microsoft

Similar documents
Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions: Course Agenda

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

Industry-leading Application PaaS Platform

Developing Microsoft Azure Solutions (70-532) Syllabus

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led

Developing Microsoft Azure Solutions (70-532) Syllabus

Architecting Microsoft Azure Solutions (proposed exam 535)

Service Level Agreement for Microsoft Azure operated by 21Vianet. Last updated: November Introduction

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Developing Enterprise Cloud Solutions with Azure

Microservices What, Why? ( 마이크로서비스를꼭써야하나 )

Developing Windows Azure and Web Services


RA-GRS, 130 replication support, ZRS, 130

#techsummitch

[MS20487]: Developing Windows Azure and Web Services

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Service Mesh and Microservices Networking

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

70-532: Developing Microsoft Azure Solutions

Techno Expert Solutions

Developing Microsoft Azure Solutions (MS 20532)

70-532: Developing Microsoft Azure Solutions

Enable IoT Solutions using Azure

Developing Microsoft Azure Solutions

Oracle Autonomous Database

20532D: Developing Microsoft Azure Solutions

API, DEVOPS & MICROSERVICES

Reactive Microservices Architecture on AWS

BraindumpsQA. IT Exam Study materials / Braindumps

Apigee Edge Cloud - Bundles Spec Sheets

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

Real-life technical decision points in using cloud & container technology:

Azure File Sync. Webinaari

DevOps Tooling from AWS

Microsoft Azure Stack Hybrid Cloud. The Modern System Architecture

Cisco Tetration Analytics

Developing Microsoft Azure and Web Services. Course Code: 20487C; Duration: 5 days; Instructor-led

Apigee Edge Cloud. Supported browsers:

Going Serverless. Building Production Applications Without Managing Infrastructure

AWS Lambda: Event-driven Code in the Cloud

Hi! NET Developer Group Braunschweig!

70-487: Developing Windows Azure and Web Services

Hosted Azure for your business. Build virtual servers, deploy with flexibility, and reduce your hardware costs with a managed cloud solution.

BraindumpsQA. IT Exam Study materials / Braindumps

Javaentwicklung in der Oracle Cloud

Sentinet for BizTalk Server SENTINET

Module Day Topic. 1 Definition of Cloud Computing and its Basics

White Paper / Azure Data Platform: Ingest

IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.

Developing Microsoft Azure Solutions

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Developing Microsoft Azure Solutions

Azure Cloud Architecture

Cloud has become the New Normal

API s in a hybrid world. Date 28 September 2017

Sentinet for Microsoft Azure SENTINET

Faculté Polytechnique

Big data streaming: Choices for high availability and disaster recovery on Microsoft Azure. By Arnab Ganguly DataCAT

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

There is no such thing as a microservice!

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Azure Certification BootCamp for Exam (Developer)

FIVE BEST PRACTICES FOR ENSURING A SUCCESSFUL SQL SERVER MIGRATION

Modern Data Warehouse The New Approach to Azure BI

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

ebay Marketplace Architecture

MS-20487: Developing Windows Azure and Web Services

WLS Neue Optionen braucht das Land

Apigee Edge Cloud. Supported browsers:

Stanislav Harvan Internet of Things

Sentinet for BizTalk Server VERSION 2.2

Container 2.0. Container: check! But what about persistent data, big data or fast data?!

Cloud Computing and Its Impact on Software Licensing

S Implementing DevOps and Hybrid Cloud

Architectural challenges for building a low latency, scalable multi-tenant data warehouse

Accelerate your Azure Hybrid Cloud Business with HPE. Ken Won, HPE Director, Cloud Product Marketing

How can you implement this through a script that a scheduling daemon runs daily on the application servers?

Azure Development Course

RED HAT OPENSHIFT A FOUNDATION FOR SUCCESSFUL DIGITAL TRANSFORMATION

Chapter 4. Fundamental Concepts and Models

Oracle Application Container Cloud

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

Please give me your feedback

Architectural overview Turbonomic accesses Cisco Tetration Analytics data through Representational State Transfer (REST) APIs. It uses telemetry data

Microservices without the Servers: AWS Lambda in Action

Qualys Cloud Platform

2013 Cisco and/or its affiliates. All rights reserved. 1

Microsoft Developing Windows Azure and Web Services

Cloud I - Introduction

Let s say that hosting a cloudbased application is like car ownership

AWS Lambda. 1.1 What is AWS Lambda?

Cisco CloudCenter Solution with Cisco ACI: Common Use Cases

Microservices on AWS. Matthias Jung, Solutions Architect AWS

Digital Transformation

Energy Management with AWS

Windows Azure Services - At Different Levels

Transcription:

High Availability Distributed (Micro-)services Clemens Vasters Microsoft Azure @clemensv

ice

Microsoft Azure services I work(-ed) on. Notification Hubs Service Bus Event Hubs Event Grid IoT Hub Relay Mobile push notifications Cloud messaging Telemetry stream ingestion Event distribution IoT messaging and management Discovery, Firewall/NAT Traversal Microsoft Azure

Azure Messaging by the numbers 5.1 Trillion 8,432,540 99.9984% 50ms Requests per week Requests per second Success Rate Average Event Hubs in Event Hubs average 24/7 send latency >28 PB 1.8 Million >100,000 695 Billion Monthly data volume Message Queues and Topics in production Daily active Service Bus Namespaces Message operations on Azure Service Bus Messaging per month

A Service is software that is responsible for holding, processing, and/or distributing particular kinds of information within the scope of a system can be built, deployed, and run independently, meeting defined operational objectives communicates with consumers and other services, presenting information using conventions and/or contract assurances protects itself against unwanted access, and its information against loss handles failure conditions such that failures cannot lead to information corruption

Services: Autonomous Entities Defining property of services is that they re Autonomous A service owns all of the state it immediately depends on and manages A service owns its communication contract A service can be changed, redeployed, and/or completely replaced A service has a well-known set of communication paths Services shall have no shared state with others Don't depend on or assume any common data store Don't depend on any shared in-memory state No sideline communications between services No opaque side-effects All communication is explicit Autonomy is about agility and cross-org collaboration

Interdependencies An autonomous service owns its own uptime If a downstream dependency service is unavailable, it may be acceptable to partially degrade capability, but it s not acceptable to go down blaming others Any critical downstream dependencies need to be highly available, with provisions for disaster recovery. A service can rely on a highly-available messaging middleware layer as a gateway to allow for variable load or servicing needs An autonomous service honors its contract Version N honors the contract of Version N-1. Contracts are assurances. Deprecation of a contract breaks dependents; have a clear policy

Operational Assurances Service owners aim to meet operational objectives so that they can provide operational assurances: What level objective achievement can and does the service owner commercially commit to? Example: Operational objective 99.99% availability/week (10 minutes max downtime) might turn into assurance 99.95% (50 minutes max downtime) Latency? Throughput? Data Loss? Disaster/Failure Recovery Time? What is the support lifecycle commitment for APIs and contracts? How many versions? Minimum deprecation notice?

The modern notion of Service is not about code artifact counts or sizes or technology choices. It s about ownership.

System A system is a federation of services and systems, aiming to provide a composite solution for a well-defined scope. The solution scope may be motivated by business, technology, policy, law, culture, or other criteria A system may appear and act as a service towards other parties. Systems may share services Consumers may interact with multiple systems

Rationale for Layers Key rationale for layers: Resilience against changes in ambient contracts. Communication and Presentation Layers Lots of changes, fairly frequently New UX methods and layouts, new assets New contracts and schemas New protocols Can have multiple concurrent interfaces Each change has low impact, but work adds up Resource Access Layers Fewer changes, rather infrequently Downstream dependency services make compatibility assurances Sometimes massive impact, often wholesale rewrites Goal is for core logic to be resilient against interface changes HTTP API V1 ios App API HTTP API V2 Service A Service B Queue API Service C HTML5 UX

Fiefdoms and Emissaries Term coined ~2002 by @PatHelland Fiefdom : Autonomous Service Emissary : Logic/Code JavaScript on Web Pages Client SDKs A service owns its contract can also manifest in it owning SDKs for all relevant platforms while keeping the wire contract private. We ll see more of this around edge compute

Tiers: Runtime Organization API Gateway Tiers are about meeting operational objectives Aspects of one service or even one layer may have different scalability and reliability goals Resource governance (I/O, CPU, Memory) needs may differ between particular functions UX tier will be more efficient and more adaptable with client-based rendering Tier boundary most often is a process boundary On same machine, across machines In same organization, across organizations In trusted environment, across trust boundaries Tier boundaries often cut through layers Cuts may separate yours and theirs Ex: Your hosted web code and their browser Ex: Your data access code and their database Service Backend 2 tiers, 2 layers Browser Web Server 2 tiers, 1 layer

Services vs. Microservices Running Tiers as Services

Runtime and Deployment Models A monolith app contains domain specific functionality and is normally divided by functional layers such as web, business and data Scales by cloning the app on multiple servers/vms/containers App 1 A microservice application separates functionality into separate smaller services. Scales out by deploying each service App 1 App 2 independently creating instances of these services across servers/vms/containers Monolith Microservices

State Management Monolithic approach Single monolithic database Tiers of specific technologies Microservices approach Graph of interconnected microservices State typically scoped to the microservice Variety of technologies used stateless presentation services stateless services stateful services stateless services with separate stores

Microservice Architecture Benefits Scale Independently Different Technology Stacks Photo Share Photo Share Service Photo Share Service Photo Share Service Service Thumbnail Thumbnail Service Thumbnail Service Service Photo Share Service node.js Thumbnail Service.NET Independent Deployments Photo Share Service V1 Thumbnail Service V1 V2 Conflicting Dependencies SharedLib-v1 Photo Share Service SharedLib-v1 Photo Share Service Thumbnail SharedLib-v7 Thumbnail Service SharedLib-v7

Microservices Platform Requirements

Azure Service Fabric Any OS, Any Cloud Dev Box Azure On Premise Data centers Other Clouds

Service Fabric Programming Models & CI/CD Dev Box Azure On Premise Data centers Other Clouds

Scale and Reliability

Clustering Machine 1 Machine 2 Service B Split service to run on cluster of multiple machines. Requirement for simple case: No cross-instance state. LB Machine 3 Service B Service P Service becomes over-stressed Service B Move services onto multiple machines. More resources available to both services. Requirement: No shared cross-service state.

Clustering Machine 1 Machine 2 LB Service B Machine 3 Modern clustering infrastructure can allow for easy and consistent state-sharing and failover of ownership for aspects of partitioned workloads Service P Service B

Multi-Node Failover Clustering https://myservice.example.com HTTPS Failure of any node in gateway, compute, or storage leads to an automated "failover" to one of at least two secondaries. Secondaries are continuously updated with the all information required to instantly take ownership when needed. Stateful Compute Tier Primaries (Owners) Secondaries (Fallback) Storage Tier A 1 G 1 M 1 Node A 1 G 1 M 1 B 1 Storage Container O 3 Gateway Tier B 1 H 1 N 1 C 1 I 1 O 1 D 1 J 1 P 1 A 2 B 2 A 2 A 3 B 1 Node Node Node H 1 N 1 C 1 I 1 O 1 D 1 J 1 P 1 Storage Container A 2 A 3 O 2 Storage Container

RPC, Messaging, and Eventing

Communication REST is great for interactively accumulating and acting on state from multiple sources. Let s not pretend all clients are like that there s a lot more HTTP and RPC are great to obtain immediate answers. The longer it takes to generate the answer, the more brittle the model becomes

Command Report Notification Transfer Query Measurement Job Assignment Handover Update Request Trace

Command Transfer Query Handover Job Assignment Report Notification Measurement Trace Update Request

Intents Facts

Messaging Eventing Intents Expectations Conversations Contracts Control Transfer Value Transfer Facts History Context Order Schema

Messaging Eventing A B A? C?

Events Discrete Independent Report State Change Actionable Series Time Ordered Context Partitioned Report Condition Analyzable

Discrete Events are an Extensibility Enabler Report independent, actionable state changes to authorized subscribers Blob created Sales lead created Order confirmed Allows simple, noninvasive, reactive extension of the functionality of a service

Enter Serverless

How do Functions/Lambdas fit? A service can be made up of a fleet of independently deployed functions that jointly operate on a shared set of resources The service interface is made up from the union of the function interfaces The function interfaces may be a mix of RPC-style call interfaces and event driven ones Function API and Implementation Shared Resources

Example: Data Series Processing Stateful instances and Actors Ingestor Analyzer Collect Readings Read Partition Device Pull flow towards stateful instance

Example: Discrete Event Handling Alarms!! Serverless Functions Distributor Handlers Route Alarm Subscriptions Device!! L B!! Push flow towards stateless handlers

Event Grid Push Push * Coming soon Sub-second end-to-end latency in the 99 th percentile 10,000,000 events per second per region 24-hour retry with exponential back off for events not delivered

Platform-level event plane that s just there

But Lock-In?! Build twice right. Building the same solution twice, with shared code, leveraging as much of Azure and AWS PaaS services is operationally cheaper and more reliable than any DIY alternative in most companies reach.

A Service is software that is responsible for holding, processing, and/or distributing particular kinds of information within the scope of a system can be built, deployed, and run independently, meeting defined operational objectives communicates with consumers and other services, presenting information using conventions and/or contract assurances protects itself against unwanted access, and its information against loss handles failure conditions such that failures cannot lead to information corruption