21
Integrating with unreliable services Christopher Marsh

Integrating with unreliable services

  • Upload
    cjmarsh

  • View
    87

  • Download
    0

Embed Size (px)

DESCRIPTION

I originally gave this talk at an IASA Ignite! evening. The slides were set to auto-advance after 15 seconds, which was quite exciting!

Citation preview

Page 1: Integrating with unreliable services

Integrating with unreliable services

Christopher Marsh

Page 2: Integrating with unreliable services

Integrating with services is easy...

...staying integrated is hard

Page 3: Integrating with unreliable services

A successful technical architecture

Needs a matching team architecture

Page 4: Integrating with unreliable services

Conway's law states:...organisations which design systems [...] are constrained to produce designs which

are copies of the communication structures of these organisations.

Page 5: Integrating with unreliable services

Research supporting Conway's law

Harvard Business School: http://www.hbs.edu/research/pdf/08-039.pdf

Microsoft Research: http://research.microsoft.com/apps/pubs/default.aspx?id=70535

Page 6: Integrating with unreliable services

Architect for reliabilityInsulate the application from volatile

services

Page 7: Integrating with unreliable services

Provide a suitable abstractionService Gateway

Service Access Layer

Anti Corruption Layer

Page 8: Integrating with unreliable services

Producing actual softwareImplement functionality through vertical slices

Page 9: Integrating with unreliable services

"Trench" architectureDevelop architectural view of system

Work directly with software engineers to implement

Page 10: Integrating with unreliable services

Broken down by component cmp Component Model

Application

Serv ice Gateway

Web Serv ice

Page 11: Integrating with unreliable services

Broken down by package cmp Component Model

Application

Class1Class 2

DomainEntity

Serv ice Gateway

so2so1Facade

Page 12: Integrating with unreliable services

Observable design cmp Component Model

Stuff

Page 13: Integrating with unreliable services

Break down the team

Page 14: Integrating with unreliable services

ConstraintsGateway team is service customer

Page 15: Integrating with unreliable services

ConstraintsApplication team is gateway customer

Page 16: Integrating with unreliable services

ConstraintsSeparate, dependent builds

Page 17: Integrating with unreliable services

BenefitsRecognisable architectural patterns

Page 18: Integrating with unreliable services

BenefitsClear team responsibilities

Page 19: Integrating with unreliable services

BenefitsEasier to maintain

Page 20: Integrating with unreliable services

Respect Conway's LawBuild reliable applications

Page 21: Integrating with unreliable services

Thank you!Questions?