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

Post on 08-Jan-2017

1.148 views 0 download

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

Pieter de Bruin26-11-2016

Microservices technologies

AgendaIntroductionASP.NET 5Containers: Windows & DockerService FabricConclusion

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

AZURE REGIONS

24Azure regions around the world

Enterprise proven

Hybrid

Hyper-scale

Hybrid

Hybrid

Azure Stack

On-premises

Enterprise proven

Hybrid

Hyper-scale

Open + Flexible

Open & flexible Applications

Infrastructure

Management

Databases & Middleware

App Frameworks

Linux

Enterprise proven

Hybrid

Hyper-scale Open & flexible

TrustworthyMore compliance certifications than any other cloud

Trustworthy

Developer & IT productivity

Trustworthy

Platform for SaaS extensibility

ASP.NET 5

What is ASP.NET 5?

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

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

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)

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

Demo

Containers

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

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

Docker 101Container ImagesContainer Run-

Time

Linux

Image Repository

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

Choice

Windows Server ImageWindows Extension

Windows Containers on Azure

Azure

Curated ExtensionsAgent

Demo

Service Fabric

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

Azure Other cloudsPrivate cloud

Service Fabric

Scalability

Availability

Performance

Lifecycle manageme

ntPortability Monitoring

Azure Service Fabric

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

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

Service Fabric Preview271 customers

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

Clusters can scale to 1,000s of machines

Service Fabric Cluster

Update system services

File store service

Naming service

Cluster manager

Failover manager

System Services

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.

Application Contain

erContain

er

Container

Container

Application: A group of 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

Demo

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

Microsoft loves microservices

© 2014 Microsoft Corporation. All rights reserved.