MicroservicesunddieJagdnachmehrKonversionBerndZuther-ITConsultantBigDatacodecentricAG
Conversion
Conversion Rate =Number of Goals achieved
Visits
actofconvertingsitevisitorsintopayingcustomers
proportionofvisitstoawebsitewhichtakeactiontogobeyondawebsitevisit
·
·
10/61
FeatureTogglepublicclassTopSellerRecommendationPanelextendsAbstractShopBasePanel{
@SpringBeanprivateFeatureToogleBeanfeatureToogleBean;
...
@OverrideprotectedvoidonConfigure(){super.onConfigure();setVisible(featureToogleBean.isTopSellerFeatureEnabled());}
...
}
JAVA
Disadvantagesthatwehadwiththewaywedevelopsoftware
15/61
DisadvantagesthatwehadwiththewaywedevelopsoftwareDevelopment:·
Longfeaturedevelopmentcycles
Longfeedbacktimes
Longbuildtime
Strangebehaviorafterchanges
Applicationscalability
-
-
-
-
-
15/61
DisadvantagesthatwehadwiththewaywedevelopsoftwareDevelopment:
ProductManagement:
·
Longfeaturedevelopmentcycles
Longfeedbacktimes
Longbuildtime
Strangebehaviorafterchanges
Applicationscalability
-
-
-
-
-
·
Longtimetomarket
A/Btestingdifficulttoachieve
Scalabilityofworkload
-
-
-
15/61
Data
Functionality
Microservice
17/61
Data
Functionality
Microservice
fitsinonebrain,·
17/61
Data
Functionality
Microservice
fitsinonebrain,
designedforreplaceability,
·
·
17/61
Data
Functionality
Microservice
fitsinonebrain,
designedforreplaceability,
autonomy(organisation&technology)
·
·
·
17/61
MicroserviceTaxonomy
Microservice
ApplicationFrontend
ServiceService
RepositoryService
Discovery
Contract Implementation Interface
BusinessLogic
Data
Monitoring/Logging
18/61
OnlineShop-UsecasesOnline Shop
order products
Buyer
view catalog
<include>
create cart
<include>
19/61
OnlineShop-Migration
<<device>>Microservice Server
<<web server>>Ngnix
<<service>>Cart Service
<<service>>Product Service
<<device>>Monolith Server
<<application server>>Tomcat
<<artifact>>shop.war
<<artifact>>Catalog View
<<artifact>>cart-service.jar
<<artifact>>product-
service.jar
Cart Catalog
Product
20/61
Microservice-Communication
Micro-service
Micro-service
Links
REST/
AMQP
DataReplication
25/61
Postel’sLaw{firstname:"Bernd",lastname:"Zuther",street:"Elsenheimerstraße55a",city:"München",zip:80687}
JAVASCRIPT
28/61
Postel’sLaw{firstname:"Bernd",lastname:"Zuther",birthday:"1983/08/15",street:"Elsenheimerstraße55a",city:"München",zip:80687}
JAVASCRIPT
29/61
Postel’sLaw{firstname:"Bernd",lastname:"Zuther",birthday:"1983/08/15",addresses:[{street:"Elsenheimerstraße55a",city:"München",zip:80687,type:"WORK"}]}
JAVASCRIPT
31/61
Postel’sLaw{firstname:"Bernd",lastname:"Zuther",birthday:"1983/08/15",street:"Elsenheimerstraße55a",city:"München",zip:80687,addresses:[{street:"Elsenheimerstraße55a",city:"München",zip:80687,type:"WORK"}]}
JAVASCRIPT
33/61
AlternativesURL:
Customrequestheader:
Acceptheader:
·
simplywhacktheAPIversionintotheURL,e.g.https://shop/api/v2/cart/all-
·
sameURLasbeforebutaddaheader“api-version:2”-
·
modifyacceptheadertospecifytheversion,e.g.“Accept:application/vnd.cart.v2+json”
-
35/61
MultiDeploymentPipeline
Build Test Publish
UI-Test
Build Test Publish
Deploy
Load-Test
Catalog View
Productservice
39/61
Docker
Docker-Work owbz@cc$dockerbuild-tzutherb/product-service.bz@cc$dockerpushzutherb/product-servicebz@cc$dockerpullzutherb/product-servicebz@cc$dockerrunzutherb/product-servicebz@cc$dockerpsCONTAINERIDIMAGECOMMANDCREATED87bb5524067dzutherb/product-service:latest"/product-0.6/bin/pr14seconds
BASH
CanaryRelease
Old Version
WebServer
ApplicationServer
DatabaseServer
New Version
WebServer
ApplicationServer
DatabaseServer
RouterUsers
95%
5%
45/61
DistributedSystem
ResourceAllocator
Executor Executor Executor
Scheduler
Docker Repository
Mesos
MesosMaster
MesosSlave
MesosSlave
MesosSlave
Marathon
Docker Repository
Scheduler
ResourceAllocator
Executor
Standby MesosMaster
Standby MesosMaster
Zookeeper
47/61
Vamp(VeryAwesomeMicroservicesPlatform)
48/61
Log-Aggregator
CorrelationId
CheckoutOrderService
PaymentProvider
ERPSystem
SubmitOrder
requestPayment
Paymentconfirmation
requestshipping
HeaderX-Correlation-ID
51/61
MappedDiagnosticContextMDC.put("correlationId","A8FFA290");Loggerlogger=LoggerFactory.getLogger(SimpleMDC.class);logger.info("CreateOrder");
JAVA
<appendername="CONSOLE"class="ch.qos.logback.core.ConsoleAppender"><layout><Pattern>[%X{correlationId}]-%m%n</Pattern></layout></appender>
XML
52/61
Summary
Pro Needs
supportsA/Btesting monitoring
effectivetechnologies centralisedlogging
solutionorientation fullyautomateddeploymentpipeline
incrementalmigration clustermanagement
organisationmustbeready
Microservicesdonotguaranteemoreconversion!Youneedtorunexperimentswithyourcustomers!
<ThankYou!>
g+ plus.google.com/+BerndZuthertwitter @Bernd_Zwww bernd-zuther.degithub github.com/zutherb/
LinksJavaAktuell02/15-MicroservicesunddieJagdnachmehrKonversion
Microservice-DeploymentganzeinfachmitGiantSwarm
Microservice-DeploymentganzeinfachmitKubernetes
Microservice-DeploymentganzeinfachmitDockerCompose
Microservice-DeploymentganzeinfachohneDockermitderLinux-Paketverwaltung
LeanStartup
TestDrivenBusinessFeaturingLeanStartUp
ContinuousDeliverymitdemFeatureTogglePattern
FeatureToggle
DoGoodMicroservicesArchitecturesSpelltheDeathoftheEnterpriseServiceBus?
Microservices
·
·
·
·
·
·
·
·
·
·
·
57/61
LinksPipe
ServiceOrientedArchitecture:WhatIsSOA?
TheTwelveFactors
ThreeGoldenRulesforContinuousDelivery
YourAPIversioningiswrong,whichiswhyIdecidedtodoit3differentwrongways
MicroservicesimZusammenspielmitContinuousDelivery,Teil1–dieTheorie
Fast,isolateddevelopmentenvironmentsusingDocker
MicroservicesversusOSGi:ÜberSinnundUnsinnder'neuenInkarnationdesWebservice
WarnungvordemMicroservice–VersucheinerDefinition
MicroServicesinderPraxis:NiewiederMonolithen!
NetflixNebula
·
·
·
·
·
·
·
·
·
·
·
58/61
LinksDeploymentganzeinfach–MicroserviceDeploymentmitHilfederLinuxPaketverwaltung
Splunk–MarkeEigenbaumitElasticsearch,LogstashundKibana(ELKStack)
ScalingDockerwithKubernetes
AppstashProject
·
·
·
·
59/61
ImagesDeliveryofsemlor
Freebooks
SOA
CubaCar
LandschaftsparkDuisburg-Nord
UnfallvonHerbertStenger
Lieferwagen
IndianapolisZoo
DeveloperAtWork
IcomIC735+Tuner
Justafaceinthecrowd
[119/366]ThumbsUp
Containers
·
·
·
·
·
·
·
·
·
·
·
·
·
60/61
ImagesKaufrausch
Caféconleche-Milchkaffee(CC)
CloningExperiments:JessPayne
hello,mynameisbobrossthebushy-hairedpainter.
BLMNevada
changemachine
s.Bär
There'salightattheendofthetunnel...
2012DCZeitgeistIII11787
RedRule
SchwarzwaldBlumenwiese
·
·
·
·
·
·
·
·
·
·
·
61/61