SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
Rest Communication
{
firstname: "Bernd",
lastname: "Zuther",
birthday: "1983/08/15",
addresses : [{
street: "Elsenheimerstraße 55a",
city: "München",
zip: 80687,
type: "WORK"
}]
}
JAVASCRIPT
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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”
-
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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
Javaland 2015 - Bernd Zuther - Die Jagd nach mehr Konversion - Fluch oder Segen für den Entwickler
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...
·
·
·
·

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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)
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 
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
 
Building Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnBuilding Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnJohannes Bräuer
 

Ähnlich wie 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
 
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
 
Building Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptnBuilding Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptn
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Clutches and brkesSelect any 3 position random motion out of real world and d...
Clutches and brkesSelect any 3 position random motion out of real world and d...Clutches and brkesSelect any 3 position random motion out of real world and d...
Clutches and brkesSelect any 3 position random motion out of real world and d...sahb78428
 
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Amil baba
 
Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical SensorTanvir Moin
 
ChatGPT-and-Generative-AI-Landscape Working of generative ai search
ChatGPT-and-Generative-AI-Landscape Working of generative ai searchChatGPT-and-Generative-AI-Landscape Working of generative ai search
ChatGPT-and-Generative-AI-Landscape Working of generative ai searchrohitcse52
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxNaveenVerma126
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxjasonsedano2
 
cloud computing notes for anna university syllabus
cloud computing notes for anna university syllabuscloud computing notes for anna university syllabus
cloud computing notes for anna university syllabusViolet Violet
 
Pioneering Process Safety Management: The Future Outlook
Pioneering Process Safety Management: The Future OutlookPioneering Process Safety Management: The Future Outlook
Pioneering Process Safety Management: The Future Outlooksoginsider
 
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfSummer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfNaveenVerma126
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingMarian Marinov
 
A Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationA Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationMohsinKhanA
 
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxVertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxLMW Machine Tool Division
 
EPE3163_Hydro power stations_Unit2_Lect2.pptx
EPE3163_Hydro power stations_Unit2_Lect2.pptxEPE3163_Hydro power stations_Unit2_Lect2.pptx
EPE3163_Hydro power stations_Unit2_Lect2.pptxJoseeMusabyimana
 
Mohs Scale of Hardness, Hardness Scale.pptx
Mohs Scale of Hardness, Hardness Scale.pptxMohs Scale of Hardness, Hardness Scale.pptx
Mohs Scale of Hardness, Hardness Scale.pptxKISHAN KUMAR
 
OS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineOS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineDivya S
 
The relationship between iot and communication technology
The relationship between iot and communication technologyThe relationship between iot and communication technology
The relationship between iot and communication technologyabdulkadirmukarram03
 
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfRenewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfodunowoeminence2019
 

Kürzlich hochgeladen (20)

Clutches and brkesSelect any 3 position random motion out of real world and d...
Clutches and brkesSelect any 3 position random motion out of real world and d...Clutches and brkesSelect any 3 position random motion out of real world and d...
Clutches and brkesSelect any 3 position random motion out of real world and d...
 
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
 
Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical Sensor
 
ChatGPT-and-Generative-AI-Landscape Working of generative ai search
ChatGPT-and-Generative-AI-Landscape Working of generative ai searchChatGPT-and-Generative-AI-Landscape Working of generative ai search
ChatGPT-and-Generative-AI-Landscape Working of generative ai search
 
Lecture 2 .pptx
Lecture 2                            .pptxLecture 2                            .pptx
Lecture 2 .pptx
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptx
 
cloud computing notes for anna university syllabus
cloud computing notes for anna university syllabuscloud computing notes for anna university syllabus
cloud computing notes for anna university syllabus
 
Pioneering Process Safety Management: The Future Outlook
Pioneering Process Safety Management: The Future OutlookPioneering Process Safety Management: The Future Outlook
Pioneering Process Safety Management: The Future Outlook
 
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfSummer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 
Présentation IIRB 2024 Chloe Dufrane.pdf
Présentation IIRB 2024 Chloe Dufrane.pdfPrésentation IIRB 2024 Chloe Dufrane.pdf
Présentation IIRB 2024 Chloe Dufrane.pdf
 
A Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationA Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software Simulation
 
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxVertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
 
EPE3163_Hydro power stations_Unit2_Lect2.pptx
EPE3163_Hydro power stations_Unit2_Lect2.pptxEPE3163_Hydro power stations_Unit2_Lect2.pptx
EPE3163_Hydro power stations_Unit2_Lect2.pptx
 
計劃趕得上變化
計劃趕得上變化計劃趕得上變化
計劃趕得上變化
 
Mohs Scale of Hardness, Hardness Scale.pptx
Mohs Scale of Hardness, Hardness Scale.pptxMohs Scale of Hardness, Hardness Scale.pptx
Mohs Scale of Hardness, Hardness Scale.pptx
 
OS Services, System call, Virtual Machine
OS Services, System call, Virtual MachineOS Services, System call, Virtual Machine
OS Services, System call, Virtual Machine
 
The relationship between iot and communication technology
The relationship between iot and communication technologyThe relationship between iot and communication technology
The relationship between iot and communication technology
 
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfRenewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
 

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

  • 2. Die Jagd nach mehr Konversion FluchoderSegenfürdenEntwickler Bernd Zuther - IT Consultant Big Data codecentric AG
  • 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
  • 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
  • 31. Rest Communication { firstname: "Bernd", lastname: "Zuther", birthday: "1983/08/15", addresses : [{ street: "Elsenheimerstraße 55a", city: "München", zip: 80687, type: "WORK" }] } JAVASCRIPT
  • 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
  • 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” -
  • 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
  • 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... · · · ·