34
Pieter de Bruin 26-11-2016 Microservices technologies

Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Embed Size (px)

Citation preview

Page 1: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Pieter de Bruin26-11-2016

Microservices technologies

Page 2: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

AgendaIntroductionASP.NET 5Containers: Windows & DockerService FabricConclusion

Page 3: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Platform Services

Security & Manageme

nt

Infrastructure ServicesCompute Storage

Datacenter Infrastructure (24 Regions, 19 Online)

Web and MobileWeb Apps

MobileApps

APIManagement

APIApps

LogicApps

NotificationHubs

Media & CDNContent DeliveryNetwork (CDN)

MediaServices

Analytics & IoT

HDInsight MachineLearning

StreamAnalytics

DataFactory

EventHubs

MobileEngagement

ActiveDirectory

Multi-FactorAuthentication

Automation

Portal

Key Vault

IntegrationBiztalkServices

HybridConnections

ServiceBus

StorageQueues

Store /Marketplace

HybridOperations

Backup

StorSimple

SiteRecovery

Import/Export

Networking

Data

SQLDatabase

DocumentDB

RedisCache Search

Tables

SQL DataWarehouse

Azure AD Connect Health

Virtual Network

ExpressRoute

BLOB Storage

Azure Files

Premium Storage

Virtual Machines

AD PrivilegedIdentity Management

Traffic Manager

Application Gateway

OperationalInsights

ComputeCloudServices

Batch Remote App

ServiceFabric

Developer Services

Visual Studio

ApplicationInsights

Azure SDK

Team Project

Containers

VM Image Gallery& VM Depot

DNS VPN Gateway

Load Balancer

Page 4: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

AZURE REGIONS

24Azure regions around the world

Page 5: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Enterprise proven

Hybrid

Hyper-scale

Hybrid

Hybrid

Azure Stack

On-premises

Page 6: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Enterprise proven

Hybrid

Hyper-scale

Open + Flexible

Open & flexible Applications

Infrastructure

Management

Databases & Middleware

App Frameworks

Linux

Page 7: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Enterprise proven

Hybrid

Hyper-scale Open & flexible

TrustworthyMore compliance certifications than any other cloud

Trustworthy

Developer & IT productivity

Trustworthy

Platform for SaaS extensibility

Page 8: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

ASP.NET 5

Page 9: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

What is ASP.NET 5?

A new open-source and cross-platform framework for building modern cloud-based Web applications using .NET

Page 10: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

ASP.NET and the Modern Web

Choose your Editors and Tools

Open Source with Contributions Cross-PlatformOSS

Seamless transition from on-premises to cloud

Faster Development CycleTotally Modular

Fast

Page 11: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

ASP.NET 5 in a Nutshell

.NET Framework 4.6 .NET Core 5 Full .NET Framework for any scenario and

library support on WindowsModular libraries & runtime optimized

for server and cloud workloads

ASP.NET 4.6 (System.Web)

MVC 5.x

MVC / Web API 6

Core CLR .Net Native

ASP.NET 5

Web API 2.2

WebForms

.NET Execution Environment (DNX)

Page 12: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

MICROSOFT CONF IDENTIAL – INTERNAL ONLY

MVC 6: MVC, Web API, Web PagesOne set of concepts – remove duplicationWeb UI and Web APIsSmooth transition from Web Pages to MVC (future)Built DI firstBuilt on ASP.NET 5Runs on IIS or self-hostedSupports .NET Core

Page 13: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Demo

Page 14: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Containers

Page 15: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

What is a Container• Declarative packaging• Unit of deployment• Isolated environment • Isolated resources

Container 101

Why Containers• Avoid “It works on my machine”• Write once run anywhere• Very lightweight• Massive Scale• Repeatable and reliable execution• Dev Ops• Great for microservices

Page 16: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Win

dows

Use Hyper-V Containers when: The host doesn’t trust the code it’s hosting in the container You want a version of Windows different than what’s running in the

container host

Windows Isolation SpectrumQuotas

and limits

Process

State isolatio

n

Hostile Multi-tenant Isolation

Hardware virtualization

Job Objects

Windows Server

Containers

Hyper-V Container

s

Hyper-V Virtual

Machines

Faster and more efficient More isolated and more secure

New

Page 17: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Docker 101Container ImagesContainer Run-

Time

Linux

Image Repository

(Docker API/Client) (Docker images) (Docker Hub/Trusted Repositories)

Page 18: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Choice

Page 19: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Windows Server ImageWindows Extension

Windows Containers on Azure

Azure

Curated ExtensionsAgent

Page 20: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Demo

Page 21: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Service Fabric

Page 22: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Comparing Azure Cloud Services vs. Azure Service Fabric

Azure Cloud Services (Web and Worker Roles)

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

Page 23: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Azure Other cloudsPrivate cloud

Service Fabric

Scalability

Availability

Performance

Lifecycle manageme

ntPortability Monitoring

Azure Service Fabric

Page 24: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

In other wordsCluster VMs to create a pool of resourcesDeploy apps into the clusterScale out and scale downHandle failures transparently by providing failover for applicationsAutomatically move applications to utilize the resources most efficientlyFind where an application is currently runningRoll out application upgrades with no downtimeProvide application diagnostics and monitoring insight

Page 25: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Azure Core Infrastruct

urethousands of

machines

Power BI

Intune800k

devices

Azure SQL Database

1.4 million databases

Bing Cortana

500m evals/sec

Azure Document

DBbillions

transactions/week

Skype for Business

Hybrid Ops

Event Hubs

20bn events/day

Services built with Service Fabric

Page 26: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Service Fabric Preview271 customers

Page 27: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

A set of machines that Service Fabric stitches together to form a cluster

Clusters can scale to 1,000s of machines

Service Fabric Cluster

Page 28: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Update system services

File store service

Naming service

Cluster manager

Failover manager

System Services

Page 29: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Usually stateless microservice with related remote external database, SQL DB, DocDB, etc.

Like stateless service plus Data is in-memory and/or persisted locally. Data is replicated across the Service Fabric cluster to other nodes

Stateless vs. Stateful services in Azure Service Fabric

Stateful service

Sample Scenarios• Traditional WebApp or Service (even monolithic

approach)• Stateless microservice with related external DB• Large/complex enterprise applications based on

microservices• Domain-Driven Design scenario evolution

• Stateless background service for batch/scheduled processes

Sample Scenarios• Stateful microservice with fast data

processing because of no latency between logic and data

• Gaming backends• Live IoT backends• High scalable/available database

implementation (i.e. Azure Document DB, Azure SQL DB)

• Other..

Stateless service .NET process

(currently)

Any other language in the future (Node.js, Java, etc.)

Stateless services in Service Fabric can fit great into most current enterprise high- scalable architectures and scenarios

Stateful services in Service Fabric are special scenarios not suitable for all applications.

Page 30: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Application Contain

erContain

er

Container

Container

Application: A group of microservices

Page 31: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Other important topics in Service Fabric

• Rolling Upgrades• Health Monitoring• Cluster lifecycle

management• Cluster Self-healing• Automated Rollback• Placement Constraints• Resource Balancing• Replication & Failover

Page 32: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

Demo

Page 33: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

SummaryASP.NET 5, containers, service fabric and Azure provide all kind of options for microservice solutions.

Microsoft loves microservices

Page 34: Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie Microservices?

© 2014 Microsoft Corporation. All rights reserved.