SlideShare a Scribd company logo
Die Jagd nach mehr Konversion
FluchoderSegenfürdenEntwickler
Bernd Zuther - IT Consultant Big Data
codecentric AG
Bernd Zuther
@Bernd_Z
github.com/zutherb
bernd.zuther@codecentric.de
How can we increase sales?
A/B Testing
Conversion
Conversion Rate =
Number of Goals achieved
Visits
act of converting site visitors into paying customers
proportion of visits to a website which take action to go beyond a website visit
·
·
FeatureToggle
public class TopSellerRecommendationPanel extends AbstractShopBasePanel {
@SpringBean
private FeatureToogleBean featureToogleBean;
...
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(featureToogleBean.isTopSellerFeatureEnabled());
}
...
}
JAVA
Checkout - Variant A
Checkout - Variant B
Project
Scrum + 98% forecast (commitment) guarantee
regular deployment 1 x 2 weeks
hot fix/feature deployments 2-4 per sprint
around 1 1/2 h to get into production
·
·
·
·
35min per build
40min per ITIL stuff:
20min per manual deployment
-
-
calls
ticket
etc.
-
-
-
-
How can we deliver faster?
What have we done?
How does it work?
Disadvantages of a Monolith
Reduction of development speed
Increase of turnaround times
Increase of build time
Strange behavior after changes
Increase of time to market
A/B testing of process changes nearly impossible
Scalability (e.g. application and teams)
·
·
·
·
·
·
·
How can we build software smarter?
Microservice
Data
Functionality
Microservice Architecture
Data
Functionality
Data
Functionality
Data
Functionality
Functionality
Data
Functionality
Data
Service-Oriented Architecture (SOA / 1996)
SOA is an architectural style that supports service-orientation.
Service-orientation is a way of thinking in terms of services.
A service:
·
·
·
Is a logical representation of a repeatable business activity
(e.g., submit order)
Is self-contained
May be composed of other services
Is a “black box” to consumers of the service
-
-
-
-
SOA taxonomy
Differences to SOA
Lightweight infrastructure and protocols (e.g. REST)
Greater flexibility of architecture (e.g. can contain GUI)
Managed as products, with their own lifecycle and delivery
Deployed as processes (Unix packages or Container)
·
·
·
·
Online Shop - Use cases
Online Shop
order products
Buyer
view catalog
<include>
create cart
<include>
Online Shop - 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
Challenges of Microservices
Require integration.
Require a multi deployment pipeline.
Require automation of deployment and configuration.
Require logging and monitoring.
·
·
·
·
Leavitt - Communication Structure
Type Star Chain Circle Complete Structure
centralization high medium low very low
communication low medium much very much
controllability much medium low very low
Conway's Law
<<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
Rest Communication
{
firstname: "Bernd",
lastname: "Zuther",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687
}
JAVASCRIPT
Rest Communication
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687
}
JAVASCRIPT
Rest Communication
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
addresses : [{
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
type: "WORK"
}]
}
JAVASCRIPT
Versionless Rest Communication
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
addresses : [{
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
type: "WORK"
}]
}
JAVASCRIPT
Alternatives
URL:
Custom request header:
Accept header:
·
simply whack the API version into the URL, e.g. https://shop/api/v2/cart/all-
·
same URL as before but add a header “api-version: 2”-
·
modify accept header to specify the version, e.g. “Accept:
application/vnd.cart.v2+json”
-
Multi Deployment Pipeline
Build Test Publish
UI-Test
Build Test Publish
Deployment
Load-Test
Catalog View
Productservice
Deployment
@RestController
class CartController {
@Autowired
def CartRepository cartRepository;
@RequestMapping(value = "/create", produces =
MediaType.APPLICATION_JSON_VALUE, method =
RequestMethod.PUT)
@ResponseBody
def UUID create(@RequestBody CartItem item) {
cartRepository .create(item)
}
<<executable>>
cart-service.jar
build
Configuration
CART_SERVICE_PROFILES=production
CART_SERVICE_PORT=18100
CART_SERVICE_REDIS_URL=redis.microservice.io
release
release
<<package>>
cart-service.debrelease
Infrastructure Code
#! /bin/sh
PIDFILE=/var/run/cart.pid
BASE_DIRECTORY=/usr/share/shop/cart/bin
Unix Package Repository
How can we describe infrastructure
and products?
Docker Environment
<<device>>
Docker Deamon
<<container>>
Ngnix
<<container>>
Cart Service
<<container>>
Product
Service
<<artifact>>
checkout
.war
<<artifact>>
catalog.tar
<<artifact>>
cart-service.jar
<<artifact>>
product-
service.jar
<<container>>
Tomcat
<<container>>
MongoDB
<<container>>
Redis
<<container>>
Navigation
Service
<<artifact>>
navigation-
service.jar
Kubernetes - Cluster Management
Pod
kind: Pod
desiredState:
manifest:
containers:
- name: mongodb
image: dockerfile/mongodb
cpu: 100
memory: 50000000
ports:
- containerPort: 27017
YAML
Replication Controller
kind: ReplicationController,
desiredState:
replicas: 4
podTemplate:
desiredState:
manifest:
containers:
- name: product
image: zutherb/product-service
YAML
Service
Experiment with your customers!
Summary
Pro Needs
better A/B testing monitoring
effective technologies centralised logging
solution orientation fully automated deployment pipeline
incremental migration cluster management
Microservices do not guarantee more conversion!
You need to run experiments with your customers!
<Thank You!>
g+ plus.google.com/+BerndZuther
twitter @Bernd_Z
www bernd-zuther.de
github github.com/zutherb/
Links
Java Aktuell 02/15 - Microservices und die Jagd nach mehr Konversion
Lean Startup
Test Driven Business Featuring Lean StartUp
Continuous Delivery mit dem FeatureToggle Pattern
FeatureToggle
Do Good Microservices Architectures Spell the Death of the Enterprise Service
Bus?
Microservices
Pipe
Service Oriented Architecture : What Is SOA?
The Twelve Factors
Three Golden Rules for Continuous Delivery
·
·
·
·
·
·
·
·
·
·
·
Links
Your API versioning is wrong, which is why I decided to do it 3 different wrong
ways
Microservices im Zusammenspiel mit Continuous Delivery, Teil 1 – die Theorie
Fast, isolated development environments using Docker
Microservices versus OSGi: Über Sinn und Unsinn der 'neuen Inkarnation des
Webservice
Warnung vor dem Microservice – Versuch einer Definition
Micro Services in der Praxis: Nie wieder Monolithen!
Netflix Nebula
Deployment ganz einfach – Microservice Deployment mit Hilfe der Linux
Paketverwaltung
Splunk – Marke Eigenbau mit Elasticsearch, Logstash und Kibana (ELK Stack)
Scaling Docker with Kubernetes
Appstash Project
·
·
·
·
·
·
·
·
·
·
·
Images
Delivery of semlor
Freebooks
SOA
Cuba Car
Landschaftspark Duisburg-Nord
Unfall von Herbert Stenger
Lieferwagen
Indianapolis Zoo
Developer At Work
Icom IC735 + Tuner
Just a face in the crowd
[119/366] Thumbs Up
Containers
·
·
·
·
·
·
·
·
·
·
·
·
·
Images
Café con leche - Milchkaffee (CC)
Cloning Experiments: Jess Payne
BLM Nevada
There's a light at the end of the tunnel...
·
·
·
·

More Related Content

What's hot

Transaction Level Debug with SystemVerilog VMM & Verdi
Transaction Level Debug with SystemVerilog VMM & VerdiTransaction Level Debug with SystemVerilog VMM & Verdi
Transaction Level Debug with SystemVerilog VMM & Verdi
Srinivasan Venkataramanan
 
Anubhuti - Engineering Incubation Centre (EIC)
Anubhuti - Engineering Incubation Centre (EIC)Anubhuti - Engineering Incubation Centre (EIC)
Anubhuti - Engineering Incubation Centre (EIC)
Srinivasan Venkataramanan
 

What's hot (20)

Order Processing at Scale: Zalando at Camunda Community Day
Order Processing at Scale: Zalando at Camunda Community DayOrder Processing at Scale: Zalando at Camunda Community Day
Order Processing at Scale: Zalando at Camunda Community Day
 
Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6
 
BPMN2 primer
BPMN2 primerBPMN2 primer
BPMN2 primer
 
Deep dive into jBPM6
Deep dive into jBPM6Deep dive into jBPM6
Deep dive into jBPM6
 
Case management applications with BPM
Case management applications with BPMCase management applications with BPM
Case management applications with BPM
 
BPMN2 and jBPM5
BPMN2 and jBPM5BPMN2 and jBPM5
BPMN2 and jBPM5
 
Process-driven applications
Process-driven applicationsProcess-driven applications
Process-driven applications
 
jBPM6 Updates
jBPM6 UpdatesjBPM6 Updates
jBPM6 Updates
 
jBPM Case Mgmt v7 Roadmap
jBPM Case Mgmt v7 RoadmapjBPM Case Mgmt v7 Roadmap
jBPM Case Mgmt v7 Roadmap
 
Streamline your processes with jBPM 6
Streamline your processes with jBPM 6Streamline your processes with jBPM 6
Streamline your processes with jBPM 6
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process future
 
Building successful business Java apps: How to deliver more, code less, and c...
Building successful business Java apps: How to deliver more, code less, and c...Building successful business Java apps: How to deliver more, code less, and c...
Building successful business Java apps: How to deliver more, code less, and c...
 
CICD With GitHub, Travis, SonarCloud and Docker Hub
CICD With GitHub, Travis, SonarCloud and Docker HubCICD With GitHub, Travis, SonarCloud and Docker Hub
CICD With GitHub, Travis, SonarCloud and Docker Hub
 
jBPM v7 Roadmap
jBPM v7 RoadmapjBPM v7 Roadmap
jBPM v7 Roadmap
 
jBPM5: Bringing more Power to your Business Processes
jBPM5: Bringing more Power to your Business ProcessesjBPM5: Bringing more Power to your Business Processes
jBPM5: Bringing more Power to your Business Processes
 
Jbpm online training
Jbpm online trainingJbpm online training
Jbpm online training
 
New Chargeback - Sergio Ocon - ManageIQ Design Summit 2016
New Chargeback - Sergio Ocon - ManageIQ Design Summit 2016New Chargeback - Sergio Ocon - ManageIQ Design Summit 2016
New Chargeback - Sergio Ocon - ManageIQ Design Summit 2016
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?
 
Transaction Level Debug with SystemVerilog VMM & Verdi
Transaction Level Debug with SystemVerilog VMM & VerdiTransaction Level Debug with SystemVerilog VMM & Verdi
Transaction Level Debug with SystemVerilog VMM & Verdi
 
Anubhuti - Engineering Incubation Centre (EIC)
Anubhuti - Engineering Incubation Centre (EIC)Anubhuti - Engineering Incubation Centre (EIC)
Anubhuti - Engineering Incubation Centre (EIC)
 

Viewers also liked

Memory leak analyse
Memory leak analyseMemory leak analyse
Memory leak analyse
Bernd Zuther
 

Viewers also liked (6)

Von Null auf Hundert mit Microservices
Von Null auf Hundert mit Microservices Von Null auf Hundert mit Microservices
Von Null auf Hundert mit Microservices
 
Confess - Microservices and Conversion Hunting - Build architectures for chan...
Confess - Microservices and Conversion Hunting - Build architectures for chan...Confess - Microservices and Conversion Hunting - Build architectures for chan...
Confess - Microservices and Conversion Hunting - Build architectures for chan...
 
Memory leak analyse
Memory leak analyseMemory leak analyse
Memory leak analyse
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
Using Groovy with Jenkins
Using Groovy with JenkinsUsing Groovy with Jenkins
Using Groovy with Jenkins
 
Bau dein eigenes extreme feedback device
Bau dein eigenes extreme feedback deviceBau dein eigenes extreme feedback device
Bau dein eigenes extreme feedback device
 

Similar to Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler

Refacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStoresRefacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStores
Doron Rosenstock
 
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
confluent
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 

Similar to Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler (20)

code.talks 2015 - Microservices und die Jagd nach mehr Konversion
code.talks 2015 - Microservices und die Jagd nach mehr Konversioncode.talks 2015 - Microservices und die Jagd nach mehr Konversion
code.talks 2015 - Microservices und die Jagd nach mehr Konversion
 
Supercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeSupercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the Edge
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
 
Everything you want to know about microservices
Everything you want to know about microservicesEverything you want to know about microservices
Everything you want to know about microservices
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Migration of Two Million Records with Zero Downtime for a Global Financial Or...
Migration of Two Million Records with Zero Downtime for a Global Financial Or...Migration of Two Million Records with Zero Downtime for a Global Financial Or...
Migration of Two Million Records with Zero Downtime for a Global Financial Or...
 
Refacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStoresRefacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStores
 
Preparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptxPreparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptx
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 
Blugento cloud foundry - components - principles
Blugento cloud foundry - components - principlesBlugento cloud foundry - components - principles
Blugento cloud foundry - components - principles
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Master the flow of microservices - because your business is more complex than...
Master the flow of microservices - because your business is more complex than...Master the flow of microservices - because your business is more complex than...
Master the flow of microservices - because your business is more complex than...
 
Building multi tenancy enterprise applications
Building multi tenancy enterprise applicationsBuilding multi tenancy enterprise applications
Building multi tenancy enterprise applications
 
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
Kafka Summit 2018: Monitoring and Orchestration of Your Microservices Landsca...
 
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
The Big Picture: Monitoring and Orchestration of Your Microservices Landscape...
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
 

More from Bernd Zuther

Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
Bernd Zuther
 
Building an-online-recommendation-engine-with-mongodb-cebit-hannover
Building an-online-recommendation-engine-with-mongodb-cebit-hannoverBuilding an-online-recommendation-engine-with-mongodb-cebit-hannover
Building an-online-recommendation-engine-with-mongodb-cebit-hannover
Bernd Zuther
 
Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
Bernd Zuther
 
Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
Bernd Zuther
 
Mongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data SolyankaMongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data Solyanka
Bernd Zuther
 
Real time Analytics with MongoDB
Real time Analytics with MongoDBReal time Analytics with MongoDB
Real time Analytics with MongoDB
Bernd Zuther
 

More from Bernd Zuther (6)

Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
 
Building an-online-recommendation-engine-with-mongodb-cebit-hannover
Building an-online-recommendation-engine-with-mongodb-cebit-hannoverBuilding an-online-recommendation-engine-with-mongodb-cebit-hannover
Building an-online-recommendation-engine-with-mongodb-cebit-hannover
 
Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
 
Building an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDBBuilding an Online-Recommendation Engine with MongoDB
Building an Online-Recommendation Engine with MongoDB
 
Mongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data SolyankaMongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data Solyanka
 
Real time Analytics with MongoDB
Real time Analytics with MongoDBReal time Analytics with MongoDB
Real time Analytics with MongoDB
 

Recently uploaded

LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
Antenna efficency lecture course chapter 3.pdf
Antenna  efficency lecture course chapter 3.pdfAntenna  efficency lecture course chapter 3.pdf
Antenna efficency lecture course chapter 3.pdf
AbrahamGadissa
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
AbrahamGadissa
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 

Recently uploaded (20)

fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
 
fluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerfluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answer
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
Antenna efficency lecture course chapter 3.pdf
Antenna  efficency lecture course chapter 3.pdfAntenna  efficency lecture course chapter 3.pdf
Antenna efficency lecture course chapter 3.pdf
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
Toll tax management system project report..pdf
Toll tax management system project report..pdfToll tax management system project report..pdf
Toll tax management system project report..pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Explosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdfExplosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdf
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 

Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler

  • 1.
  • 2. Die Jagd nach mehr Konversion FluchoderSegenfürdenEntwickler Bernd Zuther - IT Consultant Big Data codecentric AG
  • 4.
  • 5. How can we increase sales?
  • 7. Conversion Conversion Rate = Number of Goals achieved Visits act of converting site visitors into paying customers proportion of visits to a website which take action to go beyond a website visit · ·
  • 8. FeatureToggle public class TopSellerRecommendationPanel extends AbstractShopBasePanel { @SpringBean private FeatureToogleBean featureToogleBean; ... @Override protected void onConfigure() { super.onConfigure(); setVisible(featureToogleBean.isTopSellerFeatureEnabled()); } ... } JAVA
  • 11. Project Scrum + 98% forecast (commitment) guarantee regular deployment 1 x 2 weeks hot fix/feature deployments 2-4 per sprint around 1 1/2 h to get into production · · · · 35min per build 40min per ITIL stuff: 20min per manual deployment - - calls ticket etc. - - - -
  • 12. How can we deliver faster?
  • 13. What have we done?
  • 14. How does it work?
  • 15. Disadvantages of a Monolith Reduction of development speed Increase of turnaround times Increase of build time Strange behavior after changes Increase of time to market A/B testing of process changes nearly impossible Scalability (e.g. application and teams) · · · · · · ·
  • 16. How can we build software smarter?
  • 19. Service-Oriented Architecture (SOA / 1996) SOA is an architectural style that supports service-orientation. Service-orientation is a way of thinking in terms of services. A service: · · · Is a logical representation of a repeatable business activity (e.g., submit order) Is self-contained May be composed of other services Is a “black box” to consumers of the service - - - -
  • 21. Differences to SOA Lightweight infrastructure and protocols (e.g. REST) Greater flexibility of architecture (e.g. can contain GUI) Managed as products, with their own lifecycle and delivery Deployed as processes (Unix packages or Container) · · · ·
  • 22. Online Shop - Use cases Online Shop order products Buyer view catalog <include> create cart <include>
  • 23. Online Shop - 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
  • 24. Challenges of Microservices Require integration. Require a multi deployment pipeline. Require automation of deployment and configuration. Require logging and monitoring. · · · ·
  • 25. Leavitt - Communication Structure Type Star Chain Circle Complete Structure centralization high medium low very low communication low medium much very much controllability much medium low very low
  • 26. Conway's Law <<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
  • 27.
  • 28. Rest Communication { firstname: "Bernd", lastname: "Zuther", street: "Elsenheimerstraße 55a", city: "München", zip: 80687 } JAVASCRIPT
  • 29. Rest Communication { firstname: "Bernd", lastname: "Zuther", birthday: "1983/08/15", street: "Elsenheimerstraße 55a", city: "München", zip: 80687 } JAVASCRIPT
  • 30.
  • 31. Rest Communication { firstname: "Bernd", lastname: "Zuther", birthday: "1983/08/15", addresses : [{ street: "Elsenheimerstraße 55a", city: "München", zip: 80687, type: "WORK" }] } JAVASCRIPT
  • 32.
  • 33. Versionless Rest Communication { firstname: "Bernd", lastname: "Zuther", birthday: "1983/08/15", street: "Elsenheimerstraße 55a", city: "München", zip: 80687, addresses : [{ street: "Elsenheimerstraße 55a", city: "München", zip: 80687, type: "WORK" }] } JAVASCRIPT
  • 34.
  • 35. Alternatives URL: Custom request header: Accept header: · simply whack the API version into the URL, e.g. https://shop/api/v2/cart/all- · same URL as before but add a header “api-version: 2”- · modify accept header to specify the version, e.g. “Accept: application/vnd.cart.v2+json” -
  • 36.
  • 37. Multi Deployment Pipeline Build Test Publish UI-Test Build Test Publish Deployment Load-Test Catalog View Productservice
  • 38. Deployment @RestController class CartController { @Autowired def CartRepository cartRepository; @RequestMapping(value = "/create", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.PUT) @ResponseBody def UUID create(@RequestBody CartItem item) { cartRepository .create(item) } <<executable>> cart-service.jar build Configuration CART_SERVICE_PROFILES=production CART_SERVICE_PORT=18100 CART_SERVICE_REDIS_URL=redis.microservice.io release release <<package>> cart-service.debrelease Infrastructure Code #! /bin/sh PIDFILE=/var/run/cart.pid BASE_DIRECTORY=/usr/share/shop/cart/bin
  • 40. How can we describe infrastructure and products?
  • 41. Docker Environment <<device>> Docker Deamon <<container>> Ngnix <<container>> Cart Service <<container>> Product Service <<artifact>> checkout .war <<artifact>> catalog.tar <<artifact>> cart-service.jar <<artifact>> product- service.jar <<container>> Tomcat <<container>> MongoDB <<container>> Redis <<container>> Navigation Service <<artifact>> navigation- service.jar
  • 42. Kubernetes - Cluster Management
  • 43. Pod kind: Pod desiredState: manifest: containers: - name: mongodb image: dockerfile/mongodb cpu: 100 memory: 50000000 ports: - containerPort: 27017 YAML
  • 44. Replication Controller kind: ReplicationController, desiredState: replicas: 4 podTemplate: desiredState: manifest: containers: - name: product image: zutherb/product-service YAML
  • 46.
  • 47. Experiment with your customers!
  • 48. Summary Pro Needs better A/B testing monitoring effective technologies centralised logging solution orientation fully automated deployment pipeline incremental migration cluster management Microservices do not guarantee more conversion! You need to run experiments with your customers!
  • 49. <Thank You!> g+ plus.google.com/+BerndZuther twitter @Bernd_Z www bernd-zuther.de github github.com/zutherb/
  • 50. Links Java Aktuell 02/15 - Microservices und die Jagd nach mehr Konversion Lean Startup Test Driven Business Featuring Lean StartUp Continuous Delivery mit dem FeatureToggle Pattern FeatureToggle Do Good Microservices Architectures Spell the Death of the Enterprise Service Bus? Microservices Pipe Service Oriented Architecture : What Is SOA? The Twelve Factors Three Golden Rules for Continuous Delivery · · · · · · · · · · ·
  • 51. Links Your API versioning is wrong, which is why I decided to do it 3 different wrong ways Microservices im Zusammenspiel mit Continuous Delivery, Teil 1 – die Theorie Fast, isolated development environments using Docker Microservices versus OSGi: Über Sinn und Unsinn der 'neuen Inkarnation des Webservice Warnung vor dem Microservice – Versuch einer Definition Micro Services in der Praxis: Nie wieder Monolithen! Netflix Nebula Deployment ganz einfach – Microservice Deployment mit Hilfe der Linux Paketverwaltung Splunk – Marke Eigenbau mit Elasticsearch, Logstash und Kibana (ELK Stack) Scaling Docker with Kubernetes Appstash Project · · · · · · · · · · ·
  • 52. Images Delivery of semlor Freebooks SOA Cuba Car Landschaftspark Duisburg-Nord Unfall von Herbert Stenger Lieferwagen Indianapolis Zoo Developer At Work Icom IC735 + Tuner Just a face in the crowd [119/366] Thumbs Up Containers · · · · · · · · · · · · ·
  • 53. Images Café con leche - Milchkaffee (CC) Cloning Experiments: Jess Payne BLM Nevada There's a light at the end of the tunnel... · · · ·