code.talks 2015 - Microservices und die Jagd nach mehr Konversion

Post on 13-Apr-2017

184 views 4 download

Transcript of code.talks 2015 - Microservices und die Jagd nach mehr Konversion

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/

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