49
Die dunkle Seite der Microservices ...und wie du besiegen sie kannst Tobias Bayer, Hendrik Still

Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Embed Size (px)

Citation preview

Page 1: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

DiedunkleSeitederMicroservices

...undwiedubesiegensiekannst

TobiasBayer,HendrikStill

Page 2: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

WassindMicroservices?

Page 3: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

WassindMicroservices?

AufgeteiltnachGeschäftsfunktionenLeichtgewichtigeProtokolle(z.B.RESTüberHTTP)EinProzessproMicroservice-Instanz

Page 4: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

DieMachtiststarkinihnenSkalierbarkeitAusfallsicherheitPolyglotteEntwicklungKleineCodebasisUnabhängigeEntwicklungsteamsUnabhängigesDeployment

Page 5: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

DiedunkleSeitederMacht

Page 6: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

DiedunkleSeitederMacht

MonitoringVerteilteDaten/TransaktionenCodeduplikationVersionierungFehlerbehandlungSicherheitServiceDiscoveryTestbarkeit

Page 7: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ServiceDiscovery

Page 8: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ServiceDiscoveryDassindnichtdieDroiden,dieihrsucht

Page 9: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ServiceDiscovery

Eureka

NetflixOSSSinglePurposeRegistryRESTInterfaceJavaClientSpringIntegrationClient-SideLoadBalancingmitRibbon

Page 10: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ServiceDiscovery

Page 11: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ServiceDiscoveryDemo

Page 12: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 13: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Integrationstests

Page 14: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 15: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 16: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 17: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 18: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 19: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 20: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 21: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 22: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 23: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 24: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 25: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 26: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Page 27: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Consumer-DrivenContracts

Demo

Page 28: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

Page 29: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 30: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 31: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 32: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 33: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 34: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 35: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDCConsumer

Head Prod

Head

ProviderProd

AlreadyTested!

EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices

Page 36: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

Pact-Broker

UploadPactsDownloadPactsTagPactsWeboberfläche

Page 37: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

Page 38: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

ProviderPipeline

Page 39: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

gradle build

Page 40: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

docker build -t productpriceservice:test .docker push productpriceservice:test

Page 41: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

#start test containerdocker run ... productpriceservice:test#wait for the container to startsleep 10#verify pact with specific gradle file./gradlew -b pact_verification_ci/build.gradle /-P pactProductPriceServiceHost=$CIP /-P pactProductPriceServiceTag="latest/prod" pactVerify#stop test containerdocker rm -f $CID

Page 42: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

#start docker instance with new imagedocker run ... productpriceservice:test#tag docker image as productiondocker tag productpriceservice:test productpriceservice:proddocker push productpriceservice:prod

Page 43: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

ConsumerPipeline

Page 44: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

gradle buildgradle pactPublish

Page 45: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

docker build -t user/productservice:test .docker push user/productservice:test

Page 46: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

#start docker instance with provider imagedocker run ... productdetailsservice:prod#wait for the container to startsleep 10#verify pact with specific gradle file./gradlew -b pact_verification_ci/build.gradle \-P pactProductDetailsServiceHost=$CIP \-P pactProductDetailsServiceTag="latest" pactVerify_productDetailsServiceProvider#stop test containerdocker rm -f $CID

#start docker instance with provider imagedocker run ... microservicesplayground_productpriceservice:prod#wait for the container to startsleep 10...

Page 47: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

#start docker instance with new imagedocker run ... productservice:test#tag docker image as productiondocker tag user/productservice:test productservice:proddocker push productservice:prod

Page 48: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

Deployment-PipelinemitCDC

curl -X PUT -H "Content-Type: application/json" /http://pact-broker:9292/pacticipants/Product_Service //versions/1.0.0/tags/prod

Page 49: Die dunkle Seite der Microservices - und wie du sie besiegen kannst

ContactInformation

TobiasBayer:[email protected]

HendrikStill:[email protected]