SlideShare a Scribd company logo
1 of 53
Download to read offline
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

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 DayZalando Technology
 
Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Webinar get move_on_with_bpmsuite6
Webinar get move_on_with_bpmsuite6Eric D. Schabell
 
Case management applications with BPM
Case management applications with BPMCase management applications with BPM
Case management applications with BPMKris Verlaenen
 
Process-driven applications
Process-driven applicationsProcess-driven applications
Process-driven applicationsKris Verlaenen
 
jBPM Case Mgmt v7 Roadmap
jBPM Case Mgmt v7 RoadmapjBPM Case Mgmt v7 Roadmap
jBPM Case Mgmt v7 RoadmapKris Verlaenen
 
Streamline your processes with jBPM 6
Streamline your processes with jBPM 6Streamline your processes with jBPM 6
Streamline your processes with jBPM 6jsvitak
 
jBPM Migration - generating your process future
jBPM Migration - generating your process futurejBPM Migration - generating your process future
jBPM Migration - generating your process futureEric D. Schabell
 
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...Red Hat Developers
 
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 HubCarlos Cavero Barca
 
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 ProcessesKris Verlaenen
 
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 2016ManageIQ
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?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 & VerdiSrinivasan 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

Von Null auf Hundert mit Microservices
Von Null auf Hundert mit Microservices Von Null auf Hundert mit Microservices
Von Null auf Hundert mit Microservices Bernd Zuther
 
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...Bernd Zuther
 
Memory leak analyse
Memory leak analyseMemory leak analyse
Memory leak analyseBernd Zuther
 
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 ...Bernd Zuther
 
Using Groovy with Jenkins
Using Groovy with JenkinsUsing Groovy with Jenkins
Using Groovy with Jenkinssascha_klein
 
Bau dein eigenes extreme feedback device
Bau dein eigenes extreme feedback deviceBau dein eigenes extreme feedback device
Bau dein eigenes extreme feedback deviceBernd 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

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 KonversionBernd Zuther
 
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 EdgeOptimizely
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택uEngine Solutions
 
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 microservicesYouness Lasmak
 
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 CloudBen Saunders
 
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 Kuberneteskloia
 
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...Kovair
 
Refacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStoresRefacoring vs Rewriting WixStores
Refacoring vs Rewriting WixStoresDoron Rosenstock
 
Preparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptxPreparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptxmichaeljayaraj1
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices PatternsCisco DevNet
 
Blugento cloud foundry - components - principles
Blugento cloud foundry - components - principlesBlugento cloud foundry - components - principles
Blugento cloud foundry - components - principlesThomas Fleck
 
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 Architecturesnine
 
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...Bernd Ruecker
 
Building multi tenancy enterprise applications
Building multi tenancy enterprise applicationsBuilding multi tenancy enterprise applications
Building multi tenancy enterprise applicationsuEngine Solutions
 
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...Bernd Ruecker
 
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 : 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)CIVEL Benoit
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1CIVEL Benoit
 
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 architectureHuxing Zhang
 

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 MongoDBBernd 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-hannoverBernd 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 MongoDBBernd 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 MongoDBBernd Zuther
 
Mongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data SolyankaMongodb + Hadoop Big Data Solyanka
Mongodb + Hadoop Big Data SolyankaBernd Zuther
 
Real time Analytics with MongoDB
Real time Analytics with MongoDBReal time Analytics with MongoDB
Real time Analytics with MongoDBBernd 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

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 

Recently uploaded (20)

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 

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