SlideShare a Scribd company logo
@koenighotze#DevExperience18 #10TipsMicroservices
10 (or so) tips for failing
at microservices - badly
@koenighotze#DevExperience18 #10TipsMicroservices
David Schmitz
Senacor Technologies
@koenighotze
@koenighotze#DevExperience18 #10TipsMicroservices
Disclaimer(s)
@koenighotze#DevExperience18 #10TipsMicroservices
Anecdote
IS NOT
Evidence
@koenighotze#DevExperience18 #10TipsMicroservices
Your boss wants to modernise
You don’t want to modernise
Things to do to sabotage your project
@koenighotze#DevExperience18 #10TipsMicroservices
…your Bossreads
about microservices?
@koenighotze#DevExperience18 #10TipsMicroservices
Extreme agile
cloud native digital
microservices!
Disrupt or be
disrupted!
Sounds awesome.
And cloud and agile
equal good?!?
Industry 4.0!
FTW!
@koenighotze#DevExperience18 #10TipsMicroservices
“IT People!
Make it happen!
Build me some
microservices”
@koenighotze#DevExperience18 #10TipsMicroservices
What the hell is a microservice and why should I care?
@koenighotze#DevExperience18 #10TipsMicroservices
Microservices
Single bounded context
UI and services
Independent
Self-contained
Local storage
Share nothing
User Interface
Services
Persistence
Operations
@koenighotze#DevExperience18 #10TipsMicroservices
TLDR;User Interface
Services
Persistence
Operations
Too lazy to actually read all
this stuff…looks boring and I
want to look at funny cat
pics.
@koenighotze#DevExperience18 #10TipsMicroservices
Do you prefer change…
https://flic.kr/p/bVPzUE
@koenighotze#DevExperience18 #10TipsMicroservices https://flic.kr/p/bajCVX
…or rest?
@koenighotze#DevExperience18 #10TipsMicroservices
Sabotage countdown
@koenighotze#DevExperience18 #10TipsMicroservices
Go full scale polyglot
@koenighotze#DevExperience18 #10TipsMicroservices
Where is Waldo?
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
William-Wallace-Tribute-team!
Groundhog code
Maintenance field trips
Synergies: polyglot UI with beta status
Find new friends on Stackoverflow
Governance and moderation are for
cowards
@koenighotze#DevExperience18 #10TipsMicroservices
Still successful?
@koenighotze#DevExperience18 #10TipsMicroservices
Semantic Versioning
Major.Minor.BugfixMajor.Minor.BugfixMajor.Minor.BugfixMajor.Minor.Bugfix
Semantic Versioning
@koenighotze#DevExperience18 #10TipsMicroservices
$ npm ls | grep @0
@koenighotze#DevExperience18 #10TipsMicroservices
ui-broker@0.1.0
│ ├─┬ fbjs@0.8.8
│ │ │ ├─┬ encoding@0.1.12
│ │ │ │ └── iconv-lite@0.4.15
│ │ └── ua-parser-js@0.7.12
├─┬ react-scripts@0.8.5
│ │ ├── normalize-range@0.1.2
│ │ │ │ └── json5@0.5.1
│ │ │ └── …
@koenighotze#DevExperience18 #10TipsMicroservices
Polyglot?
@koenighotze#DevExperience18 #10TipsMicroservices
Polyglot?
thx @Codepitbull
@koenighotze#DevExperience18 #10TipsMicroservices
The data monolith
(c) Disney Corporation
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
Credit Account Payment
Expensive
enterprise SQL
Datastore
@koenighotze#DevExperience18 #10TipsMicroservices
Credit Account Payment
@koenighotze#DevExperience18 #10TipsMicroservices
Account name must be
VARCHAR(200) instead of
VARCHAR(50)
@koenighotze#DevExperience18 #10TipsMicroservices
Credit Account
@koenighotze#DevExperience18 #10TipsMicroservices
Sharing is a Good ThingTM
Avoid table or schema ownership
Ubiquitous domain modelling paralysis
Keep people awake at night with
insidious dependencies
@koenighotze#DevExperience18 #10TipsMicroservices
The event monolith
@koenighotze#DevExperience18 #10TipsMicroservices
Eventsourcing
marketing
pitch
@koenighotze#DevExperience18 #10TipsMicroservices
Customer
Homeaddress
Updated
Credit
acquired
New
Customer
Created
…
Direction of time
Customer Credit
Event Store
@koenighotze#DevExperience18 #10TipsMicroservices
Audit trail - immutable history for free
Distributed data management
Decoupled microservices with CQRS
…and much more!
@koenighotze#DevExperience18 #10TipsMicroservices
‘Das schöne
Österreich’ will no longer be
accepted as a country code
@koenighotze#DevExperience18 #10TipsMicroservices
Country:
“AU”
Country:
“Das schöne
Österreich”
…
Direction of time
Customer
Event Store
Credit
@koenighotze#DevExperience18 #10TipsMicroservices
How to deal with shared code?
@koenighotze#DevExperience18 #10TipsMicroservices
- C P*Windows version coming soon
@koenighotze#DevExperience18 #10TipsMicroservices
Country:
“AU”
Country:
“Das schöne
Österreich”
…
Direction of time
Customer Credit
Event Store
@koenighotze#DevExperience18 #10TipsMicroservices
2 months later…
@koenighotze#DevExperience18 #10TipsMicroservices
Customer Credit Reporting Accounting Profile
Loan Trading Exchange Broker Purchase
@koenighotze#DevExperience18 #10TipsMicroservices
WET is the new DRY
Never question the design
All systems should be eventsourced
Eventual consistency = “Maybe consistent”
Extra tip: Use Kafka for eventsourcing
@koenighotze#DevExperience18 #10TipsMicroservices
The home grown monolith
@koenighotze#DevExperience18 #10TipsMicroservices
– Carl Sagan (slightly paraphrased)
“If you wish to
make
MICROSERVICES
from scratch, you
must first create a
FRAMEWORK”
@koenighotze#DevExperience18 #10TipsMicroservices
{
"type": "NewCustomerCreated",
"id": 1234,
"payload": {
}
}
CustomerAccount Reporting
ES V1 ES V1 ES V1
@koenighotze#DevExperience18 #10TipsMicroservices
The customer system needs
special, non-numeric ids
@koenighotze#DevExperience18 #10TipsMicroservices
Major.Minor.Bugfix
@koenighotze#DevExperience18 #10TipsMicroservices
Customer V2
{
"type": "NewCustomerCreated",
"id": "1234-5678",
"payload": {
...
}
}
ES V2
@koenighotze#DevExperience18 #10TipsMicroservices
And at runtime???
@koenighotze#DevExperience18 #10TipsMicroservices
Change the
world event
@koenighotze#DevExperience18 #10TipsMicroservices
Customer V2Account Reporting
ES V1 ES V1ES V2
{
"type": "NewCustomerCreated",
"id": "1234-5678",
"payload": {
...
}
}
@koenighotze#DevExperience18 #10TipsMicroservices
Customer V2Account V2 Reporting V2
ES V2 ES V2ES V2
@koenighotze#DevExperience18 #10TipsMicroservices
Customer
Account
Reporting
From independent releases
@koenighotze#DevExperience18 #10TipsMicroservices
Customer
Account
Reporting
to a release monolith
Big bang
@koenighotze#DevExperience18 #10TipsMicroservices
Day rates!
@koenighotze#DevExperience18 #10TipsMicroservices
Dependencies as social tools
Job insurance via invasive frameworks
Building frameworks is fun!
Ideas: collections, string-utils, logging,
ORM, UI framework
@koenighotze#DevExperience18 #10TipsMicroservices
No time to create a
framework, but still
want to leave your
mark on the world?
@koenighotze#DevExperience18 #10TipsMicroservices
10/10/1999:21:15:05 +0500
Sep 19 16:27:49
2007-08-31 19:22:21.469 ADT
060516 22:38:54
Fri Sep 09 10:42:29.902022 2011
@koenighotze#DevExperience18 #10TipsMicroservices
The meat cloud
@koenighotze#DevExperience18 #10TipsMicroservices
Bonus hint:
optimise your revenue!
@koenighotze#DevExperience18 #10TipsMicroservices
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
Who KNOWS how
to do it?K
P T
Who WANTS it
to be done?
Who has the
required
PRIVILEGES?
Who has TIME
to actually
do it?
@koenighotze#DevExperience18 #10TipsMicroservices
Day rates!
@koenighotze#DevExperience18 #10TipsMicroservices
Delivery
pipeline
Production
@koenighotze#DevExperience18 #10TipsMicroservices
And the rest of the
world?
@koenighotze#DevExperience18 #10TipsMicroservices
Delivery pipeline
Production
Handcrafted
with love
Soulless
automation
@koenighotze#DevExperience18 #10TipsMicroservices
Cattle
not
pets?
@koenighotze#DevExperience18 #10TipsMicroservices
Ask yourself:
Whom do YOU love more?
@koenighotze#DevExperience18 #10TipsMicroservices
Mr. Wiskers Walking steak
@koenighotze#DevExperience18 #10TipsMicroservices
W
Quickly…release a new
Customer microservice
K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
Enter the DevOps TeamTM
@koenighotze#DevExperience18 #10TipsMicroservices
Ops communication?
P T
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
Tickets!
P T
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
P T
KW
@koenighotze#DevExperience18 #10TipsMicroservices
P T
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
P T
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
…a few minutes later
P T
W K
P T
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
Infrastructure is expensive…be proud to
take care of it
Microsoft Word is some kind of automation
Play the “we are not Google” card
Combine with polyglot ops for maximum
chaos
@koenighotze#DevExperience18 #10TipsMicroservices
The distributed monolith
@koenighotze#DevExperience18 #10TipsMicroservices
Customer AccountCredit
Auth
@koenighotze#DevExperience18 #10TipsMicroservices
Let’s offer a discount to
new users
@koenighotze#DevExperience18 #10TipsMicroservices
Customer AccountCredit
Auth
No problem!
What the..?!?
@koenighotze#DevExperience18 #10TipsMicroservices
Best of Both Worlds
complexity
+ rigidity
+ fragility
@koenighotze#DevExperience18 #10TipsMicroservices
The network is reliable
Dependencies indicate good design, like in
dependency injection
A system stable as concrete sounds good
Synchronous dependencies are easy
What is half a system good for, anyway? So
avoid Circuit breakers
@koenighotze#DevExperience18 #10TipsMicroservices
The SPA monolith
@koenighotze#DevExperience18 #10TipsMicroservices
Customer REST Credit RESTAccount REST
Sophisticated portal
frontend
@koenighotze#DevExperience18 #10TipsMicroservices
Add a mandatory
social-number field to the
customer
@koenighotze#DevExperience18 #10TipsMicroservices
But not that mandatory. E.g. if
the customer is not committed, yet
@koenighotze#DevExperience18 #10TipsMicroservices
Customer Domain Credit DomainAccount Domain
Comprehensive UI Domain
Model
@koenighotze#DevExperience18 #10TipsMicroservices
Where should the logic go?
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
Advantage?
@koenighotze#DevExperience18 #10TipsMicroservices
Customer REST Credit RESTAccount REST
@koenighotze#DevExperience18 #10TipsMicroservices
UI-driven monolith
Customer Domain Credit DomainAccount Domain
Sophisticated portal
frontend
@koenighotze#DevExperience18 #10TipsMicroservices
Microservices are REST only (hint: service!)
Avoid techniques like UI composition or
self-contained-systems
Keep the testers busy with side effects
Single point of failure - blame the script
kids working on the UI
@koenighotze#DevExperience18 #10TipsMicroservices
The decision monolith
@koenighotze#DevExperience18 #10TipsMicroservices
“But we need
Java 7…it is
2018 after all!”
@koenighotze#DevExperience18 #10TipsMicroservices
Beware developer
madness
@koenighotze#DevExperience18 #10TipsMicroservices
Agile
Rx
Microservice
Actors Augmented realityCloud
AWS
WebRTC IoT
Blockchain
@koenighotze#DevExperience18 #10TipsMicroservices
Architecture & Design
Sieve of Sanity
@koenighotze#DevExperience18 #10TipsMicroservices
JEE
WebSphere
Agile
Rx
Microservice
Actors Augmented realityCloud
AWS
WebRTC IoT
Blockchain
@koenighotze#DevExperience18 #10TipsMicroservices
Frustrate your coworkers
Irritate motivated colleagues
If you are older than 30…play the “This is
_real_ enterprise, kid” card
Ivory towers are beautiful
@koenighotze#DevExperience18 #10TipsMicroservices
The business
monolith
@koenighotze#DevExperience18 #10TipsMicroservices
So, don’t bother
explaining
anything!
Business
people
cannot
understand
complex
any
architecture
@koenighotze#DevExperience18 #10TipsMicroservices
Credit Account Payment
… … …
Product Toolset Something
@koenighotze#DevExperience18 #10TipsMicroservices
Let’s force the user to
always enter a valid address
@koenighotze#DevExperience18 #10TipsMicroservices
No, the customer
should be able to enter partial
addresses
@koenighotze#DevExperience18 #10TipsMicroservices
Product Toolset Something
?????
@koenighotze#DevExperience18 #10TipsMicroservices
Requirements Ping Pong
@koenighotze#DevExperience18 #10TipsMicroservices
Change management
@koenighotze#DevExperience18 #10TipsMicroservices
Requirements management
@koenighotze#DevExperience18 #10TipsMicroservices
Day rates!
@koenighotze#DevExperience18 #10TipsMicroservices
Bonus:
works with ops, too
@koenighotze#DevExperience18 #10TipsMicroservices
Credit Account Payment
… … …
Product Toolset Something
What the…?
Whatever…just
deploy everything
@koenighotze#DevExperience18 #10TipsMicroservices
Development
Ops
Business
Waterscrumfall
@koenighotze#DevExperience18 #10TipsMicroservices
Avoid X-functional teams
Slow means more time for Twitter!
The servant of many kings is a free man
Conway’s law works both ways
@koenighotze#DevExperience18 #10TipsMicroservices
The staffing monolith
@koenighotze#DevExperience18 #10TipsMicroservices
It is easier to search for React
developers than for general
craftswomen
@koenighotze#DevExperience18 #10TipsMicroservices
Frontend
Development
Service
Development
DevOps Team
Test
Business
@koenighotze#DevExperience18 #10TipsMicroservices
But…why?
@koenighotze#DevExperience18 #10TipsMicroservices
Frequent Flyer Program
Rail-Bonus Program
Hotel Credit Points
@koenighotze#DevExperience18 #10TipsMicroservices
Dysfunctional setup in
3 easy steps
@koenighotze#DevExperience18 #10TipsMicroservices
Step 1
How to do X-team
communication?
@koenighotze#DevExperience18 #10TipsMicroservices
Magic
Specification
Success
Template
@koenighotze#DevExperience18 #10TipsMicroservices
Step 2
Protect the teams
@koenighotze#DevExperience18 #10TipsMicroservices
Frontend Microservice
Service Microservice
Persistence Stuff
Team A
Team B
Team C
@koenighotze#DevExperience18 #10TipsMicroservices
Step 3
Establish bureaucracy
@koenighotze#DevExperience18 #10TipsMicroservices
The frontend team
The service team
The database guys
“Product
Owner”
“Product
Owner”
“Product
Owner”
@koenighotze#DevExperience18 #10TipsMicroservices
Day rates!
@koenighotze#DevExperience18 #10TipsMicroservices
But…what if this
works?
@koenighotze#DevExperience18 #10TipsMicroservices
Enter the fakeholder!
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
shadow product owner
proxy product owner
@koenighotze#DevExperience18 #10TipsMicroservices
“Product
Owner”
“UX
Product
Owner”
“Back
Product
Owner”
“Business
Owner”
“Product
Owner”
“Product
Owner”
Doesn’t
care
Cannot
decide
@koenighotze#DevExperience18 #10TipsMicroservices
Even
sounds
“agile”!
@koenighotze#DevExperience18 #10TipsMicroservices
Technical benefits?
@koenighotze#DevExperience18 #10TipsMicroservices
Nice Digital Click UI
Boring HTTP Things
Persistence Stuff
Shared
stability
Shared
release
Convoluted
domains
@koenighotze#DevExperience18 #10TipsMicroservices
Programmers do not like other people
Play “find the domain”
“War rooms” sound really important
Avoid real ownership
@koenighotze#DevExperience18 #10TipsMicroservices
And: In case of bugs…
@koenighotze#DevExperience18 #10TipsMicroservices
…it’s always
the other
team’s fault!
@koenighotze#DevExperience18 #10TipsMicroservices
The prescriptive cloud
@koenighotze#DevExperience18 #10TipsMicroservices
Agility
Flexibility
Scale as you grow
Use what you need
@koenighotze#DevExperience18 #10TipsMicroservices
One Size Fits All
Cloud
The
@koenighotze#DevExperience18 #10TipsMicroservices
One Size Fits All
Cloud
The
@koenighotze#DevExperience18 #10TipsMicroservices
Rails
TODO app
@koenighotze#DevExperience18 #10TipsMicroservices
200 users now…
…but we might become the next Google
@koenighotze#DevExperience18 #10TipsMicroservices
Enter the DevOps TeamTM
@koenighotze#DevExperience18 #10TipsMicroservices
Revenge of the CloudOps TeamTM
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
Docker
Rails
TODO app
@koenighotze#DevExperience18 #10TipsMicroservices
Node
Pod
Docker
Rails
TODO app
EtcdService
FEK
Volume
Pod
Docker
Rails
TODO app
@koenighotze#DevExperience18 #10TipsMicroservices
VPC Security groupCloudwatch
ELB IAMEBS
EC2 EC2 EC2 EC2
EC2 EC2 EC2 EC2
What I
actually
care about
@koenighotze#DevExperience18 #10TipsMicroservices
[610420.800771] kube-state-metr invoked oom-killer: gfp_mask=0x24000c0, order=0, oom_score_adj=-998
[610420.805428] kube-state-metr cpuset=32c394ad4709430cddb71194ea406d598b82159c2715d42b64927ac5e67f0228 mems_allowed=0
[610420.810504] CPU: 3 PID: 9403 Comm: kube-state-metr Tainted: G E 4.4.65-k8s #1
[610420.813712] Hardware name: Xen HVM domU, BIOS 4.2.amazon 11/11/2016
[610420.813712] 0000000000000286 00000000c5185d6f ffffffff812f67b5 ffff8803e7163e20
[610420.813712] ffff8803e71c8400 ffffffff811d8855 ffffffff81826173 ffff8803e71c8400
[610420.813712] ffffffff81a6b740 0000000000000206 0000000000000002 ffff880308bbf438
[610420.813712] Call Trace:
[610420.813712] [<ffffffff812f67b5>] ? dump_stack+0x5c/0x77
[610420.813712] [<ffffffff811d8855>] ? dump_header+0x62/0x1d7
[610420.813712] [<ffffffff8116ded1>] ? oom_kill_process+0x211/0x3d0
[610420.813712] [<ffffffff811d0f4f>] ? mem_cgroup_iter+0x1cf/0x360
[610420.813712] [<ffffffff811d2de3>] ? mem_cgroup_out_of_memory+0x283/0x2c0
[610420.813712] [<ffffffff811d3abd>] ? mem_cgroup_oom_synchronize+0x32d/0x340
[610420.813712] [<ffffffff811cf170>] ? mem_cgroup_begin_page_stat+0x90/0x90
[610420.813712] [<ffffffff8116e5b4>] ? pagefault_out_of_memory+0x44/0xc0
[610420.813712] [<ffffffff815a65b8>] ? page_fault+0x28/0x30
[610426.700118] Task in /kubepods/pod401c0ec6-97d9-11e7-adb9-021e5eba15b7/32c394ad4709430cddb71194ea406d598b82159
[610426.711591] memory: usage 16384kB, limit 16384kB, failcnt 629216
[610426.715097] memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
[610426.719063] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0
[610426.722823] Memory cgroup stats for /kubepods/pod401c0ec6-97d9-11e7-adb9-021e5eba15b7: cache:0KB rss:0KB rss_huge:0KB
[610426.749544] Memory cgroup stats for /kubepods/pod401c0ec6-97d9-11e7-adb9-021e5eba15b7/32c394ad4709430cddb71194ea406d598b82159c2715d42b64927ac5e67f0228:
[610426.765166] [ pid ] uid tgid total_vm rss nr_ptes nr_pmds swapents oom_score_adj name
[610426.769304] [ 7288] 0 7288 257 1 4 2 0 -998 pause
[610426.773553] [20340] 0 20340 11395 7113 27 5 0 -998 kube-state-metr
[610426.778753] Memory cgroup out of memory: Kill process 20340 (kube-state-metr) score 769 or sacrifice child
…
…
Approx. 3 billion lines of garbage logs
to analyse for fun
@koenighotze#DevExperience18 #10TipsMicroservices
[610426.778753] Memory cgroup out of memory: Kill process
20340 (kube-state-metr) score 769 or sacrifice child
@koenighotze#DevExperience18 #10TipsMicroservices
PolyWTF works for ops
@koenighotze#DevExperience18 #10TipsMicroservices
@koenighotze#DevExperience18 #10TipsMicroservices
Be proud of complexity, we are
engineers for a reason
Ops tooling puts JavaScript to
shame
If Twitter runs on it, so should you
Combine with Meat cloud
@koenighotze#DevExperience18 #10TipsMicroservices
Bonus: speedboats and tankers
https://commons.wikimedia.org/wiki/User:Arria_Belli/Salut
@koenighotze#DevExperience18 #10TipsMicroservices
“We need 24x7 availability!”
@koenighotze#DevExperience18 #10TipsMicroservices
“…but the host is down 4h per week?”
@koenighotze#DevExperience18 #10TipsMicroservices
The Bi-modal idea
System of RecordSystems of Engagement
@koenighotze#DevExperience18 #10TipsMicroservices
Bi-modal architecture
System of RecordSystems of Engagement
@koenighotze#DevExperience18 #10TipsMicroservices
Wall of innovation
System of RecordSystems of Engagement
@koenighotze#DevExperience18 #10TipsMicroservices
Awesome speedboats
Speed
boat
Speed
boat
Speed
boat
Dirty old
legacy system
System of RecordSystems of Engagement
@koenighotze#DevExperience18 #10TipsMicroservices
Ignore reality
System of RecordSystems of Engagement
Speed
boat
Speed
boat
Speed
boat
Things you need
written by people
you don’t know
and don’t like
@koenighotze#DevExperience18 #10TipsMicroservices
Speedboat
Speedboat
Dirty backend
Big bang
Speedboat
Speedboat
Fast release with speedboats?
Speedboat
Speedboat
Speedboat
Speedboat
1.3.18 1.4.18
@koenighotze#DevExperience18 #10TipsMicroservices
Speedboat
Speedboat
Big bang
Speedboat
Speedboat
Hold my beer
Speedboat
Speedboat
Speedboat
Speedboat
1.3.18 1.4.18
Dirty backend
everybody
depends on
1.1.35
Big bang
@koenighotze#DevExperience18 #10TipsMicroservices
Result…
Dirty old
legacy system
New
Landscape
@koenighotze#DevExperience18 #10TipsMicroservices
Very
New
Landscape
New
Landscape
…5 years later
Dirty old
legacy system
@koenighotze#DevExperience18 #10TipsMicroservices
Very
New
Landscape
…5 years later
Dirty old
legacy system
New
Landscape
Techstack hipness gradient
People deprecation gradient
@koenighotze#DevExperience18 #10TipsMicroservices
Refactoring is hard, just do not do it
Maintain yet another system
Avoid internal knowledge and build
external skills
Distinguish between cool devs and
not-so-cool ones…openly
Create a hostile environment of
suspicion and distrust
@koenighotze#DevExperience18 #10TipsMicroservices
Wrapping up….
@koenighotze#DevExperience18 #10TipsMicroservices
The key to failure is
the hidden monolith
@koenighotze#DevExperience18 #10TipsMicroservices
Microservices are hard
@koenighotze#DevExperience18 #10TipsMicroservices
Brownfield - The
perfect excuse
@koenighotze#DevExperience18 #10TipsMicroservices
Never involve ops or
business
@koenighotze#DevExperience18 #10TipsMicroservices
Embrace the monolith
both in mind and way
of working
@koenighotze#DevExperience18 #10TipsMicroservices
Thank you!
Questions? Disagree? Let’s talk!
@Koenighotze

More Related Content

PDF
Event Sourcing - You are doing it wrong @ Devoxx
PDF
10 Tipps für ein absolutes Microservice-Desaster
PDF
10 Tips for failing at microservices
PDF
10 Tips for failing at microservices - badly (BedCon 2017)
PDF
Eventsourcing you-are-doing-it-wrong-vxdparis
PDF
Braintree SDK v.zero or "A payment gateway walks into a bar..." - Devfest Nan...
PPTX
The future of service organizations - Wolter Smit - SEE 2018
PDF
Vejen til service excellence - SEE 2018 Denmark
Event Sourcing - You are doing it wrong @ Devoxx
10 Tipps für ein absolutes Microservice-Desaster
10 Tips for failing at microservices
10 Tips for failing at microservices - badly (BedCon 2017)
Eventsourcing you-are-doing-it-wrong-vxdparis
Braintree SDK v.zero or "A payment gateway walks into a bar..." - Devfest Nan...
The future of service organizations - Wolter Smit - SEE 2018
Vejen til service excellence - SEE 2018 Denmark

Similar to 10 tips for failing at microservices @ DevExperience 2018 (20)

PPTX
Do Real Company Stuff - Mozcon 2012 Version
PPTX
What I learnt from building a chatbot - BrightonSEO 2017
PDF
APIdays Helsinki 2019 - Creating a Culture of Innovation with Jesse Martin, G...
PDF
How to deliver the workplace of the future
PPTX
Digital Transformation 'Before and After' - 24th September, London
PDF
A/E/C Websites: Innovating from Good to Grape
PDF
How to make friends and influence developers - @stekenwright at #TechSEO Summat
PDF
Technologies "web" d'aujourd'hui et de demain
PDF
Communicate magazine - Peter Granat
PDF
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
PDF
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
PPTX
Kevin Getch - Visualize a customer centric digital marketing strategy - Seatt...
PPTX
Speed up Continuous Delivery with BigData Analytics
PDF
Kognitio & AVS Digital Marketing Analytics Web Briefing Slides
PPTX
devopsdays Kiel 2018 - Can the AI hype & ML algorithms harm your devops initi...
PDF
Size Doesn't Matter | Twitter at Mobile Convention London 2016
PDF
Ashley Vinson (Twitter) - Size Doesn't Matter | Mobile Convention London 2016
PDF
Creating growth with customer-centric digital services by Tony Virtanen at Kn...
PDF
Creating growth with customer-centric digital services by Tony Virtanen at Kn...
PPTX
Extreme DevOps in Fintech
Do Real Company Stuff - Mozcon 2012 Version
What I learnt from building a chatbot - BrightonSEO 2017
APIdays Helsinki 2019 - Creating a Culture of Innovation with Jesse Martin, G...
How to deliver the workplace of the future
Digital Transformation 'Before and After' - 24th September, London
A/E/C Websites: Innovating from Good to Grape
How to make friends and influence developers - @stekenwright at #TechSEO Summat
Technologies "web" d'aujourd'hui et de demain
Communicate magazine - Peter Granat
Codemotion Milan 2018 - AI with a devops mindset: experimentation, sharing an...
Thiago de Faria - AI with a devops mindset - experimentation, sharing and eas...
Kevin Getch - Visualize a customer centric digital marketing strategy - Seatt...
Speed up Continuous Delivery with BigData Analytics
Kognitio & AVS Digital Marketing Analytics Web Briefing Slides
devopsdays Kiel 2018 - Can the AI hype & ML algorithms harm your devops initi...
Size Doesn't Matter | Twitter at Mobile Convention London 2016
Ashley Vinson (Twitter) - Size Doesn't Matter | Mobile Convention London 2016
Creating growth with customer-centric digital services by Tony Virtanen at Kn...
Creating growth with customer-centric digital services by Tony Virtanen at Kn...
Extreme DevOps in Fintech
Ad

More from David Schmitz (12)

PDF
Going Cloud Native
PDF
Vavr Java User Group Rheinland
PDF
Real world serverless - architecture, patterns and lessons learned
PDF
The FaaS and the Furious
PDF
Javaslang Talk @ Javaland 2017
PDF
Elixir - Easy fun for busy developers @ Devoxx 2016
PDF
Javaslang @ Devoxx
PDF
Javaslang - Functional Sugar For Java
PDF
Bootstrap |> Elixir - Easy fun for busy developers
PDF
Resilience testing with Wiremock and Spock
PDF
Docker for the Brave
PDF
Spring boot - Getting Started
Going Cloud Native
Vavr Java User Group Rheinland
Real world serverless - architecture, patterns and lessons learned
The FaaS and the Furious
Javaslang Talk @ Javaland 2017
Elixir - Easy fun for busy developers @ Devoxx 2016
Javaslang @ Devoxx
Javaslang - Functional Sugar For Java
Bootstrap |> Elixir - Easy fun for busy developers
Resilience testing with Wiremock and Spock
Docker for the Brave
Spring boot - Getting Started
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Chapter 3 Spatial Domain Image Processing.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Chapter 3 Spatial Domain Image Processing.pdf
The AUB Centre for AI in Media Proposal.docx
Big Data Technologies - Introduction.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.
Building Integrated photovoltaic BIPV_UPV.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Reach Out and Touch Someone: Haptics and Empathic Computing

10 tips for failing at microservices @ DevExperience 2018