TESTING & DEPLOYING MICROSERVICES Sam Newman Flowcon, September 2014 1
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Focused around a business domain Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Focused around a business domain Shipping Returns Technology Agnostic API Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Focused around a business domain Shipping Returns Technology Agnostic API Customer Service Small Invoicing Accounts Inventory @ fl owconsf @samnewman
Independently Releasable @ fl owconsf @samnewman
Testing Deployment @ fl owconsf @samnewman
Service Host @ fl owconsf @samnewman
Service Service Service VS Service Service Host Host @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host Easier To Provision @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host Easier To Provision Fewer Side-e ff ects @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host Easier To Provision Fewer Side-e ff ects Enforces Interdependence @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host Easier To Provision Lower host-management overhead Fewer Side-e ff ects Enforces Interdependence @ fl owconsf @samnewman
Service Service Service VS Service Service Host Much Easier To Reason About Host Easier To Provision Lower host-management overhead Fewer Side-e ff ects Cheaper! Enforces Interdependence @ fl owconsf @samnewman
Reducing Host Management Overhead? @ fl owconsf @samnewman
API-driven Host Provisioning @ fl owconsf @samnewman
Virtualisation Platforms @ fl owconsf @samnewman
VMWare Virtualisation Platforms @ fl owconsf @samnewman
AWS VMWare Digital Ocean Virtualisation Platforms @ fl owconsf @samnewman
Step 0: Provision Host @ fl owconsf @samnewman
Step 0: Provision Host Step 1: Con fi gure Host @ fl owconsf @samnewman
Step 0: Provision Host Step 1: Con fi gure Host Step 2: Install Service @ fl owconsf @samnewman
Step 0: Provision Host Step 1: Con fi gure Host Step 2: Install Service @ fl owconsf @samnewman
@ fl owconsf @samnewman
Ansible Puppet Chef @ fl owconsf @samnewman
Ansible Puppet Chef @ fl owconsf @samnewman
AWS Digital Ocean Ansible Puppet OpenStack Chef VMWare @ fl owconsf @samnewman
AWS Digital Ocean Ansible Puppet OpenStack Chef VMWare Vagrant @ fl owconsf @samnewman
Immutable Servers AWS Digital Ocean Ansible Puppet OpenStack Chef VMWare Vagrant @ fl owconsf @samnewman
Immutable Servers AWS Fast Spin-up Digital Ocean Ansible Puppet OpenStack Chef VMWare Vagrant @ fl owconsf @samnewman
Immutable Servers AWS Fast Spin-up Provider Agnostic Digital Ocean Ansible Puppet OpenStack Chef VMWare Vagrant @ fl owconsf @samnewman
Immutable Servers AWS Fast Spin-up Provider Agnostic Digital Ocean Ansible Puppet OpenStack Chef VMWare Feedback Can Su ff er Vagrant @ fl owconsf @samnewman
Immutable Servers AWS Fast Spin-up Provider Agnostic Digital Ocean Ansible Puppet OpenStack Chef VMWare Feedback Can Su ff er Cycle Time Vagrant @ fl owconsf @samnewman
Immutable Servers @ fl owconsf @samnewman
Cost? @ fl owconsf @samnewman
Apps Apps Apps OS OS OS VM VM VM Hypervisor Base OS Machine @ fl owconsf @samnewman
Apps Apps Apps OS OS OS VM VM VM Expensive! Hypervisor Base OS Machine @ fl owconsf @samnewman
@ fl owconsf @samnewman
@ fl owconsf @samnewman
DOCKER @ fl owconsf @samnewman
DOCKER Machine @ fl owconsf @samnewman
DOCKER Base OS Machine @ fl owconsf @samnewman
DOCKER Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Apps Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Apps Apps Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Apps Apps Apps Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Docker Image Registry Apps Apps Apps Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Docker Image Registry Apps Apps Apps Docker Base OS Machine @ fl owconsf @samnewman
DOCKER Docker Image Registry Apps Apps Apps Docker Base OS Machine @ fl owconsf @samnewman
@ fl owconsf @samnewman
@ fl owconsf @samnewman
Semi-permanent Servers @ fl owconsf @samnewman
Semi-permanent Servers Image-based Deployments @ fl owconsf @samnewman
Semi-permanent Servers Image-based Deployments Docker @ fl owconsf @samnewman
Testing @ fl owconsf @samnewman
The Monolith DB @ fl owconsf @samnewman
The Monolith DB @ fl owconsf @samnewman
The Monolith DB @ fl owconsf @samnewman
The Monolith DB @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory Inventory @ fl owconsf @samnewman
Accounts Inventory Mountebank http://www.mbtest.org @ fl owconsf @samnewman
Accounts � Inventory Stub Mountebank http://www.mbtest.org @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
Shipping Returns Customer Service Invoicing Accounts Inventory @ fl owconsf @samnewman
@ fl owconsf @samnewman
Browsers @ fl owconsf @samnewman
Timing Browsers @ fl owconsf @samnewman
Provisioning of Environments Timing Browsers @ fl owconsf @samnewman
Networks Provisioning of Environments Timing Browsers @ fl owconsf @samnewman
Deployment Networks Provisioning of Environments Timing Browsers @ fl owconsf @samnewman
Deployment Networks Provisioning of Environments Timing Browsers Diagnosis @ fl owconsf @samnewman
CONSUMER-DRIVEN CONTRACTS Shipping Inventory @ fl owconsf @samnewman
CONSUMER-DRIVEN CONTRACTS Shipping Inventory Expectations @ fl owconsf @samnewman
CONSUMER-DRIVEN CONTRACTS Shipping Inventory Expectations @ fl owconsf @samnewman
CONSUMER-DRIVEN CONTRACTS Shipping Inventory Expectations Prod @ fl owconsf @samnewman
CONSUMER-DRIVEN CONTRACTS Shipping Inventory Expectations Prod @ fl owconsf @samnewman
@ fl owconsf @samnewman
https://github.com/realestate-com-au/pact @ fl owconsf @samnewman
No Integration Tests? @ fl owconsf @samnewman
Journeys @ fl owconsf @samnewman
Testing @ fl owconsf @samnewman
Testing S/M Tests Large Tests Build @ fl owconsf @samnewman
Testing S/M Tests Large Tests Build @ fl owconsf @samnewman
Testing S/M Tests Large Tests Production Build @ fl owconsf @samnewman
Monitoring & Testing Alerting S/M Tests Large Tests Production Build @ fl owconsf @samnewman
Monitoring & Testing Alerting S/M Tests Large Tests Production Build Testers @ fl owconsf @samnewman
Monitoring & Testing Alerting S/M Tests Large Tests Production Build Testers Operations @ fl owconsf @samnewman
Testing Monitoring & Alerting @ fl owconsf @samnewman
Prod Prod Prod Prod @ fl owconsf @samnewman
Prod Prod QA Prod Prod @ fl owconsf @samnewman
Monitoring & Testing Alerting @ fl owconsf @samnewman
Monitoring & Testing Alerting @ fl owconsf @samnewman
Monitoring & Testing Alerting @ fl owconsf @samnewman
Monitoring & Testing Alerting @ fl owconsf @samnewman
Recommend
More recommend