SlideShare a Scribd company logo
TESTING &
DEPLOYING
MICROSERVICES
Sam Newman
XP Days Ukraine, December 2014
1
@samnewman#xpdays
Accounts
Returns
Invoicing
Shipping
Inventory
Customer
Service
@samnewman#xpdays
Accounts
Returns
Invoicing
Shipping
Inventory
Customer
Service
Small Autonomous services
that work together
@samnewman#xpdays
Independently
Releasable
@samnewman#xpdays
Testing
Deployment
@samnewman#xpdays
Host
Service
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
VS
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
VS
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
Easier To Provision
VS
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
Easier To Provision
Fewer Side-effects
VS
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
Easier To Provision
Fewer Side-effects
VS
Enforces Interdependence
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
Easier To Provision
Fewer Side-effects
Lower host-management overhead
VS
Enforces Interdependence
@samnewman#xpdays
Host
Service
Host
Service Service
Service Service
Much Easier To Reason About
Easier To Provision
Fewer Side-effects
Cheaper!
Lower host-management overhead
VS
Enforces Interdependence
@samnewman#xpdays
Reducing Host
Management Overhead?
@samnewman#xpdays
API-driven Host
Provisioning
@samnewman#xpdays
Virtualisation Platforms
@samnewman#xpdays
VMWare
Virtualisation Platforms
@samnewman#xpdays
VMWare
AWS
Digital Ocean
Virtualisation Platforms
@samnewman#xpdays
Step 0:
Provision Host
@samnewman#xpdays
Step 0:
Provision Host
Step 1:
Configure Host
@samnewman#xpdays
Step 0:
Provision Host
Step 2:
Install Service
Step 1:
Configure Host
@samnewman#xpdays
Step 0:
Provision Host
Step 2:
Install Service
Step 1:
Configure Host
@samnewman#xpdays
@samnewman#xpdays
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
Packer Image
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
VM
OS
Apps
Packer Image
STANDARD VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
VM
OS
Apps
VM
OS
Apps
Packer Image
STANDARD VIRTUALISATION
@samnewman#xpdays
Ansible
Puppet
Chef
@samnewman#xpdays
Ansible
Puppet
Chef
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
Immutable Servers
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
Immutable Servers
Fast Spin-up
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
Immutable Servers
Fast Spin-up
Provider Agnostic
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
Immutable Servers
Fast Spin-up
Provider Agnostic
Feedback Can Suffer
@samnewman#xpdays
Ansible
Puppet
Chef
AWS
Digital Ocean
OpenStack
VMWare
Vagrant
Immutable Servers
Fast Spin-up
Provider Agnostic
Feedback Can Suffer
Cycle Time
@samnewman#xpdays
Immutable Servers
@samnewman#xpdays
Cost?
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
VM
OS
Apps
VM
OS
Apps
@samnewman#xpdays
Machine
Base OS
Hypervisor
VM
OS
Apps
VM
OS
Apps
VM
OS
Apps
Expensive!
@samnewman#xpdays
@samnewman#xpdays
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
Container
OS
Apps
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
Container
OS
Apps Linux Only
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
Container
OS
Apps
Same Kernel
Linux Only
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
Container
OS
Apps
Same Kernel
Linux OnlyFine-grained control
CONTAINER VIRTUALISATION
@samnewman#xpdays
Machine
Base OS
Container
OS
Apps
Container
OS
Apps
Container
OS
Apps
Same Kernel
Linux OnlyFine-grained control
Very fast to provision
CONTAINER VIRTUALISATION
@samnewman#xpdays
@samnewman#xpdays
DOCKER
@samnewman#xpdays
DOCKER
Machine
@samnewman#xpdays
DOCKER
Machine
Base OS
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps Apps
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps Apps Apps
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps Apps Apps
Docker Image Registry
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps Apps Apps
Docker Image Registry
@samnewman#xpdays
DOCKER
Machine
Base OS
Docker
Apps Apps Apps
Docker Image Registry
@samnewman#xpdays
@samnewman#xpdays
@samnewman#xpdays
Semi-permanent Servers
@samnewman#xpdays
Semi-permanent Servers
Image-based Deployments
@samnewman#xpdays
Semi-permanent Servers
Image-based Deployments
Docker
@samnewman#xpdays
@samnewman#xpdays
@samnewman#xpdays
@samnewman#xpdays
kubernetes
@samnewman#xpdays
Testing
@samnewman#xpdays
Unit
Service
UI
MIKE COHN’S TEST PYRAMID
@samnewman#xpdays
Unit
Service
UI
MIKE COHN’S TEST PYRAMID
Increasing Scope
More Confidence
@samnewman#xpdays
Unit
Service
UI
MIKE COHN’S TEST PYRAMID
Increasing Scope
More Confidence
Faster!
Better Isolation
@samnewman#geecon
25
DB
Unit
UI
Service
@samnewman#geecon
25
DB
Unit
UI
Service
@samnewman#geecon
26
DB
Unit
UI
Service
@samnewman#geecon
26
DB
Unit
UI
Service
@samnewman#geecon
27
DB
Unit
UI
Service
@samnewman#geecon
27
DB
Unit
UI
Service
@samnewman#geecon
27
DB
Unit
UI
Service
@samnewman#xpdays
Inventory
Accounts
Returns
Invoicing
Shipping
Customer
Service
@samnewman#xpdays
Inventory
Accounts
Returns
Invoicing
Shipping
Customer
Service
Inventory
@samnewman#xpdays
Inventory
Accounts
Returns
Invoicing
Shipping
Customer
Service
Inventory
@samnewman#xpdays
Inventory Accounts
Mountebank
http://www.mbtest.org
@samnewman#xpdays
Inventory
Accounts
Stub
Mountebank
http://www.mbtest.org
@samnewman#xpdays
Shipping
Inventory
Accounts
Returns
Invoicing
Customer
Service
@samnewman#xpdays
Shipping
Inventory
Accounts
Returns
Invoicing
Customer
Service
@samnewman#xpdays
Shipping
Inventory
Accounts
Returns
Invoicing
Customer
Service
@samnewman#xpdays
Shipping
Inventory
Accounts
Returns
Invoicing
Customer
Service
@samnewman#xpdays
Shipping
Inventory
Accounts
Returns
Invoicing
Customer
Service
@samnewman#xpdays
@samnewman#xpdays
Browsers
@samnewman#xpdays
Timing
Browsers
@samnewman#xpdays
Provisioning of Environments
Timing
Browsers
@samnewman#xpdays
Provisioning of Environments
Networks
Timing
Browsers
@samnewman#xpdays
Deployment
Provisioning of Environments
Networks
Timing
Browsers
@samnewman#xpdays
Deployment
Provisioning of Environments
Networks
Timing
Browsers Diagnosis
@samnewman#xpdays
Shipping Inventory
CONSUMER-DRIVEN CONTRACTS
@samnewman#xpdays
Expectations
Shipping Inventory
CONSUMER-DRIVEN CONTRACTS
@samnewman#xpdays
Expectations
Shipping Inventory
CONSUMER-DRIVEN CONTRACTS
@samnewman#xpdays
Expectations
Prod
Shipping Inventory
CONSUMER-DRIVEN CONTRACTS
@samnewman#xpdays
Expectations
Prod
Shipping Inventory
CONSUMER-DRIVEN CONTRACTS
@samnewman#xpdays
@samnewman#xpdays
https://github.com/realestate-com-au/pact
@samnewman#xpdays
No Integration Tests?
@samnewman#xpdays
Journeys
@samnewman#xpdays
Testing
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests Production
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests Production
Monitoring &
Alerting
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests Production
Monitoring &
Alerting
Testers
@samnewman#xpdays
Testing
S/M TestsBuild Large Tests Production
Monitoring &
Alerting
Testers Operations
@samnewman#xpdays
Monitoring &
Alerting
Testing
@samnewman#xpdays
Prod
Prod
Prod
Prod
@samnewman#xpdays
Prod
Prod
Prod
Prod
QA
@samnewman#xpdays
Monitoring &
Alerting
Testing
@samnewman#xpdays
Monitoring &
Alerting
Testing
@samnewman#xpdays
Monitoring &
Alerting
Testing
@samnewman#xpdays
Monitoring &
Alerting
Testing
@samnewman#xpdays
@samnewman#xpdays
@samnewman#xpdays
SEMANTIC MONITORING
@samnewman#xpdays
https://www.flickr.com/photos/robdray/3138644233
@samnewman#xpdays
Testing
Deployment
@samnewman#xpdays
Testing
Deployment
One-server
per host
@samnewman#xpdays
Testing
Deployment
One-server
per host
Image/docker
based artefacts
@samnewman#xpdays
Testing
Deployment
One-server
per host
Immutable Servers
Image/docker
based artefacts
@samnewman#xpdays
Testing
Pre-Release
Validation
Consumer-driven Contracts
Isolated Service Tests
Journey Tests
Deployment
One-server
per host
Immutable Servers
Image/docker
based artefacts
@samnewman#xpdays
Testing
Post-Release
Validation
Semantic Monitoring
Pre-Release
Validation
Consumer-driven Contracts
Isolated Service Tests
Journey Tests
Deployment
One-server
per host
Immutable Servers
Image/docker
based artefacts
@samnewman#xpdays
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS
http://buildingmicroservices.com/
Code: AUTHD
@samnewman#xpdays
http://lanyrd.com/profile/samnewman/
Sam Newman
@samnewman
THANKS!

More Related Content

PDF
Practical microservices - NDC 2014
PDF
Practical microservices - javazone 2014
PDF
Deploying and Scaling Microservices
PDF
Practical microservices - YOW 2013
PDF
AppSec & Microservices - Velocity 2016
PDF
Principles of Microservices - NDC 2014
PDF
Principles of microservices XP Days Ukraine
PDF
From macro to micro goto
Practical microservices - NDC 2014
Practical microservices - javazone 2014
Deploying and Scaling Microservices
Practical microservices - YOW 2013
AppSec & Microservices - Velocity 2016
Principles of Microservices - NDC 2014
Principles of microservices XP Days Ukraine
From macro to micro goto

What's hot (20)

PDF
Feature Branches And Toggles In A Post-GitHub World
PDF
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
PDF
AppSec And Microservices
PDF
It's a trap!
PDF
Testing & deploying Microservices GeeCon 2014
PDF
BETA - Securing microservices
PDF
Confusion In The Land Of The Serverless
PDF
Confusion In The Land Of The Serverless - 90min Version
PDF
Hiding The Lead: Coupling, cohesion and microservices
PDF
Rip It Up - The Microservice Organisation
PDF
What Is This Cloud Native Thing Anyway?
PDF
AppSec and Microservices
PDF
Deploying and Testing Microservices
PDF
THE UX OF DATA - VISUALIZATION RESPONSIVE
PDF
Webinar #5: Mobile indsigter og trends ft. Google
PDF
The UX of DATA: Responsive Datenvisualisierung mit jQuery
PDF
2020 10-08 measuring-qualityinproduction
PDF
2020 06-03 cukenfest-bdd-and-sl_os
PPTX
Networks, Networks Everywhere, And Not A Packet To Drink
PDF
Security Webinar: Harden the Heart of Your WordPress SiteSe
Feature Branches And Toggles In A Post-GitHub World
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
AppSec And Microservices
It's a trap!
Testing & deploying Microservices GeeCon 2014
BETA - Securing microservices
Confusion In The Land Of The Serverless
Confusion In The Land Of The Serverless - 90min Version
Hiding The Lead: Coupling, cohesion and microservices
Rip It Up - The Microservice Organisation
What Is This Cloud Native Thing Anyway?
AppSec and Microservices
Deploying and Testing Microservices
THE UX OF DATA - VISUALIZATION RESPONSIVE
Webinar #5: Mobile indsigter og trends ft. Google
The UX of DATA: Responsive Datenvisualisierung mit jQuery
2020 10-08 measuring-qualityinproduction
2020 06-03 cukenfest-bdd-and-sl_os
Networks, Networks Everywhere, And Not A Packet To Drink
Security Webinar: Harden the Heart of Your WordPress SiteSe
Ad

Viewers also liked (6)

PDF
Testing Microservices Architectures
ODP
Microservices Manchester: Testing Microservices: Pain or Opportunity? By Davi...
PDF
Testing Microservices
PDF
Testing Microservices
PDF
Diffy : Automatic Testing of Microservices @ Twitter
PDF
Testing a Microservices Architecture
Testing Microservices Architectures
Microservices Manchester: Testing Microservices: Pain or Opportunity? By Davi...
Testing Microservices
Testing Microservices
Diffy : Automatic Testing of Microservices @ Twitter
Testing a Microservices Architecture
Ad

Similar to Testing & deploying microservices - XP Days Ukraine 2014 (20)

PPTX
Containers and VMs and Clouds: Oh My. by Mike Coleman
PPT
GigaSpaces CCF 4 Xap
PPTX
Microservices
PDF
Day+54+(part+2)+Slides+-+Containers (2).pdf
PDF
Dockercon State of the Art in Microservices
PDF
Docker bdxio
PDF
Upstate DevOps - Containers 101 - March 28, 2019
PPTX
Make your first CloudStack Cloud successful
PDF
Improving velocity through abstraction
PPTX
Net core microservice development made easy with azure dev spaces
PPTX
Kubernetes solutions
PDF
Deploy microservices architecture through containers
PPTX
Planning a Successful Cloud - Design from Workload to Infrastructure
PDF
Intro to Microservices
PDF
Containers: Don't Skeu Them Up. Use Microservices Instead.
PDF
Containers: Don't Skeu Them Up, Use Microservices Instead
PPTX
Cloud and microservices on the enterprise level: Dynamic talks Dallas 3/26/2019
PDF
Containers, microservices and serverless for realists
PDF
2020-07-17 NOVASQL Presentation - Azure Kubernetes Service
PPTX
Containerization - The DevOps Revolution
Containers and VMs and Clouds: Oh My. by Mike Coleman
GigaSpaces CCF 4 Xap
Microservices
Day+54+(part+2)+Slides+-+Containers (2).pdf
Dockercon State of the Art in Microservices
Docker bdxio
Upstate DevOps - Containers 101 - March 28, 2019
Make your first CloudStack Cloud successful
Improving velocity through abstraction
Net core microservice development made easy with azure dev spaces
Kubernetes solutions
Deploy microservices architecture through containers
Planning a Successful Cloud - Design from Workload to Infrastructure
Intro to Microservices
Containers: Don't Skeu Them Up. Use Microservices Instead.
Containers: Don't Skeu Them Up, Use Microservices Instead
Cloud and microservices on the enterprise level: Dynamic talks Dallas 3/26/2019
Containers, microservices and serverless for realists
2020-07-17 NOVASQL Presentation - Azure Kubernetes Service
Containerization - The DevOps Revolution

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
sap open course for s4hana steps from ECC to s4
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Dropbox Q2 2025 Financial Results & Investor Presentation
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
MIND Revenue Release Quarter 2 2025 Press Release
Empathic Computing: Creating Shared Understanding

Testing & deploying microservices - XP Days Ukraine 2014