Softwareentwicklung wandelt sich derzeit: Es reicht nicht mehr, Produktinkremente potenziell produktiv zu setzen, sondern Änderungen müssen produktiv gehen. Um in gesättigten Märkten noch Innovationen hervorzubringen und neues Wachstum zu generieren, arbeiten Fachabteilungen immer öfter mit Lean-Startup-Methoden. Eine Methode im Lean-Startup ist die Bildung von Hypothesen, die durch Tests validiert werden. Dazu wird Software z.B. in unterschiedlichen Varianten ausgespielt und dann beobachtet, wie Kunden auf eine Änderungen reagieren. Je nach Test-Ergebnis werden Teile der Software dann wieder entfernt oder angepasst. Somit ist es wichtig Software schnell an den an den Anwender zu bringen. Software schneller in Produktion zu bringen, ist mit den meisten Softwarearchitekturen nicht so einfach. Häufig existieren monolithische Anwendungen, die kompliziert zu installieren sind und bei denen für kleine Änderungen die Koordination von vielen Teams nötig ist. Um Teile der Software zu entkoppeln und Koordinationsaufwand zwischen den Teams zu verringern, wird häufig vorgeschlagen eine Applikation in kleine Dienste zu zerlegen, oft kurz Microservice-Architektur genannt. Wir sehen uns an Hand eines konkreten Beispiels an, wie man eine bestehende Architektur in eine Mircroservice-Architektur überführen kann und welche Konsequenzen dies auf technischer Ebene hat. Zum Beispiel führen Microservices zu mehreren Deployment Pipelines und man braucht Konzepte die unterschiedlichen Teile der Software auch schnell auf unterschiedlichen Rechner provisionieren zu können. Außerdem sollte man sich Gedanken zum Thema Logging und dem Monitoring im Betrieb machen, denn sonst kann der Betrieb eines solchen hochverteilten Systems schnell zur Qual werden.
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
·
·
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.
-
-
-
-
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)
·
·
·
·
·
·
·
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
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”
-
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!
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...
·
·
·
·