Many teams adopting Infrastructure as Code end up with monolithic infrastructure. But many of the principles for microservices software architecture apply just as well to infrastructure: small, focused capabilities that can be delivered independently. This talk explores how team structures and microservices principles apply to infrastructure, and describes some patterns and anti-patterns. These are applicable whatever tools are used, whether it's Terraform, CloudFormation, Puppet, Chef, Ansible, or others. It also applies to all infrastructure platforms, whether it's an IaaS cloud like AWS or OpenStack, a virtualized platform, or even physical hardware.
5. Fragile: Easy to break something
Effort: Changes require too much time and effort
Snowflakes: Can’t reliably rebuild it
Testing: Difficult to write automated tests
PROBLEMS
19. “Organizations which design
systems are constrained to
produce designs which are copies
of the communication structures
of these organizations.”
CONWAY’S LAW
20. Design your team structures and
technical architectures together
INVERSE CONWAY MANEUVER
ThoughtWorks Radar: http://thght.works/2dpXEJv
24. CHARACTERISTIC OF MICROSERVICE DESIGN
Independently deployable elements
Organized around business capabilities
Delivered as products not projects
With decentralized governance
Designed for failure
With an evolving design
http://martinfowler.com/articles/microservices.html
26. Define and manage your platform by:
● Identifying your users
● Identifying their goals
● Defining tasks
● Organizing tasks to achieve outcomes
http://jpattonassociates.com/user-story-mapping/
STORY MAPPING / CAPABILITY MAPPING
29. DESIGN CHALLENGE
How can we design loosely
coupled infrastructure so that we
can make changes routinely,
easily, and safely?
30. EXAMPLE
INFRASTRUCTURE
Catalog DB User DB
Viewer Service Editor Service
Catalog Service User ServiceVendor Service
ELB
Monitoring
Service
ELB
Security Group
31. Catalog DB User DB
Viewer Service Editor Service
Catalog Service User ServiceVendor Service
ELB
Monitoring
Service
MONOLITHIC
STACK ELB
Security Group
35. MICRO-SERVICE
STACKS
Infrastructure Stack
for the Viewer Service
● Load Balancer VIP
● Firewall Rule
● Web Server Vhost
● App Server Cluster
Infrastructure Stack
for the User Service
● Load Balancer VIP
● Firewall Rules
● App Server Cluster
● Database Instance