SlideShare une entreprise Scribd logo
1  sur  180
Télécharger pour lire hors ligne
@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

Contenu connexe

Similaire à 10 tips for failing at microservices @ DevExperience 2018

Similaire à 10 tips for failing at microservices @ DevExperience 2018 (20)

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

Plus de David Schmitz

Plus de David Schmitz (12)

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

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

10 tips for failing at microservices @ DevExperience 2018