Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
μServices { } March 2014 Will Hamill
Slide 2
Slide 2 text
DISCLAIMER: I am not an expert We are working (somewhat) in this direction on some projects But this is based mostly on content from QCon London 2014
Slide 3
Slide 3 text
Applications are getting larger
Slide 4
Slide 4 text
Services are getting smaller
Slide 5
Slide 5 text
Services have been getting smaller for some time
Slide 6
Slide 6 text
Monolithic
Slide 7
Slide 7 text
Layered
Slide 8
Slide 8 text
Service-Oriented
Slide 9
Slide 9 text
Micro-Services
Slide 10
Slide 10 text
How?
Slide 11
Slide 11 text
A micro-service typically does only one thing User Authentication and Role Based Authorisation Service User Authentication Role Based Authorisation
Slide 12
Slide 12 text
Anatomy of a micro service HTTP Logic Monitoring Storage
Slide 13
Slide 13 text
Techs: no hard and fast rules Simpler, lighter, self-contained services need simpler and lighter technologies
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Why?
Slide 16
Slide 16 text
Simplicity (at the service level)
Slide 17
Slide 17 text
3,000 LOC vs 200 LOC 100 LOC 500 LOC 400 LOC 200 LOC
Slide 18
Slide 18 text
Scale (distribute load and apps across machines)
Slide 19
Slide 19 text
Scaling the monolith
Slide 20
Slide 20 text
Scaling the monolith
Slide 21
Slide 21 text
Scaling the monolith …
Slide 22
Slide 22 text
Scaling micro-services
Slide 23
Slide 23 text
Scaling micro-services
Slide 24
Slide 24 text
Scaling micro-services
Slide 25
Slide 25 text
Scaling micro-services …
Slide 26
Slide 26 text
Scale 2: Scale Harder (many teams one on project)
Slide 27
Slide 27 text
Division of labour
Slide 28
Slide 28 text
Division of labour
Slide 29
Slide 29 text
Responding to change (decoupling delivery)
Slide 30
Slide 30 text
Release Schedule Every 6 months
Slide 31
Slide 31 text
Every 2 weeks Every week Every 4 weeks About every 4 days
Slide 32
Slide 32 text
Fault tolerance (fault acceptance)
Slide 33
Slide 33 text
Fragile Robust Antifragile
Slide 34
Slide 34 text
Who?
Slide 35
Slide 35 text
Netflix Twitter Amazon Yammer MailOnline
Slide 36
Slide 36 text
Not Quite There Yet
Slide 37
Slide 37 text
BandwagonDB
Slide 38
Slide 38 text
DRY-ed Out “core”
Slide 39
Slide 39 text
Service-Oriented Monolith
Slide 40
Slide 40 text
Difficulties
Slide 41
Slide 41 text
Testing everything is harder (but testing services is easier)
Slide 42
Slide 42 text
Fast, automated deployment and application monitoring are super-important
Slide 43
Slide 43 text
Versioning can be tricky www.semver.org
Slide 44
Slide 44 text
Conway’s Law
Slide 45
Slide 45 text
This Is New
Slide 46
Slide 46 text
This is an emerging approach Find which tradeoffs work best for your particular situation
Slide 47
Slide 47 text
“It depends” ¯\_(ツ)_/¯
Slide 48
Slide 48 text
Further Reading http://www.infoq.com/presentations/Micro-Services http://vimeo.com/user22258446/review/79288222/cbb24b224c http://yobriefca.se/blog/2013/04/29/micro-service-architecture/ http://martinfowler.com/articles/microservices.html http://davidmorgantini.blogspot.co.uk/2013/08/micro-services- introduction.html http://qconlondon.com/dl/qcon-london-2014/slides/ AdrianCockcroft_MigratingToMicroservices.pdf
Slide 49
Slide 49 text
No content