Top Banner
Bye, Bye Infrastructure Microservices mit Service Fabric Mesh Tobias Meier, BridgingIT GmbH Bilder: www.dreamstime.com Logos: Jeweilige Hersteller 26.09.2018 BASTA!
47

Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Oct 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Bye, Bye InfrastructureMicroservices mit Service Fabric Mesh

Tobias Meier, BridgingIT GmbH

Bilder: www.dreamstime.com

Logos: Jeweilige Hersteller

26.09.2018 BASTA!

Page 2: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Wir bringen Dinge zusammen

Standort Heidelberg

Berliner Straße 41

69120 Heidelberg

Standort Nürnberg

Königtorgraben 11

90402 Nürnberg

Standort Mannheim

N7, 5-6

68161 Mannheim

Standort Karlsruhe

Rüppurrer Straße 4

76137 Karlsruhe

Standort Stuttgart

Marienstraße 17

70178 Stuttgart

Standort München

Riesstraße 12

80992 München

Standort Frankfurt

Solmsstraße 4

60486 Frankfurt

Standort Köln

Martinstraße 3

50667 Köln

Copyright © BridgingIT GmbH | Autor: Tobias Meier | September 2018 | www.bridging-it.de

Lead Softwarearchitekt Microsoft

http://blog.bridging-it.de/author/Tobias.Meier [email protected] @bitTobiasMeier

Tobias Meier

Page 3: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Agenda1. Status Quo

2. Kurzer Überblick

3. Service Fabric Mesh

im Detail

4. Ausblick

Page 4: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Azure

Service Fabric

Microservice Microservice Guest Executable

Reliable Actor API Reliable Service API

Service Fabric

On-Premise

Microservice Microservice

Naming Service

Failover Manager

Resource Balancer

Replicator

Health Manager

Cluster Manager

Image Store Hosting

Transport

Testability

Communication

Federation

System services

Eigenes

Rechenzentrum

Beliebige Cloud-

Anbieter

Page 5: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Azure

Service Fabric

Microservice Microservice Guest Executable

Reliable Actor API Reliable Service API

Service Fabric

On-Premise

Microservice Microservice

Naming Service

Failover Manager

Resource Balancer

Replicator

Health Manager

Cluster Manager

Image Store Hosting

Transport

Testability

Communication

Federation

System services

Eigenes

Rechenzentrum

Beliebige Cloud-

Anbieter

Betreuungs-aufwand

Betreuungs-aufwand

Page 6: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual
Page 7: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual
Page 8: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service Fabric as a Service:

Service Fabric Mesh

▪Serverlose Infrastruktur

▪Skalierung bei Bedarf

▪Programmiersprachen-unabhängig

• Entwicklung von Microservices

▪Sekundengenaue Abrechnung

▪ Lifecycle Management

▪ Intelligent traffic routing

▪Verwaltung von Microservices und Containern

Page 9: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

ServerlessExplizites Cluster - Management

Service Fabric Service Fabric Mesh

Bring your own infrastructure Azure Infrastructure „As A Service“

Page 10: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Schon wieder etwas Neues ?

Service Fabric Mesh setzt auf Service Fabric auf !

Service Fabric

Service Fabric Mesh

Page 11: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Entwicklungsumgebung vorbereiten

▪ Visual Studio 2017 (15.6 oder neuer) bzw. VS Code

▪ Docker (Hyper V muss aktiviert sein)

▪ Service Fabric Mesh SDK

▪ Visual Studio Service Fabric Tools Preview

▪ Regionale Settings auf “Englische Lokale” umstellen

▪ Cluster manuell einrichten

▪ ./DevClusterSetup.ps1 -UseMachineName -CreateOneNodeCluster

Achtung: Nach jedem Wechsel der IP-Adresse muss der Cluster neu eingerichtet werden!

Page 12: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

VS Code-Extension

▪ npm install -g yo

▪ npm install -g generator-azuresfmesh

▪Visual Studio Code Extension installieren

Page 13: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Entwicklungsumgebung vorbereiten

▪ Visual Studio 2017 (15.6 oder neuer)

▪ Docker (Hyper V muss aktiviert sein)

▪ Service Fabric Mesh SDK

▪ Visual Studio Service Fabric Tools Preview

▪ Regionale Settings auf “Englische Lokale” umstellen

▪ Cluster manuell einrichten

▪ ./DevClusterSetup.ps1 -UseMachineName -CreateOneNodeCluster

Achtung: Nach jedem Wechsel der IP-Adresse muss der Cluster neu eingerichtet werden!

Empfehlung: Windows Server 2016

Install-Module -Name DockerMsftProvider -Repository PSGallery –ForceInstall-Package -Name docker -ProviderName DockerMsftProviderRestart-Computer -Force Sconfig// 6 auswählen

Page 14: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual
Page 15: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service Fabric Resources

Service Fabric /

Service Fabric Mesh

Resources

• Applikation / Dienste

• Netzwerk

• Laufwerke

• Routing-Regeln

• Secrets

• Skalierungs-Regeln

YAML / JSON

deployment.json

Page 16: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service Fabric Resources

Service Fabric /

Service Fabric Mesh

Resources

• Applikation / Dienste

• Netzwerk

• Laufwerke

• Routing-Regeln

• Secrets

• Skalierungs-Regeln

YAML / JSON

deployment.json

Page 17: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Container

Service Fabric Resources

YAML / JSON

Service Fabric Bibliotheken• Reliable Collection• Local H/A Storage (Asp.Net Core only)• SF API Client

Page 18: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

18

Service Fabric Application Models

Native Model

▪Manifest-Dateien

▪ Prozesse und Container

▪ .Net / Java

▪ Statefull, Stateless, Actor Services.

Docker Compose

▪Docker-Container in Service Fabric

▪Minimale Service Fabric-Integration

Resource Model

▪Yaml /Json

▪Container

▪ Lose gekoppelt

Page 19: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service Fabric Application Models

Native Model

Resource-Model

Docker Compose

Local Any Cloud On-Prem Azure Mesh

Page 20: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Mesh in Azure erzeugen: Visual Studio

Page 21: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Mesh in Azure erzeugen: Azure CLI 1/2

▪Extension hinzufügen / aktualisieren:▪ az extension add --name mesh

▪ az extension update --name mesh

▪Deployment über URL (Bash-Syntax)▪ az mesh deployment create --resource-group myResourceGroup--template-urihttps://sfmeshsamples.blob.core.windows.net/templates/voting/mesh_rp.windows.json --parameters "{\"location\": {\"value\": \"westeurope\"}}"

Page 22: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Mesh in Azure erzeugen: Azure CLI 2/2

▪Deployment über lokales Template

az mesh deployment create --resource-group myResourceGroup--template-file merged-arm.json –parameters @myparams.json

Page 23: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Mesh in Azure erzeugen: Fallstricke

Passwort für Container-Registry muss angegeben werden: myparams.json

{"$schema": "https://schema.management.azure.com/schemas/2015-01-

01/deploymentParameters.json#","contentVersion": "1.0.0.0","parameters": {

"registryPassword": {"value": "xytXYmEHzxaa=7d4TvVvVvtvhde23bU"

}}

}

Page 24: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Wie lautet die Adresse ?

az mesh network list

Page 25: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Wie lautet die Adresse ?

az mesh network list

Page 26: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service.yaml

## Service definition ##application:schemaVersion: 1.0.0-preview1name: BASTA2018SFMeshDemoproperties:services:- name: RestaurantService

properties:description: RestaurantService…osType: WindowscodePackages:- name: RestaurantServiceimage: restaurantservice:devendpoints:- name: RestaurantServiceListener

port: 20004

environmentVariables:- name: ASPNETCORE_URLSvalue: http://+:20004

resources:requests:cpu: 0.5memoryInGB: 1

replicaCount: 1networkRefs:- name: BASTA2018DemoNetwork

Page 27: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service.yaml

## Service definition ##application:schemaVersion: 1.0.0-preview1name: BASTA2018SFMeshDemoproperties:services:- name: RestaurantService

properties:description: RestaurantService…osType: WindowscodePackages:- name: RestaurantServiceimage: restaurantservice:devendpoints:- name: RestaurantServiceListener

port: 20004

environmentVariables:- name: ASPNETCORE_URLSvalue: http://+:20004

resources:requests:cpu: 0.5memoryInGB: 1

replicaCount: 1networkRefs:- name: BASTA2018DemoNetwork

Keine Tabs erlaubt, nur Spaces

Visual Studio: Edit | Advanced | View White Space

Page 28: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Network.yaml

## Network definition ##network:schemaVersion: 1.0.0-preview1name: BASTA2018DemoNetworkproperties:

description:BASTA2018DemoNetwork description.

addressPrefix: 10.0.0.4/22

ingressConfig:layer4:

- name: PortalIngresspublicPort: 20009applicationName:

BASTA2018SFMeshDemoserviceName: PortalendpointName:

PortalListener

Page 29: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Network.yaml

## Network definition ##network:schemaVersion: 1.0.0-preview1name: BASTA2018DemoNetworkproperties:

description:BASTA2018DemoNetwork description.

addressPrefix: 10.0.0.4/22

ingressConfig:layer4:

- name: PortalIngresspublicPort: 80applicationName:

BASTA2018SFMeshDemoserviceName: PortalendpointName:

PortalListener

Page 30: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual
Page 31: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service skalieren

az mesh deployment create --resource-group visualdemob1 --template-urihttps://sfmeshsamples.blob.core.windows.net/templates/visualobjects/mesh_rp.scaleout.linux.json --parameters "{\"location\": {\"value\": \"westeurope\"}}"

Page 32: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Service skalieren

az mesh deployment create --resource-group visualdemob1 --template-urihttps://sfmeshsamples.blob.core.windows.net/templates/visualobjects/mesh_rp.scaleout.linux.json --parameters "{\"location\": {\"value\": \"westeurope\"}}"

Page 33: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Offizielles Microsoft Beispiel:

https://github.com/Azure-Samples/service-

fabric-mesh/tree/master/src/visualobjects

Anleitung:

https://docs.microsoft.com/en-

us/azure/service-fabric-mesh/service-fabric-

mesh-howto-app-scale-out

Page 34: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Ignite 2018: Auto Scaling

autoScalingPolicies: [{"name": "MyAutoscaleRule1","trigger": {

"kind": "AverageLoad","metric": {

"kind": "Resource","name": "cpu",

},"lowerLoadThreshold": 0.3,"upperLoadThreshold": 0.5,"scaleIntervalInSeconds": 10},

"mechanism": {"kind": "AddRemoveReplica","minCount": 1,"maxCount": 100,"scaleIncrement": 10}

}]

Page 35: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Video von Microsoft:

https://youtu.be/-6qds7KSeC0

Page 36: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Routing

▪Plattformunabhängige Namensauflösung

▪Unterstützung für ▪ Retries

▪ Circuit Breaker-Pattern (dt. Sicherung)

▪ Throttling

Page 37: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Netzwerk

Service 3Service 2

Routing (in der Preview noch nicht vorhanden)

Service 1

Proxy Proxy Proxy

Proxy Routing-

Resource.yaml

Page 38: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Volume Resource

Service

Service FabricVolume Disk

Azure File Storage Volume

Re

pliz

iert

Page 39: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Volume.yaml

## Volume definition ##volume:schemaVersion: 1.0.0-preview1name: BASTA2018SFMeshDemoVolumeproperties:description: Azure Volumeprovider: SFAzureFileazureFileParameters:shareName: "[parameters('azurefile-shareName')]"accountName: "[parameters('azurefile-accountName')]"accountKey: "[parameters('azurefile-accountKey')]"

Page 40: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Offizielles Microsoft Beispiel:

https://github.com/Azure-Samples/

service-fabric-mesh/tree/master/src/counter

Anleitung:

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/service-fabric-

mesh/service-fabric-mesh-howto-deploy-app-azurefiles-volume.md

Page 41: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Microsoft Ignite 2018: Statefulness

• NuGet-Packages für .Net Core und Library für Java

• Replikation erfolgt über ein Service Fabric Volume

Service Package

Reliable Collection

Service Package

Reliable Collection

Service Fabric Volume

Page 42: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Microsoft Ignite 2018: Secrets

Service

Secr

ets,

Cer

tifi

cate

s

Unterstützung von HTTPS-Endpoints in Mesh!

Page 43: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Einschränkungen der Preview

▪Max. 5 Applikationen

▪Max 5 Netzwerk und Ingress-Endpunkte

▪Max 10 Azure-Volumen

▪Max 3 Replikas

▪Max 16 GB RAM pro Container

▪Max. 48 GB RAM pro Applikation

▪Max 12 cores pro Applikation

▪Max 4 Cores pro Container

Page 44: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Roadmap

Kurzfristig:

▪ Reliable Collections

▪ Service Fabric volume driver

▪ Secrets (Key Vault)

▪ Network (Erweiterung)

▪ Gateway

▪ Autoscale

▪ Erweitertes Tooling in VS.Net

▪ Maven-Unterstützung

Weitere Roadmap:

▪Version 1.0

Page 45: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Beispiele des Vortrags und Folien

▪ http://blog.bridging-it.de/author/Tobias.Meier

▪ https://github.com/bitTobiasMeier/basta2018mesh

Ab 27.09.2018

Page 46: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Nächste Schritte

▪Übersicht: https://docs.microsoft.com/de-de/azure/service-fabric-mesh/service-fabric-mesh-overview

▪Dokumentation: https://docs.microsoft.com/de-de/azure/service-fabric-mesh/

▪Beispiele von Microsoft:https://github.com/Azure-Samples/service-fabric-mesh

Page 47: Bye, Bye Infrastructure · VS Code-Extension npm install -g yo npm install -g generator-azuresfmesh Visual Studio Code Extension installieren. Entwicklungsumgebung vorbereiten Visual

Blog: http://blog.bridging-it.de/author/Tobias.Meier

Email: [email protected]

Twitter: @bITTobiasMeier