Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Microservices:
Architecture to Scale
Agile
Eberhard Wolff
Fellow, innoQ
@ewolff
http://continuous-delivery-buch.de/
http://microservices-buch.de/ http://microservices-book.com/
http://microservices-book.com/primer.html
FREE!!!!
> Microservices
> Agility
> Self-contained Systems
> SCS to scale agile
Microservices
Server Server
Microservices:
Definition
> Independent deployment units
> E.g. process, VMs, Docker containers
> Any techno...
Components Collaborate
Micro
Service
Micro
Service
Link
Data Replication
REST
Messaging
Possible Microservices
Architecture
iOS Android Web
Order Search Catalog
BillingCustomer
Backend Backend Backend
Real-World Example
> Team = one person
> Microservices-based system
> Reasons
> Fast and easy deployment
> Clear separation
Microservices can do
more than scaling
agile!
Agility
Iterations
> Work in iterations
> Not following a fixed plan
> “Waterfall” paper 1970
(Royce): Do it twice!
> I.e. iterati...
No Iterations
Goal
Goal
Iterations
Goal
Goal
Goal
Goal
Cross-functional Team
> Need lots of skill to develop
features
> Have all skills in the team
> Direct communication is
bet...
Self Organization
> Team knows best how to
solve problems
> Let them decide
Scaling
Scaling
> Do more
> Get more stories
implemented
> ...and running in
production
TODO IN PROGRESS DONE
Scaling
> Do more
> Add more people
> Let the work in parallel
> Build more teams
Organizational
Approaches
Scrum of
Scrums
Scaled Agile
Framework
(SAFe)
Large Scale
Scrum( LeSS) Agile Path
Organizational
Approaches
Scrum of
Scrums
Scaled Agile
Framework
(SAFe)
Large Scale
Scrum( LeSS) Agile Path
Not my
experti...
Communication
> Agile means communication
> Instead of written requirements
> ...story cards
> + direct communication
# Persons vs.
Potential Links
# Persons vs.
Potential Links
0
100
200
300
0 10 20 30
Communication is great!
Need more persons
Depedencies and
Coordination are
Problems!
Dependencies
> Feature across teams
> Team must wait for other teams‘ results
time
Team Sprint
Team Sprint
Team Sprint
3 sprints
Functionalities
Technology and
Architecture
What Do You
Communicate About?
Releases
Can we limit the need
for communication?
Challenges for
Scaling Agile
> Dependencies cause delays
> Too much communication about
functionalities...
> ...releasing ...
Self-contained
System
Deployment
monolith
Graphics by Roman Stranghöhner, innoQ
http://scs-architecture.org
Cut Deployment
monolith along
domains …
… wrap domain in
separate web
application …
Self-contained
System (SCS) –
individually
deployable
SCS =
user interface+
business logic+
data storage
Web user interface
optional API e.g. for
mobile
Self-contained
Systems
should be integrated
in the web interface
Hyperlinks to navigate between
systems.
System 1 System 2
Dynamic inclusion of content
served by another application
System 1 System 2
Logic only shared over
a well defined
interface.
Business logic can
consist of
microservices
Avoid synchronous
remote calls
Remote API calls
should be
asynchronous
Every SCS brings its
own data storage
with its own
(potentially
redundant) data
Technical decisions can
be made independently
from other systems
(programming language,
frameworks, tooling,
platform)
Domained scoped
SCS enables the
development,
operation and
maintenance of an
domain by a
single team.
Team 1
Team 2 Team 3
1 SCS
= 1 Domain
= 1 Web App
= 1 Team
= 1-n Microservices
SCS?
iOS Android Web
Order Search Catalog
BillingCustomer
Backend Backend Backend
SCS?
iOS Android Web
Order Search Catalog
BillingCustomer
Backend Backend Backend
SCS to Scale Agile
Challenges for
Scaling Agile
> Dependencies cause delays
> Too much communication about
functionalities...
> ...releasing ...
Challenges for
Scaling Agile
> Dependencies cause delays
> Too much communication about
functionalities...
> ...releasing ...
Conway‘s Law
Architecture
copies
communication structures
of the organization
Conway‘s Law: Impact
Architecture
and
communication structures
in the organization
are the same thing.
Conway’s Law as a
Limit
> Organization drives architecture
> Teams of experts
> i.e. UI, logic & database team
> Three tec...
Logic
UI
Database
Change
Order
Process!
time
DB
Team Sprint
Logic
Team Sprint
GUI
Team Sprint
3 sprints
Domained scoped
SCS enables the
development of a
domain by a
single team
– no coordination
Order Team =
UI+Logic+Database
Challenges for Scaling
Agile
> Dependencies cause delays
> Too much communication about
functionalities...
> ...releasing ...
Deployment Monolith
Stories
Technical Coordination
Coordinating Releases
Self-contained
System (SCS) –
individually
deployable
Technical decisions can
be made independently
from other systems
(programming language,
frameworks, tooling,
platform)
SCS
Stories
Technical
Coordination
Stories
Technical
Coordination
Stories
Technical
Coordination
Order Billing Search
Rele...
Impact on Teams
> More self-organization
> Decide about technologies,
releases etc.
> Need to be more cross-
functional
> ...
Conclusion
How to scale agile?
Define
architecture to
limit
communication
needs
Conclusion: SCS &
Microservices
> Microservices have many advantages
> SCS are a way to use Microservices
> …for large pro...
Conclusion: SCS &
Agility
> Domain in one SCS
> less dependencies
> less delays
> less communication about functionalities...
Challenges
Challenges
> UI integration
> ...in particular for mobile / Single Page App
> Architecture more important
> Architecture =...
Meta-Conclusion
How To Think About
Architecture
> Process has an impact on architecture
> Software architecture & organization are the
same
Thank You!
@ewolff
http://scs-architecture.org
(Creative Commons)
Prochain SlideShare
Chargement dans…5
×

Microservices: Architecture to scale Agile

4 411 vues

Publié le

Microservices allow for scaling agile processes. This presentation shows what Microservices are, what agility is and introduces Self-contained Systems (SCS). Finally, it shows how SCS can help to scale agile processes.

Publié dans : Technologie

Microservices: Architecture to scale Agile

  1. 1. Microservices: Architecture to Scale Agile Eberhard Wolff Fellow, innoQ @ewolff
  2. 2. http://continuous-delivery-buch.de/
  3. 3. http://microservices-buch.de/ http://microservices-book.com/
  4. 4. http://microservices-book.com/primer.html FREE!!!!
  5. 5. > Microservices > Agility > Self-contained Systems > SCS to scale agile
  6. 6. Microservices
  7. 7. Server Server Microservices: Definition > Independent deployment units > E.g. process, VMs, Docker containers > Any technology > Any infrastructure Micro Service Micro Service
  8. 8. Components Collaborate Micro Service Micro Service Link Data Replication REST Messaging
  9. 9. Possible Microservices Architecture iOS Android Web Order Search Catalog BillingCustomer Backend Backend Backend
  10. 10. Real-World Example > Team = one person > Microservices-based system > Reasons > Fast and easy deployment > Clear separation
  11. 11. Microservices can do more than scaling agile!
  12. 12. Agility
  13. 13. Iterations > Work in iterations > Not following a fixed plan > “Waterfall” paper 1970 (Royce): Do it twice! > I.e. iterations are a well- known idea for very long
  14. 14. No Iterations Goal Goal
  15. 15. Iterations Goal Goal Goal Goal
  16. 16. Cross-functional Team > Need lots of skill to develop features > Have all skills in the team > Direct communication is better
  17. 17. Self Organization > Team knows best how to solve problems > Let them decide
  18. 18. Scaling
  19. 19. Scaling > Do more > Get more stories implemented > ...and running in production TODO IN PROGRESS DONE
  20. 20. Scaling > Do more > Add more people > Let the work in parallel > Build more teams
  21. 21. Organizational Approaches Scrum of Scrums Scaled Agile Framework (SAFe) Large Scale Scrum( LeSS) Agile Path
  22. 22. Organizational Approaches Scrum of Scrums Scaled Agile Framework (SAFe) Large Scale Scrum( LeSS) Agile Path Not my expertise
  23. 23. Communication > Agile means communication > Instead of written requirements > ...story cards > + direct communication
  24. 24. # Persons vs. Potential Links
  25. 25. # Persons vs. Potential Links 0 100 200 300 0 10 20 30
  26. 26. Communication is great! Need more persons
  27. 27. Depedencies and Coordination are Problems!
  28. 28. Dependencies > Feature across teams > Team must wait for other teams‘ results
  29. 29. time Team Sprint Team Sprint Team Sprint 3 sprints
  30. 30. Functionalities Technology and Architecture What Do You Communicate About? Releases
  31. 31. Can we limit the need for communication?
  32. 32. Challenges for Scaling Agile > Dependencies cause delays > Too much communication about functionalities... > ...releasing software, > ...and technologies
  33. 33. Self-contained System
  34. 34. Deployment monolith Graphics by Roman Stranghöhner, innoQ http://scs-architecture.org
  35. 35. Cut Deployment monolith along domains …
  36. 36. … wrap domain in separate web application …
  37. 37. Self-contained System (SCS) – individually deployable
  38. 38. SCS = user interface+ business logic+ data storage
  39. 39. Web user interface
  40. 40. optional API e.g. for mobile
  41. 41. Self-contained Systems should be integrated in the web interface
  42. 42. Hyperlinks to navigate between systems. System 1 System 2
  43. 43. Dynamic inclusion of content served by another application System 1 System 2
  44. 44. Logic only shared over a well defined interface.
  45. 45. Business logic can consist of microservices
  46. 46. Avoid synchronous remote calls
  47. 47. Remote API calls should be asynchronous
  48. 48. Every SCS brings its own data storage with its own (potentially redundant) data
  49. 49. Technical decisions can be made independently from other systems (programming language, frameworks, tooling, platform)
  50. 50. Domained scoped SCS enables the development, operation and maintenance of an domain by a single team. Team 1 Team 2 Team 3
  51. 51. 1 SCS = 1 Domain = 1 Web App = 1 Team = 1-n Microservices
  52. 52. SCS? iOS Android Web Order Search Catalog BillingCustomer Backend Backend Backend
  53. 53. SCS? iOS Android Web Order Search Catalog BillingCustomer Backend Backend Backend
  54. 54. SCS to Scale Agile
  55. 55. Challenges for Scaling Agile > Dependencies cause delays > Too much communication about functionalities... > ...releasing software, > ...and technologies
  56. 56. Challenges for Scaling Agile > Dependencies cause delays > Too much communication about functionalities... > ...releasing software, > ...and technologies
  57. 57. Conway‘s Law Architecture copies communication structures of the organization
  58. 58. Conway‘s Law: Impact Architecture and communication structures in the organization are the same thing.
  59. 59. Conway’s Law as a Limit > Organization drives architecture > Teams of experts > i.e. UI, logic & database team > Three technical artifacts
  60. 60. Logic UI Database Change Order Process!
  61. 61. time DB Team Sprint Logic Team Sprint GUI Team Sprint 3 sprints
  62. 62. Domained scoped SCS enables the development of a domain by a single team – no coordination Order Team = UI+Logic+Database
  63. 63. Challenges for Scaling Agile > Dependencies cause delays > Too much communication about functionalities... > ...releasing software, > ...and technologies
  64. 64. Deployment Monolith Stories Technical Coordination Coordinating Releases
  65. 65. Self-contained System (SCS) – individually deployable
  66. 66. Technical decisions can be made independently from other systems (programming language, frameworks, tooling, platform)
  67. 67. SCS Stories Technical Coordination Stories Technical Coordination Stories Technical Coordination Order Billing Search Release Release Release
  68. 68. Impact on Teams > More self-organization > Decide about technologies, releases etc. > Need to be more cross- functional > E.g. ops skills become more important
  69. 69. Conclusion
  70. 70. How to scale agile?
  71. 71. Define architecture to limit communication needs
  72. 72. Conclusion: SCS & Microservices > Microservices have many advantages > SCS are a way to use Microservices > …for large projects > …to scale agile
  73. 73. Conclusion: SCS & Agility > Domain in one SCS > less dependencies > less delays > less communication about functionalities > Technological freedom > less communication about technologies > Independent releases > no need to coordinate releases
  74. 74. Challenges
  75. 75. Challenges > UI integration > ...in particular for mobile / Single Page App > Architecture more important > Architecture = organization
  76. 76. Meta-Conclusion
  77. 77. How To Think About Architecture > Process has an impact on architecture > Software architecture & organization are the same
  78. 78. Thank You! @ewolff http://scs-architecture.org (Creative Commons)

×