Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
@rachellaycock
MICRO-SERVICE
ARCHITECTURE
The Anti-Pattern of the Future?
MICRO-SERVICES
The Anti-Pattern of the Future?
3
slice bread
WTF?
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
but rst
Ball of Mud
Ball of Mud
Your
Brain at
Work
13
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
14
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
15
Marek Sotak
@sotak
17
INDEPENDENT PROCESSES
18
be of the
web
19
DECOUPLED
20
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
21
22
RESILIENCE
HTTP/1.1 503
200 Service
OK
Unavailable
<?xml version="1.0" ?>
<html>
<body>
<div id="healthchecks">
<ul>
<li class="up">application database</li>
<li class="down">external
class="up">external service</li>
service</li>
</ul>
</div>
</body>
</html>
/status
23
SCALING
A monolithic application puts all its
functionality into a single process
24
DEPLOYMENT
integration
test
run on build
machine
deployed on
build
machine
deployed to
integration
environment
deployed to
UAT
environment
deployed to
performance
environment
25
Conways law
26
Conways law
Cross-functional teams
27
REPLACEABLE SERVICES
28
29
Cognitive
complexity
http://beyondplm.com/2012/04/23/plm-and-the-death-of-complexity/
MORE INTEGRATION
32
http://combio.gist.ac.kr/wp-content/uploads/2013/05/Gene-microRNA-Network.png
33
Code duplication
34
35
http://www.clker.com
ESB
Deployment
integration
test
run on build
machine
deployed on
build
machine
deployed to
integration
environment
deployed to
UAT
environment
deployed to
performance
environment
37
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
38
1. FINDING SEAMS
39
http://continuousdelivery.com/wp-content/uploads/2011/05/branch_by_abstraction.png
BOUNDED CONTEXT
Domain
Driven
Design
40
2. DATA
41
CHANGING DATA
Refactoring
Databases
42
http://devlicio.us/blogs/casey/archive/2009/05/14/commercial-suicide-integration-at-the-database-level.aspx
coz reporting
http://devlicio.us/blogs/casey/archive/2009/05/14/commercial-suicide-integration-at-the-database-level.aspx
3. TESTING
45
http://martinfowler.com/articles/consumerDrivenContracts.html
46
MONITORING
47
MICRO-SERVICES
W
hy
do
we
want
them?
Or
maybe
not..
W
hat
are
the
key
challenges?
A
re
they
the
anti
pattern
of
the
future?
48
49
MATURITY
http://37.media.tumblr.com/tumblr_lp1ys7Qava1qe6m28o1_1280.png
50
51
52
3. POSTELS LAW
53
ESB
54
5. CONWAYS LAW
55
http://stilldrinking.org/programming-sucks
THANK YOU!
Rachel Laycock
@rachellaycock
Resources
Books:
Continuous Delivery - Jez Humble, Dave Farley
Working Effectively with Legacy Code - Michael Feathers
Domain Driven Design - Eric Evans
Your Brain at Work - David Rock
Refactoring Databases - Scott W Ambler & Pramod Sadalage
Building Microservices - Sam Newman
Articles/Blogs:
Ball of Mud: http://www.laputan.org/mud/
Demming - http://leanandkanban.wordpress.com/2011/07/15/demings-14-points/
Coding Horror: http://www.codinghorror.com/blog/2007/11/the-big-ball-of-mud-and-other-architecturaldisasters.html
http://devlicio.us/blogs/casey/archive/2009/05/14/commercial-suicide-integration-at-the-database-level.aspx
Evolutionary Architecture and Emergent Design: http://www.ibm.com/developerworks/java/library/j-eaed1/
index.html
Microservices: http://www.infoq.com/presentations/Micro-Services and http://yobriefca.se/blog/2013/04/29/
micro-service-architecture/ and http://davidmorgantini.blogspot.co.uk/2013/08/micro-services-what-are-microservices.html
http://martinfowler.com/articles/microservices.html
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html