DELIVERING WITH
MICROSERVICES
HOW TO ITERATE TOWARDS SOPHISTICATION
FROM THE TRENCHES
LESSONS LEARNED
FROM THE TRENCHES
NANO SERVICES
COMPLEXITY
FROM THE TRENCHES
CROSS CUTTING CONCERNS
public void RefreshAllResults()
{
[…]
WithConnection(
connection =>
connection.Execute(DbTable + "UpdateAll", CommandType.StoredProcedure));
[…]
}
results-service
UpdateAllResults
service-a service-b service-c
FROM THE TRENCHES
REFLECTIONS
FROM THE TRENCHES
REFLECTIONS
microservices?
FROM THE TRENCHES
REFLECTIONS
microservices? need big upfront design?
FROM THE TRENCHES
DEFINE MICROSERVICES
WHEN AGILE MEETS DISTRIBUTED SYSTEMS
AN ALTERNATIVE TO VENDOR-LED SOA
http://www.infoq.com/presentations/webber-guerilla-soa
DEFINE MICROSERVICES
AN ALTERNATIVE TO VENDOR-LED SOA
http://www.infoq.com/presentations/webber-guerilla-soa
DEFINE MICROSERVICES
The
Problem
AN ALTERNATIVE TO VENDOR-LED SOA
http://www.infoq.com/presentations/webber-guerilla-soa
DEFINE MICROSERVICES
The
Problem
The
Solution
AN ALTERNATIVE TO VENDOR-LED SOA
http://www.infoq.com/presentations/webber-guerilla-soa
DEFINE MICROSERVICES
The
Problem
The
Solution
The
Problem
Again
AN ALTERNATIVE TO VENDOR-LED SOA
http://www.infoq.com/presentations/webber-guerilla-soa
DEFINE MICROSERVICES
The
Problem
The
Solution
Back to
The
Future
The
Problem
Again
DISTRIBUTED AND WEB ARCHITECTURES
C++
1980s
Java
1990s
ANSI C
TCP Client-Sever
RPC
CORBA
RMI
DEFINE MICROSERVICES
DISTRIBUTED AND WEB ARCHITECTURES
C++
1980s
Java
1990s
ANSI C
TCP Client-Sever
RPC
CORBA
RMI
DEFINE MICROSERVICES
2000s 2010s
XML JavaScript
SOAP
SOA
JSON
REST
HTTP
The Internet
SOFTWARE DEVELOPMENT METHODOLOGIES
RUP
XP
Continuous
Integration
Agile
Continuous
Delivery
1980s 1990s 2000s 2010s
DEFINE MICROSERVICES
THE PRODIGAL SON
Service
Oriented
Architecture
Continuous
Delivery
Microservices
DEFINE MICROSERVICES
XP AgileThe Internet
Distributed
Systems
REFLECTIONS
microservices? need big upfront design?
Microservices
DEFINE MICROSERVICES
MICROSERVICES RUSH
WHAT MAKE THEM SO POPULAR?
INTEREST
0
January 2014
June 2015
100
Google Trends Data
# “microservices” searches
MICROSERVICES RUSH
SCALE
"In order to scale to the next order of magnitude, we're
rethinking the fundamentals of our architecture"
Philip Fisher-Ogden, Director of Engineering
"We created the viewing service to encapsulate the domain of
viewing data collection, processing, and providing "
"These components would be easier to develop, test, debug,
deploy, and operate if they were extracted into their own services."
http://www.techrepublic.com/article/netflix-on-how-to-build-services-that-scale-beyond-millions-of-users/
MICROSERVICES RUSH
BREAK THE MONOLITH
Monolithic Perl —> Monolithic C++ —> Java —> microservices
Monolithic C++ —> Perl / C++ —> Java / Scala -> microservices
Monolithic Rails —> JS / Rails / Scala —> microservices
MICROSERVICES RUSH
BUSINESS VALUE FIRST
https://yow.eventer.com/yow-2011-1004/domain-driven-design-strategies-for-dealing-with-legacy-systems-by-eric-evans-1033
MICROSERVICES RUSH
CONWAY’S LAW
"Any organisation that designs a system […] will
inevitably produce a design whose structure is a copy
of the organisation's communication structure."
Melvin Conway, How Do Committees Invent - 1968
MICROSERVICES RUSH
REFLECTIONS
microservices? need big upfront design?
Microservices
MICROSERVICES RUSH
REFLECTIONS
microservices? need big upfront design?
Microservices
strategic value
MICROSERVICES RUSH
REFLECTIONS
microservices? need big upfront design?
Microservices
strategic value break the monolith
MICROSERVICES RUSH
REFLECTIONS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale
MICROSERVICES RUSH
REFLECTIONS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
MICROSERVICES RUSH
DELIVERING MICROSERVICES
IN AN AGILE WAY
THE PROBLEM
Infrastructure
Features
Infrastructure
Features
WatchlistService
Type of work delivered over time
DELIVERING MICROSERVICES
THE GOAL
DELIVERING MICROSERVICES
JOURNEY
DELIVERING MICROSERVICES
JOURNEY
Discovery
DELIVERING MICROSERVICES
JOURNEY
Discovery Release 1
DELIVERING MICROSERVICES
JOURNEY
Discovery Release 1 Release 2
DELIVERING MICROSERVICES
JOURNEY
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
JOURNEY
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
JOURNEY
Capabilities
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
DISCOVERY - WHY MICROSERVICES
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
BUSINESS & ARCHITECTURE CONTRACT
DELIVERING MICROSERVICES
BUSINESS & ARCHITECTURE CONTRACT
DELIVERING MICROSERVICES
Strategic
Goals
BUSINESS & ARCHITECTURE CONTRACT
DELIVERING MICROSERVICES
Strategic
Goals
Architectural
Principles
BUSINESS & ARCHITECTURE CONTRACT
DELIVERING MICROSERVICES
Strategic
Goals
Architectural
Principles
Design & Delivery
Practices
BUSINESS & ARCHITECTURE CONTRACT
DELIVERING MICROSERVICES
Strategic
Goals
Architectural
Principles
Design & Delivery
Practices
USER JOURNEYS ACROSS SERVICES
users
journeys
services
journeys
DELIVERING MICROSERVICES
RELEASE 1 - BUILD A MINILITH
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
RELEASE 1 - ARCHITECTURE
DELIVERING MICROSERVICES
RELEASE 1 - ARCHITECTURE
greenfield
DELIVERING MICROSERVICES
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
DELIVERING MICROSERVICES
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
DELIVERING MICROSERVICES
minilith
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
DELIVERING MICROSERVICES
minilith
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
Client
DELIVERING MICROSERVICES
minilith
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
Client
Presentation
DELIVERING MICROSERVICES
minilith
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
Client
Presentation
Biz Services
DELIVERING MICROSERVICES
minilith
RELEASE 1 - ARCHITECTURE
greenfield
brownfield
monolith
minilith
minilith
Client
Presentation
Biz Services
services
DELIVERING MICROSERVICES
RELEASE 1 - CONTINUOUS DELIVERY
• CODE
• BUILD
• PLAN
• RELEASE
• TO TEST FLIGHT
• CODE
• BUILD
• PLAN
• RELEASE
• TO TEST FLIGHT
CODE
PLAN
BUILD
TEST
RELEASE TO
PRODUCT OWNER
+ BETA
INSTALL
TRACK USAGE
USER
FEEDBACK
Continuous
Integration
Usability and
Feedback Cycle
DELIVERING MICROSERVICES
RELEASE 1 - CONTRACT TESTING
Functional
Integration
Unit Unit
Contracts
Web Application Web Services
DELIVERING MICROSERVICES
RELEASE 1 - COUPLING GRAPHS WITH D3JS
DELIVERING MICROSERVICES
RELEASE 1 - COUPLING GRAPHS WITH D3JS
Requests Flow
http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html
DELIVERING MICROSERVICES
Dependencies
https://www.youtube.com/watch?v=hsoovFbpAoE
RELEASE 1 - COUPLING GRAPHS WITH D3JS
Requests Flow
http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html
DELIVERING MICROSERVICES
RELEASE 1 - TRANSACTIONS LOGGING
service-A service-B
service-C
DELIVERING MICROSERVICES
RELEASE 1 - TRANSACTIONS LOGGING
service-A service-B
service-C
ID: ABCD
DELIVERING MICROSERVICES
RELEASE 1 - TRANSACTIONS LOGGING
service-A service-B
service-C
ID: ABCD
ID: EFGH
caused by ABCD
DELIVERING MICROSERVICES
RELEASE 1 - TRANSACTIONS LOGGING
service-A service-B
service-C
ID: ABCD
ID: EFGH
caused by ABCD
ID: IJKL
caused by EFGH
DELIVERING MICROSERVICES
RELEASE 1 - DIFFERENT LEVELS OF MONITORING
Infrastructure
New Relic
RuntimeLog
Logstash & Kibana
DELIVERING MICROSERVICES
RELEASE 1 - BUILD CAPABILITIES
• Continuously Deliver
CI, automated builds, tests, and deployments, release management
• Re-think the pyramid of tests
Favor contracts testing to UI functional testing
• Control dependencies
Modules integration via HTTP, dependency graph, transaction logging
• Release to production
Learn about your prod environment, consider containers and/or in-process
lightweight web servers, load balancers, caching, etc…
• Monitor & Analyse
Have system monitoring and data analytics in place.
DELIVERING MICROSERVICES
RELEASE 2 - FIRST MICROSERVICES
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
RELEASE 2 - ARCHITECTURE
greenfield
brownfield
monolith
services
services
DELIVERING MICROSERVICES
RELEASE 2 - ARCHITECTURE
greenfield
brownfield
monolith
services
services
DELIVERING MICROSERVICES
RELEASE 2 - ARCHITECTURE
greenfield
brownfield
monolith
Client
Presentation
services
services
DELIVERING MICROSERVICES
RELEASE 2 - ARCHITECTURE
greenfield
brownfield
monolith
Client
Presentation
Biz Services
services
services
DELIVERING MICROSERVICES
RELEASE 2 - ARCHITECTURE
greenfield
brownfield
monolith
Client
Presentation
Biz Services
services
services
services
DELIVERING MICROSERVICES
RELEASE 2 - NEW SERVICE USE CASES
DELIVERING MICROSERVICES
RELEASE 2 - NEW SERVICE USE CASES
new bounded context
DELIVERING MICROSERVICES
RELEASE 2 - NEW SERVICE USE CASES
new bounded context scale separately
DELIVERING MICROSERVICES
RELEASE 2 - NEW SERVICE USE CASES
new bounded context scale separately
security
DELIVERING MICROSERVICES
RELEASE 2 - NEW SERVICE USE CASES
new bounded context scale separately
securitydata aggregation
DELIVERING MICROSERVICES
RELEASE 2 - ISOLATION
DATA
"No direct database access is allowed from outside the
service, and there’s no data sharing among the services"
Werner Vogels, CTO and Vice President of amazon.com
DELIVERING MICROSERVICES
RELEASE 2 - ISOLATION
CONTAINERS
LXD
DELIVERING MICROSERVICES
RELEASE 2 - ISOLATION
INTEGRATION
Orchestration Choreography
http://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream
DELIVERING MICROSERVICES
RELEASE 2 - LOWER BARRIER TO ENTRY
TO BE ADDED
DELIVERING MICROSERVICES
RELEASE 2 - BUILD WHAT YOU CAN SUPPORT
DELIVERING MICROSERVICES
RELEASE 2 - UNDERSTAND SERVICES
• Know if and when to create a new service
new bounded context, aggregation, security, scale independently
• Define (your level of) isolation
code, compilation, runtime, persistence, integration
• Reduce barrier to entry
repository blueprint, pipeline template, scaffolding script
• Build what you can support
develop DevOps culture (e.g. infrastructure as code)
DELIVERING MICROSERVICES
RELEASE N - SCALE
Discovery Release 1 Release 2 Release N…
DELIVERING MICROSERVICES
RELEASE N - SCALING FOR LOAD
CAP THEOREM
DELIVERING MICROSERVICES
Availability
Consistency
Partition
Tolerance
DELIVERING MICROSERVICES
RELEASE N - SCALING FOR LOAD
ARCHITECTURE
DELIVERING MICROSERVICES
RELEASE N - SCALING FOR LOAD
ARCHITECTURE
Consistent & Available
(No Partition Tolerance)
DELIVERING MICROSERVICES
RELEASE N - SCALING FOR LOAD
ARCHITECTURE
Consistent & Available
(No Partition Tolerance)
Partition Tolerant & Available
(No consistency)
DELIVERING MICROSERVICES
RELEASE N - SCALING FOR LOAD
ARCHITECTURE
Consistent & Available
(No Partition Tolerance)
Partition Tolerant & Available
(No consistency)
Partition Tolerant & Available
(Eventual consistency)
read replicas
Writes Reads
RELEASE N - SCALING DELIVERY
DELIVERING MICROSERVICES
PO
BA
QA
DEV
OPS
RELEASE N - SCALING DELIVERY
SERVICE TEAMS
DELIVERING MICROSERVICES
PO
BA
QA
DEV
OPS
RELEASE N - SCALING DELIVERY
SERVICE TEAMS
DELIVERING MICROSERVICES
service team
PO
BA
QA
DEV
OPS
RELEASE N - SCALING DELIVERY
SERVICE TEAMS
DELIVERING MICROSERVICES
service team
service A
service B service C
HQ
PO
BA
QA
DEV
OPS
RELEASE N - SCALING DELIVERY
SERVICE TEAMS
DELIVERING MICROSERVICES
service team
service A
service B service C
HQ
service A service B service C
PO
BA
QA
DEV
OPS
RELEASE N - SCALING DELIVERY
SERVICE TEAMS
DELIVERING MICROSERVICES
service team
service A
service B service C
HQ
service A service B service C
RELEASE N - SCALING DELIVERY
DISTRIBUTED TEAMS
DELIVERING MICROSERVICES
CHENGDUBRISBANE SYDNEY PERTH
RELEASE N - SCALING DELIVERY
DISTRIBUTED TEAMS
DELIVERING MICROSERVICES
CHENGDUBRISBANE
mogul-service pizza-image-service
SYDNEY PERTH
RELEASE N - SCALING DELIVERY
DISTRIBUTED TEAMS
DELIVERING MICROSERVICES
CHENGDUBRISBANE
mogul-service pizza-image-service
SYDNEY PERTH
media-serviceauth-service
dough-service
email-service
mogul-private-service
moderation-service
pizza-service
order-service
leaderboard-service
charity-service
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
• agree with business why microservices
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
• agree with business why microservices
• continuous delivery, testing strategy, monitoring
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
• agree with business why microservices
• continuous delivery, testing strategy, monitoring
• start small, grow your own capabilities
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
• agree with business why microservices
• continuous delivery, testing strategy, monitoring
• start small, grow your own capabilities
• scale your services and your organisation
KEY TAKEAWAYS
microservices? need big upfront design?
Microservices
strategic value break the monolith scale re-org
CONCLUSION
• what are microservices
• does not require big upfront design
• application of agile techniques to distributed systems
• agree with business why microservices
• continuous delivery, testing strategy, monitoring
• start small, grow your own capabilities
• scale your services and your organisation
• choose what works for you
KEY TAKEAWAYS
jeandamore
blog.corsamore.com
jeandamore
jdamore
Jean D’Amore
Technology Market Principal
jdamore@thoughtworks.com
ABOUT ME

Delivering with Microservices - How to Iterate Towards Sophistication

  • 1.
    DELIVERING WITH MICROSERVICES HOW TOITERATE TOWARDS SOPHISTICATION
  • 2.
  • 3.
  • 4.
  • 5.
    CROSS CUTTING CONCERNS publicvoid RefreshAllResults() { […] WithConnection( connection => connection.Execute(DbTable + "UpdateAll", CommandType.StoredProcedure)); […] } results-service UpdateAllResults service-a service-b service-c FROM THE TRENCHES
  • 6.
  • 7.
  • 8.
    REFLECTIONS microservices? need bigupfront design? FROM THE TRENCHES
  • 9.
    DEFINE MICROSERVICES WHEN AGILEMEETS DISTRIBUTED SYSTEMS
  • 10.
    AN ALTERNATIVE TOVENDOR-LED SOA http://www.infoq.com/presentations/webber-guerilla-soa DEFINE MICROSERVICES
  • 11.
    AN ALTERNATIVE TOVENDOR-LED SOA http://www.infoq.com/presentations/webber-guerilla-soa DEFINE MICROSERVICES The Problem
  • 12.
    AN ALTERNATIVE TOVENDOR-LED SOA http://www.infoq.com/presentations/webber-guerilla-soa DEFINE MICROSERVICES The Problem The Solution
  • 13.
    AN ALTERNATIVE TOVENDOR-LED SOA http://www.infoq.com/presentations/webber-guerilla-soa DEFINE MICROSERVICES The Problem The Solution The Problem Again
  • 14.
    AN ALTERNATIVE TOVENDOR-LED SOA http://www.infoq.com/presentations/webber-guerilla-soa DEFINE MICROSERVICES The Problem The Solution Back to The Future The Problem Again
  • 15.
    DISTRIBUTED AND WEBARCHITECTURES C++ 1980s Java 1990s ANSI C TCP Client-Sever RPC CORBA RMI DEFINE MICROSERVICES
  • 16.
    DISTRIBUTED AND WEBARCHITECTURES C++ 1980s Java 1990s ANSI C TCP Client-Sever RPC CORBA RMI DEFINE MICROSERVICES 2000s 2010s XML JavaScript SOAP SOA JSON REST HTTP The Internet
  • 17.
  • 18.
  • 19.
    REFLECTIONS microservices? need bigupfront design? Microservices DEFINE MICROSERVICES
  • 20.
  • 21.
    INTEREST 0 January 2014 June 2015 100 GoogleTrends Data # “microservices” searches MICROSERVICES RUSH
  • 22.
    SCALE "In order toscale to the next order of magnitude, we're rethinking the fundamentals of our architecture" Philip Fisher-Ogden, Director of Engineering "We created the viewing service to encapsulate the domain of viewing data collection, processing, and providing " "These components would be easier to develop, test, debug, deploy, and operate if they were extracted into their own services." http://www.techrepublic.com/article/netflix-on-how-to-build-services-that-scale-beyond-millions-of-users/ MICROSERVICES RUSH
  • 23.
    BREAK THE MONOLITH MonolithicPerl —> Monolithic C++ —> Java —> microservices Monolithic C++ —> Perl / C++ —> Java / Scala -> microservices Monolithic Rails —> JS / Rails / Scala —> microservices MICROSERVICES RUSH
  • 24.
  • 25.
    CONWAY’S LAW "Any organisationthat designs a system […] will inevitably produce a design whose structure is a copy of the organisation's communication structure." Melvin Conway, How Do Committees Invent - 1968 MICROSERVICES RUSH
  • 26.
    REFLECTIONS microservices? need bigupfront design? Microservices MICROSERVICES RUSH
  • 27.
    REFLECTIONS microservices? need bigupfront design? Microservices strategic value MICROSERVICES RUSH
  • 28.
    REFLECTIONS microservices? need bigupfront design? Microservices strategic value break the monolith MICROSERVICES RUSH
  • 29.
    REFLECTIONS microservices? need bigupfront design? Microservices strategic value break the monolith scale MICROSERVICES RUSH
  • 30.
    REFLECTIONS microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org MICROSERVICES RUSH
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
    JOURNEY Discovery Release 1Release 2 DELIVERING MICROSERVICES
  • 38.
    JOURNEY Discovery Release 1Release 2 Release N… DELIVERING MICROSERVICES
  • 39.
    JOURNEY Discovery Release 1Release 2 Release N… DELIVERING MICROSERVICES
  • 40.
    JOURNEY Capabilities Discovery Release 1Release 2 Release N… DELIVERING MICROSERVICES
  • 41.
    DISCOVERY - WHYMICROSERVICES Discovery Release 1 Release 2 Release N… DELIVERING MICROSERVICES
  • 42.
    BUSINESS & ARCHITECTURECONTRACT DELIVERING MICROSERVICES
  • 43.
    BUSINESS & ARCHITECTURECONTRACT DELIVERING MICROSERVICES Strategic Goals
  • 44.
    BUSINESS & ARCHITECTURECONTRACT DELIVERING MICROSERVICES Strategic Goals Architectural Principles
  • 45.
    BUSINESS & ARCHITECTURECONTRACT DELIVERING MICROSERVICES Strategic Goals Architectural Principles Design & Delivery Practices
  • 46.
    BUSINESS & ARCHITECTURECONTRACT DELIVERING MICROSERVICES Strategic Goals Architectural Principles Design & Delivery Practices
  • 47.
    USER JOURNEYS ACROSSSERVICES users journeys services journeys DELIVERING MICROSERVICES
  • 48.
    RELEASE 1 -BUILD A MINILITH Discovery Release 1 Release 2 Release N… DELIVERING MICROSERVICES
  • 49.
    RELEASE 1 -ARCHITECTURE DELIVERING MICROSERVICES
  • 50.
    RELEASE 1 -ARCHITECTURE greenfield DELIVERING MICROSERVICES
  • 51.
    RELEASE 1 -ARCHITECTURE greenfield brownfield monolith DELIVERING MICROSERVICES
  • 52.
    RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith DELIVERING MICROSERVICES
  • 53.
    minilith RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith DELIVERING MICROSERVICES
  • 54.
    minilith RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith Client DELIVERING MICROSERVICES
  • 55.
    minilith RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith Client Presentation DELIVERING MICROSERVICES
  • 56.
    minilith RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith Client Presentation Biz Services DELIVERING MICROSERVICES
  • 57.
    minilith RELEASE 1 -ARCHITECTURE greenfield brownfield monolith minilith minilith Client Presentation Biz Services services DELIVERING MICROSERVICES
  • 58.
    RELEASE 1 -CONTINUOUS DELIVERY • CODE • BUILD • PLAN • RELEASE • TO TEST FLIGHT • CODE • BUILD • PLAN • RELEASE • TO TEST FLIGHT CODE PLAN BUILD TEST RELEASE TO PRODUCT OWNER + BETA INSTALL TRACK USAGE USER FEEDBACK Continuous Integration Usability and Feedback Cycle DELIVERING MICROSERVICES
  • 59.
    RELEASE 1 -CONTRACT TESTING Functional Integration Unit Unit Contracts Web Application Web Services DELIVERING MICROSERVICES
  • 60.
    RELEASE 1 -COUPLING GRAPHS WITH D3JS DELIVERING MICROSERVICES
  • 61.
    RELEASE 1 -COUPLING GRAPHS WITH D3JS Requests Flow http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html DELIVERING MICROSERVICES
  • 62.
    Dependencies https://www.youtube.com/watch?v=hsoovFbpAoE RELEASE 1 -COUPLING GRAPHS WITH D3JS Requests Flow http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html DELIVERING MICROSERVICES
  • 63.
    RELEASE 1 -TRANSACTIONS LOGGING service-A service-B service-C DELIVERING MICROSERVICES
  • 64.
    RELEASE 1 -TRANSACTIONS LOGGING service-A service-B service-C ID: ABCD DELIVERING MICROSERVICES
  • 65.
    RELEASE 1 -TRANSACTIONS LOGGING service-A service-B service-C ID: ABCD ID: EFGH caused by ABCD DELIVERING MICROSERVICES
  • 66.
    RELEASE 1 -TRANSACTIONS LOGGING service-A service-B service-C ID: ABCD ID: EFGH caused by ABCD ID: IJKL caused by EFGH DELIVERING MICROSERVICES
  • 67.
    RELEASE 1 -DIFFERENT LEVELS OF MONITORING Infrastructure New Relic RuntimeLog Logstash & Kibana DELIVERING MICROSERVICES
  • 68.
    RELEASE 1 -BUILD CAPABILITIES • Continuously Deliver CI, automated builds, tests, and deployments, release management • Re-think the pyramid of tests Favor contracts testing to UI functional testing • Control dependencies Modules integration via HTTP, dependency graph, transaction logging • Release to production Learn about your prod environment, consider containers and/or in-process lightweight web servers, load balancers, caching, etc… • Monitor & Analyse Have system monitoring and data analytics in place. DELIVERING MICROSERVICES
  • 69.
    RELEASE 2 -FIRST MICROSERVICES Discovery Release 1 Release 2 Release N… DELIVERING MICROSERVICES
  • 70.
    RELEASE 2 -ARCHITECTURE greenfield brownfield monolith services services DELIVERING MICROSERVICES
  • 71.
    RELEASE 2 -ARCHITECTURE greenfield brownfield monolith services services DELIVERING MICROSERVICES
  • 72.
    RELEASE 2 -ARCHITECTURE greenfield brownfield monolith Client Presentation services services DELIVERING MICROSERVICES
  • 73.
    RELEASE 2 -ARCHITECTURE greenfield brownfield monolith Client Presentation Biz Services services services DELIVERING MICROSERVICES
  • 74.
    RELEASE 2 -ARCHITECTURE greenfield brownfield monolith Client Presentation Biz Services services services services DELIVERING MICROSERVICES
  • 75.
    RELEASE 2 -NEW SERVICE USE CASES DELIVERING MICROSERVICES
  • 76.
    RELEASE 2 -NEW SERVICE USE CASES new bounded context DELIVERING MICROSERVICES
  • 77.
    RELEASE 2 -NEW SERVICE USE CASES new bounded context scale separately DELIVERING MICROSERVICES
  • 78.
    RELEASE 2 -NEW SERVICE USE CASES new bounded context scale separately security DELIVERING MICROSERVICES
  • 79.
    RELEASE 2 -NEW SERVICE USE CASES new bounded context scale separately securitydata aggregation DELIVERING MICROSERVICES
  • 80.
    RELEASE 2 -ISOLATION DATA "No direct database access is allowed from outside the service, and there’s no data sharing among the services" Werner Vogels, CTO and Vice President of amazon.com DELIVERING MICROSERVICES
  • 81.
    RELEASE 2 -ISOLATION CONTAINERS LXD DELIVERING MICROSERVICES
  • 82.
    RELEASE 2 -ISOLATION INTEGRATION Orchestration Choreography http://www.thoughtworks.com/insights/blog/scaling-microservices-event-stream DELIVERING MICROSERVICES
  • 83.
    RELEASE 2 -LOWER BARRIER TO ENTRY TO BE ADDED DELIVERING MICROSERVICES
  • 84.
    RELEASE 2 -BUILD WHAT YOU CAN SUPPORT DELIVERING MICROSERVICES
  • 85.
    RELEASE 2 -UNDERSTAND SERVICES • Know if and when to create a new service new bounded context, aggregation, security, scale independently • Define (your level of) isolation code, compilation, runtime, persistence, integration • Reduce barrier to entry repository blueprint, pipeline template, scaffolding script • Build what you can support develop DevOps culture (e.g. infrastructure as code) DELIVERING MICROSERVICES
  • 86.
    RELEASE N -SCALE Discovery Release 1 Release 2 Release N… DELIVERING MICROSERVICES
  • 87.
    RELEASE N -SCALING FOR LOAD CAP THEOREM DELIVERING MICROSERVICES Availability Consistency Partition Tolerance
  • 88.
    DELIVERING MICROSERVICES RELEASE N- SCALING FOR LOAD ARCHITECTURE
  • 89.
    DELIVERING MICROSERVICES RELEASE N- SCALING FOR LOAD ARCHITECTURE Consistent & Available (No Partition Tolerance)
  • 90.
    DELIVERING MICROSERVICES RELEASE N- SCALING FOR LOAD ARCHITECTURE Consistent & Available (No Partition Tolerance) Partition Tolerant & Available (No consistency)
  • 91.
    DELIVERING MICROSERVICES RELEASE N- SCALING FOR LOAD ARCHITECTURE Consistent & Available (No Partition Tolerance) Partition Tolerant & Available (No consistency) Partition Tolerant & Available (Eventual consistency) read replicas Writes Reads
  • 92.
    RELEASE N -SCALING DELIVERY DELIVERING MICROSERVICES
  • 93.
    PO BA QA DEV OPS RELEASE N -SCALING DELIVERY SERVICE TEAMS DELIVERING MICROSERVICES
  • 94.
    PO BA QA DEV OPS RELEASE N -SCALING DELIVERY SERVICE TEAMS DELIVERING MICROSERVICES service team
  • 95.
    PO BA QA DEV OPS RELEASE N -SCALING DELIVERY SERVICE TEAMS DELIVERING MICROSERVICES service team service A service B service C HQ
  • 96.
    PO BA QA DEV OPS RELEASE N -SCALING DELIVERY SERVICE TEAMS DELIVERING MICROSERVICES service team service A service B service C HQ service A service B service C
  • 97.
    PO BA QA DEV OPS RELEASE N -SCALING DELIVERY SERVICE TEAMS DELIVERING MICROSERVICES service team service A service B service C HQ service A service B service C
  • 98.
    RELEASE N -SCALING DELIVERY DISTRIBUTED TEAMS DELIVERING MICROSERVICES CHENGDUBRISBANE SYDNEY PERTH
  • 99.
    RELEASE N -SCALING DELIVERY DISTRIBUTED TEAMS DELIVERING MICROSERVICES CHENGDUBRISBANE mogul-service pizza-image-service SYDNEY PERTH
  • 100.
    RELEASE N -SCALING DELIVERY DISTRIBUTED TEAMS DELIVERING MICROSERVICES CHENGDUBRISBANE mogul-service pizza-image-service SYDNEY PERTH media-serviceauth-service dough-service email-service mogul-private-service moderation-service pizza-service order-service leaderboard-service charity-service
  • 101.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION KEY TAKEAWAYS
  • 102.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices KEY TAKEAWAYS
  • 103.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design KEY TAKEAWAYS
  • 104.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems KEY TAKEAWAYS
  • 105.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems • agree with business why microservices KEY TAKEAWAYS
  • 106.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems • agree with business why microservices • continuous delivery, testing strategy, monitoring KEY TAKEAWAYS
  • 107.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems • agree with business why microservices • continuous delivery, testing strategy, monitoring • start small, grow your own capabilities KEY TAKEAWAYS
  • 108.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems • agree with business why microservices • continuous delivery, testing strategy, monitoring • start small, grow your own capabilities • scale your services and your organisation KEY TAKEAWAYS
  • 109.
    microservices? need bigupfront design? Microservices strategic value break the monolith scale re-org CONCLUSION • what are microservices • does not require big upfront design • application of agile techniques to distributed systems • agree with business why microservices • continuous delivery, testing strategy, monitoring • start small, grow your own capabilities • scale your services and your organisation • choose what works for you KEY TAKEAWAYS
  • 110.