DiedunkleSeitederMicroservices
...undwiedubesiegensiekannst
TobiasBayer,HendrikStill
WassindMicroservices?
WassindMicroservices?
AufgeteiltnachGeschäftsfunktionenLeichtgewichtigeProtokolle(z.B.RESTüberHTTP)EinProzessproMicroservice-Instanz
DieMachtiststarkinihnenSkalierbarkeitAusfallsicherheitPolyglotteEntwicklungKleineCodebasisUnabhängigeEntwicklungsteamsUnabhängigesDeployment
DiedunkleSeitederMacht
DiedunkleSeitederMacht
MonitoringVerteilteDaten/TransaktionenCodeduplikationVersionierungFehlerbehandlungSicherheitServiceDiscoveryTestbarkeit
ServiceDiscovery
ServiceDiscoveryDassindnichtdieDroiden,dieihrsucht
ServiceDiscovery
Eureka
NetflixOSSSinglePurposeRegistryRESTInterfaceJavaClientSpringIntegrationClient-SideLoadBalancingmitRibbon
ServiceDiscovery
ServiceDiscoveryDemo
Consumer-DrivenContracts
Consumer-DrivenContracts
Integrationstests
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Consumer-DrivenContracts
Demo
Deployment-PipelinemitCDC
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDCConsumer
Head Prod
Head
ProviderProd
AlreadyTested!
EnterthePactMatrix.Or,howtodecouplethereleasecyclesofyourmicroservices
Deployment-PipelinemitCDC
Pact-Broker
UploadPactsDownloadPactsTagPactsWeboberfläche
Deployment-PipelinemitCDC
Deployment-PipelinemitCDC
ProviderPipeline
Deployment-PipelinemitCDC
gradle build
Deployment-PipelinemitCDC
docker build -t productpriceservice:test .docker push productpriceservice:test
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
Deployment-PipelinemitCDC
#start docker instance with new imagedocker run ... productpriceservice:test#tag docker image as productiondocker tag productpriceservice:test productpriceservice:proddocker push productpriceservice:prod
Deployment-PipelinemitCDC
ConsumerPipeline
Deployment-PipelinemitCDC
gradle buildgradle pactPublish
Deployment-PipelinemitCDC
docker build -t user/productservice:test .docker push user/productservice:test
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...
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
Deployment-PipelinemitCDC
curl -X PUT -H "Content-Type: application/json" /http://pact-broker:9292/pacticipants/Product_Service //versions/1.0.0/tags/prod