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

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
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
Kamal Acharya
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
Kamal Acharya
 
grop material handling.pdf and resarch ethics tth
grop material handling.pdf and resarch ethics tthgrop material handling.pdf and resarch ethics tth
grop material handling.pdf and resarch ethics tth
AmanyaSylus
 

Recently uploaded (20)

Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
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
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Pharmacy management system project report..pdf
Pharmacy management system project report..pdfPharmacy management system project report..pdf
Pharmacy management system project report..pdf
 
An improvement in the safety of big data using blockchain technology
An improvement in the safety of big data using blockchain technologyAn improvement in the safety of big data using blockchain technology
An improvement in the safety of big data using blockchain technology
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
grop material handling.pdf and resarch ethics tth
grop material handling.pdf and resarch ethics tthgrop material handling.pdf and resarch ethics tth
grop material handling.pdf and resarch ethics tth
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 

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... · · · ·