Slides from our "Developers Roadtrip to Heaven? myToys transition from SOA to Microservices Architecture" Meetup on 22nd November 2016 together with BDose.
Developers Roadtrip to Heaven? myToys transition from SOA to Microservices Architecture
1. Developers Roadtrip to Heaven? myToys transition
from SOA to Microservices Architecture
David Lee
Heiko Kahmann
Berlin, 22.11.2016
2. Dateiname
About The Presenters
Dr. David Lee
BSc(Hons) Computing for Business and E-Commerce / PhD in Computer
Science (Robert Gordon University, Aberdeen, Scotland)
Certified Software Architect (Foundation Level)
2010-2014: Backend Software Developer at myToys.de
2014-Present: Software Architect at myToys.de
Heiko Kahmann
Dipl. Inf., Dipl. Vw (Freie Universität Berlin)
10 Years Experience as Researcher
Experience as Senior and Lead Software Developer in various companies
2015-Present: Software Architect at myToys.de
6. Dateiname
Responsive HTML/CSS/PHP
Multishop Platform (Service Orientated Architecture)
• Aim: Develop platform so features developed once but usable for all
shops. Retain individual design of shops.
Solr SQL
DB
NOSQL
DB
Java Product
Service
Raffle
Service
SQL
DB
Newsletter
Service
Rating
Service
7. Dateiname
Positive Experience with Service Orientated
Architecture
Business Relevant Services für every shop.
Services deployable separately.
More independent teams than with monolithic application.
Content Management System
Many change requests only affect the frontend part (HTML/CSS).
8. Dateiname
Challenges with Service Orientated Architecture
Scalable Services
Development and release co-ordination Backend <> Frontend.
Frontend Monolithic breaks Conways‘s Law.
Separated Data Layer
Big Challenge where bugs located.
9. Dateiname
Transition to Microservices (1):
We verticalise!
Solr SQL
DB
NOSQL
DB
Java
Microservice Microservice Microservice Microservice
SQL
DB
Product
Service
Product
Frontend
Raffle
Frontend
Newsletter
Frontend
Rating
Frontend
Raffle
Service
Newsletter
Service
Rating
Service
Responsive HTML/CSS/PHP
13. Dateiname
Transition to Microservices (3):
How it works in the background
Microservice
Header
PageAssembler
Configuration &
Service Discovery
Server
Load Balancer
http://www.mytoys.de/nl/success
HTMLRequest
/newsletter/success
david.lee@mytoys.de
PageAssembler
Request
/newsletter/success
PageConfiguration
with Service URLs
Request
myToys.de
Header
HTML
Microservice
Newsletter
Microservice
Footer
Newsletter
DB
david.lee@mytoys.de
Newsletter
HTML
Request
myToys.de
david.lee@mytoys.de
Request
myToys.de
Footer
HTML
Cache
15. Dateiname
Transition to Microservices (4):
Public API
Public API
Microservice Newsletter
Registration
Newsletter
DB
david.lee@mytoys.de
Request
myToys.de
Request
Newsletter Registration
JSON
JSON
16. Dateiname
Transition to Microservices (5):
Microservice Store and Live Editor
Live Editor
Header
C
a
r
o
u
s
e
l
Navigation
Teaser
Microservice Store
Header
Login
Carousel
Teaser
Footer
PO
New Microservice
Developer
1
2
19. Dateiname
Summary of key components for TechVision
PageAssembler Microservices
Team Split /
Independence / Self-
responsibility
Cloud
Elastic Load Balancing Continuous Delivery
Automatic Documentation Test Driven
Service Discovery
PO / first Level Support
Live Shop Editor
21. Dateiname
Interactive Discussion Groups
• There are 4 groups:
• Microservices
• Page Assembling
• Continuous Delivery
• Cloud, Elastic Load Balancing and Service Discovery.
• Discussion Groups: after pizza until 8.30pm. Visit each group – how
long is up to you.
• Summary afterwards.
22. Dateiname
Group #1: Microservices (Timo Fleischfresser)
„The name of Microservices suggests that it affects the size of the service
– and obviously services should be small. One possible definition for the
size of a microservice is …“ [Eberhard Wolff, Microservices]
• Lines of Code
• ….?
• ….?
• ….?
Discussion Questions:
1.What are good measures for defining the size of a microservice?
2.What are bad measures for defining the size of a microservice?
23. Dateiname
Group #2: Page Assembling
(Heiko Kahmann)
Discussion Questions:
1.What are the
responsibilities of a Page
Assembler?
2.Which tasks are
performed better by other
components?
3.Is it possible to do
assemble a page
completely on the client
side?
24. Dateiname
Group #3: Continuous Delivery (Andreas Lehmann)
Discussion Questions:
1.How do we manage the trade-off
between speed and quality in the
continuous delivery approach?
2.For which situations may it better to be
fast rather than have the highest
quality?
3.For which situations may it better to
have higher quality than a fast pipeline?
Speed Quality
25. Dateiname
Group #4: Cloud, Elastic Load Balancing and Service
Discovery (David Lee)
Discussion Questions:
1.Let‘s use the cloud! What are the
challenges of making applications
cloud-ready?
2.What are the advantages and
disadvantages of the main cloud
providers based on your
experience?