SlideShare a Scribd company logo
1 of 171
Download to read offline
Practical Considerations
Of Microservices
Sam Newman
YOW 2013
@samnewman
We’re Hiring!

@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
Web Shop

Shopping
Cart

Registration

Catalog

Finance

Customer

@samnewman
REST over HTTP

@samnewman
REST over HTTP

@samnewman
REST over HTTP

> 1000 lines of code

@samnewman
@samnewman
@samnewman
V1

@samnewman
V2

@samnewman
V2

@samnewman
Go
Ruby

NodeJS
Java

@samnewman
Go
Ruby

NodeJS
Clojure!

@samnewman
Go
Ruby

NodeJS
Clojure!

@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

Standardised

@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

Free For All
Standardised

http://www.flickr.com/photos/murplejane/3097926093/

@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

Free For All
Standardised

Consistency
http://www.flickr.com/photos/murplejane/3097926093/

@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

Free For All
Standardised

Consistency
Safety

http://www.flickr.com/photos/murplejane/3097926093/

@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

Autonomy
Free For All
Standardised

Consistency
Safety

http://www.flickr.com/photos/murplejane/3097926093/

@samnewman
http://www.flickr.com/photos/booleansplit/4005320314/

React
Autonomy
Free For All

Standardised

Consistency
Safety

http://www.flickr.com/photos/murplejane/3097926093/

@samnewman
http://bit.ly/1aJhJ0m

@samnewman
http://bit.ly/1aJhJ0m

Responsiveness

@samnewman
http://bit.ly/1aJhJ0m

Responsiveness

Efficiency

@samnewman
@samnewman
“A paradox has a
resolution, not a solution”
- Xiao Guo

@samnewman
@samnewman
Standardisation

@samnewman
Standardisation

Free For All

@samnewman
Standardisation

Free For All

@samnewman
Standardisation

Free For All

@samnewman
Standardisation
???

Free For All

@samnewman
Where To Standardise?

@samnewman
© 2013 Electronic Arts Inc.

@samnewman
@samnewman
Interfaces

@samnewman
Monitoring

Interfaces

@samnewman
Monitoring

Interfaces

Deployment
@samnewman
Architectural Saftey
@samnewman
@samnewman
Free For All
@samnewman
Standardisation

Free For All
@samnewman
Standardisation
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes

Free For All
@samnewman
Interfaces

@samnewman
@samnewman
@samnewman
@samnewman
Coupling Is Bad

@samnewman
Integration Styles
An Evolutionary View

Data Oriented

Procedure
Oriented

Document
Oriented

Resource
Oriented

@samnewman
Integration Styles
An Evolutionary View

Data Oriented

Procedure
Oriented

Document
Oriented

Resource
Oriented

@samnewman
Integration Styles
An Evolutionary View
TIP: Avoid RPC-mechanisms or shared serialisation
Procedure
Document
Resource
Data protocols to avoid coupling
Oriented
Oriented

Oriented

Oriented

@samnewman
http://www.flickr.com/photos/mikecogh/4472054494/

@samnewman
http://www.flickr.com/photos/mikecogh/4472054494/

TIP: Have one, two or maybe three ways of
integrating, not 20

@samnewman
@samnewman
@samnewman
TIP: Pick some sensible conventions, and stick with
them

@samnewman
Payment

Inventory

@samnewman
Payment

Inventory

@samnewman
Because CAP Theorem

@samnewman
Because CAP Theorem
TIP: Avoid distributed transactions if at all possible

@samnewman
Monitoring

@samnewman
@samnewman
@samnewman
http://www.flickr.com/photos/kalexanderson/5421517469/
@samnewman
http://www.flickr.com/photos/kalexanderson/5421517469/
@samnewman
http://www.flickr.com/photos/kalexanderson/5421517469/
@samnewman
@samnewman
???

@samnewman
You have to get *much*
better at monitoring

@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
You are not a badass if you
use an SSH Multiplexer

@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
Response Time

Response Time

Response Time

@samnewman
Response Time

Response Time

Response Time

@samnewman
Response Time

Response Time

Response Time

@samnewman
nsclient++
collectd

Graphite

@samnewman
@samnewman
@samnewman
TIP: Capture metrics, and logs, for each node, and
aggregate them to get a rolled up picture

@samnewman
@samnewman
@samnewman
@samnewman
TIP: Use synthetic transactions to test production
systems
@samnewman
@samnewman
@samnewman
@samnewman
ID: 123

@samnewman
ID: 123

ID: 123

ID: 123

@samnewman
ID: 123

ID: 123

ID: 123
TIP: Use correlation IDs to track down nasty bugs
@samnewman
Deployment

@samnewman
@samnewman
@samnewman
@samnewman
!

@samnewman
!
!

@samnewman
!
!
!
@samnewman
!

TIP: Abstract out underlying platform differences to
provide a uniform deployment mechanism

!

!
@samnewman
@samnewman
$ fab deploy
def deploy():
# run things
local(‘cp…’)
@samnewman
Fast Feedback

Dev

QA

Production

More Confidence
@samnewman
fab deploy:dev
def deploy(env):
# run things
local(‘cp…’)
@samnewman
fab deploy:dev
def deploy(env):
# run things
local(‘cp…’)
@samnewman
prod:!
nodes:!
- ami_id: ami-4dad7424!
size:
t1.micro!
credentials_name: us-east-ssh!
aws_key_name : test!
services: [hello_world]!
apache:!
security_groups: [ spicy-beef ]!
puppet_module_directory : puppet!
availability_zone: us-east-1a!
puppet_manifest : apache.pp!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
service_configurator:
- ami_id: ami-4dad7424!
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
size:
t1.micro!
connectivity:!
credentials_name: us-east-ssh!
- protocol: tcp!
aws_key_name : test!
ports: [ 80 ]!
services: [hello_world]!
allowed: [ WORLD ]!
security_groups: [ spicy-beef ]!
availability_zone: us-east-1b!
hello_world:!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
puppet_module_directory : puppet!
- ami_id: ami-4dad7424!
puppet_manifest : hello_world.pp!
size:
t1.micro!
service_configurator:
credentials_name: us-east-ssh!
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
aws_key_name : test!
connectivity:!
services: [apache]!
- protocol: tcp!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
ports: [ 8080, 8081 ]!
security_groups: [ spicy-beef ]!
allowed: [ WORLD ]!

!

!

!

node_provider:!
mongo:!
class_name: AWSNodeProvider!
puppet_module_directory : puppet!
public_api_key: {{ aws_public_api_key }}!
puppet_manifest
private_api_key: {{ aws_private_api_key }} : mongo.pp!
service_configurator:
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
connectivity:!
- protocol: tcp!
ports: [ 27017 ]!
allowed: [ hello_world ]

@samnewman
prod:!
nodes:!
- ami_id: ami-4dad7424!
size:
t1.micro!
credentials_name: us-east-ssh!
aws_key_name : test!
services: [hello_world]!
apache:!
security_groups: [ spicy-beef ]!
puppet_module_directory : puppet!
availability_zone: us-east-1a!
puppet_manifest : apache.pp!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
service_configurator:
- ami_id: ami-4dad7424!
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
size:
t1.micro!
connectivity:!
credentials_name: us-east-ssh!
- protocol: tcp!
aws_key_name : test!
ports: [ 80 ]!
services: [hello_world]!
allowed: [ WORLD ]!
security_groups: [ spicy-beef ]!
availability_zone: us-east-1b!
hello_world:!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
puppet_module_directory : puppet!
- ami_id: ami-4dad7424!
puppet_manifest : hello_world.pp!
size:
t1.micro!
service_configurator:
credentials_name: us-east-ssh!
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
aws_key_name : test!
connectivity:!
services: [apache]!
- protocol: tcp!
type: phoenix.providers.aws_provider.AWSNodeDefinition!
ports: [ 8080, 8081 ]!
security_groups: [ spicy-beef ]!
allowed: [ WORLD ]!

TIP: Have a single way of deploying services in any
given environment
!

!

!

node_provider:!
mongo:!
class_name: AWSNodeProvider!
puppet_module_directory : puppet!
public_api_key: {{ aws_public_api_key }}!
puppet_manifest
private_api_key: {{ aws_private_api_key }} : mongo.pp!
service_configurator:
phoenix.configurators.puppet_service_configurator.PuppetServiceConfigurator!
connectivity:!
- protocol: tcp!
ports: [ 27017 ]!
allowed: [ hello_world ]

@samnewman
Customer
Service
V1
"
Customer
Service
V1
" "
Customer
Service
V1
" " "
Customer
Service
V1
" " " "
Customer
Service
V1
" " " "
Customer
Service
V1
Finance

Customer
Service
V1
Finance

Customer
Service
V1

Customer
Service
v2
Finance

Customer
Service
V1

Finance

Customer
Service
v2
Integration Test

Finance

Customer
Service
v2
Finance

Customer
Service
v2
Finance

Consumer written
test

Customer
Service
v2
Finance

Consumer written
test

Customer
Service
v2
Finance

Customer
Service
v2

TIP: Consumer Driven Tests to catch breaking changes

Consumer written
test
Pending…

Prod
Pending…

Prod
Pending…

Prod
Pending…

Prod
Pending…

Prod
Pending…

Prod

TIP: Don’t let changes build up - release as soon as
you can, and preferably one at a time!
Architectural Safety

@samnewman
@samnewman
@samnewman
@samnewman
@samnewman
http://www.flickr.com/photos/louish/5611657857/

@samnewman
@samnewman
TIP: Use timeouts, circuit breakers and bulk-heads to
avoid cascading failure

@samnewman
Special Service Behaviour

@samnewman
Integration

Special Service Behaviour

@samnewman
Integration

Special Service Behaviour

Downstream

@samnewman
Integration

Special Service Behaviour

Metrics

Downstream

@samnewman
Integration

Special Service Behaviour

Metrics

Downstream

@samnewman
Integration

Special Service Behaviour

Metrics

Downstream

@samnewman
Integration

Special Service Behaviour

Metrics

TIP: Consider Service Templates to make it easy to do
the right thing!
Downstream

@samnewman
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes
TIP: Avoid RPC-mechanisms or shared serialisation
protocols to avoid coupling
TIP: Have one, two or maybe three ways of
integrating, not 20
TIP: Pick some sensible conventions, and stick with
them

@samnewman
TIP: Capture metrics, and logs, for each node, and
aggregate them to get a rolled up picture
TIP: Use synthetic transactions to test production
systems
TIP: Avoid distributed transactions if at all possible
TIP: Use correlation IDs to track down nasty bugs
TIP: Abstract out underlying platform differences to
provide a uniform deployment mechanism

@samnewman
TIP: Have a single way of deploying services in any
given environment
TIP: Consumer Driven Tests to catch breaking changes
TIP: Don’t let changes build up - release as soon as
you can, and preferably one at a time!
TIP: Use timeouts, circuit breakers and bulk-heads to
avoid cascading failure
TIP: Consider Service Templates to make it easy to do
the right thing!
@samnewman
@samnewman
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes

@samnewman
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes

@samnewman
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes

TIP: Don’t let changes build up - release as soon as
you can, and preferably one at a time!

@samnewman
TIP: Standardise in the gaps between services - be
flexible about what happens inside the boxes

TIP: Don’t let changes build up - release as soon as
you can, and preferably one at a time!

@samnewman
Designing For !
Rapid Release

@samnewman
Designing For !
Rapid Release

From Macro To Micro

@samnewman
Designing For !
Rapid Release

From Macro To Micro

http://lanyrd.com/profile/samnewman/

@samnewman
Thanks!

@samnewman
snewman@thoughtworks.com

@samnewman

More Related Content

What's hot

BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservicesSam Newman
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014Sam Newman
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014Sam Newman
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro gotoSam Newman
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionSam Newman
 
Hiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesHiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesSam Newman
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice OrganisationSam Newman
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?Sam Newman
 
Deploying and Testing Microservices
Deploying and Testing MicroservicesDeploying and Testing Microservices
Deploying and Testing MicroservicesThoughtworks
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsYan Cui
 
Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Become A/S
 
José M. Pérez Pérez | Better performance for component-based web apps | Codem...
José M. Pérez Pérez | Better performance for component-based web apps | Codem...José M. Pérez Pérez | Better performance for component-based web apps | Codem...
José M. Pérez Pérez | Better performance for component-based web apps | Codem...Codemotion
 
Networks, Networks Everywhere, And Not A Packet To Drink
Networks, Networks Everywhere, And Not A Packet To DrinkNetworks, Networks Everywhere, And Not A Packet To Drink
Networks, Networks Everywhere, And Not A Packet To DrinkReadWrite
 
2020 10-08 measuring-qualityinproduction
2020 10-08 measuring-qualityinproduction2020 10-08 measuring-qualityinproduction
2020 10-08 measuring-qualityinproductionAbigail Bangser
 
2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_os2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_osAbigail Bangser
 
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018Andy Davies
 
Technical SEO for a Mobile First World
Technical SEO for a Mobile First WorldTechnical SEO for a Mobile First World
Technical SEO for a Mobile First WorldKaizen
 
Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaCaelum
 
2 Seconds is the New Slow - Chris Simmance - under2
2 Seconds is the New Slow -  Chris Simmance - under22 Seconds is the New Slow -  Chris Simmance - under2
2 Seconds is the New Slow - Chris Simmance - under2Chris Simmance
 

What's hot (20)

BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservices
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014
 
It's a trap!
It's a trap!It's a trap!
It's a trap!
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro goto
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min Version
 
Hiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesHiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservices
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice Organisation
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?
 
Deploying and Testing Microservices
Deploying and Testing MicroservicesDeploying and Testing Microservices
Deploying and Testing Microservices
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 steps
 
Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google
 
José M. Pérez Pérez | Better performance for component-based web apps | Codem...
José M. Pérez Pérez | Better performance for component-based web apps | Codem...José M. Pérez Pérez | Better performance for component-based web apps | Codem...
José M. Pérez Pérez | Better performance for component-based web apps | Codem...
 
Networks, Networks Everywhere, And Not A Packet To Drink
Networks, Networks Everywhere, And Not A Packet To DrinkNetworks, Networks Everywhere, And Not A Packet To Drink
Networks, Networks Everywhere, And Not A Packet To Drink
 
2020 10-08 measuring-qualityinproduction
2020 10-08 measuring-qualityinproduction2020 10-08 measuring-qualityinproduction
2020 10-08 measuring-qualityinproduction
 
2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_os2020 06-03 cukenfest-bdd-and-sl_os
2020 06-03 cukenfest-bdd-and-sl_os
 
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
 
Technical SEO for a Mobile First World
Technical SEO for a Mobile First WorldTechnical SEO for a Mobile First World
Technical SEO for a Mobile First World
 
Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficada
 
2 Seconds is the New Slow - Chris Simmance - under2
2 Seconds is the New Slow -  Chris Simmance - under22 Seconds is the New Slow -  Chris Simmance - under2
2 Seconds is the New Slow - Chris Simmance - under2
 

Similar to Practical microservices - YOW 2013

Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesRobert McFrazier
 
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to beAgile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to beAbraham Marin-Perez
 
OSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
OSDC 2017 | Modern Secrets Management with Vault by Seth VargoOSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
OSDC 2017 | Modern Secrets Management with Vault by Seth VargoNETWAYS
 
OSDC 2017 - Seth Vargo - Taming the modern data center
OSDC 2017 - Seth Vargo - Taming the modern data centerOSDC 2017 - Seth Vargo - Taming the modern data center
OSDC 2017 - Seth Vargo - Taming the modern data centerNETWAYS
 
OSDC 2017 | Taming the Modern Data Center by Seth Vargo
OSDC 2017 | Taming the Modern Data Center by Seth VargoOSDC 2017 | Taming the Modern Data Center by Seth Vargo
OSDC 2017 | Taming the Modern Data Center by Seth VargoNETWAYS
 
Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Chef
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecuritiesamiable_indian
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)Aman Kohli
 
ContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices HeroContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices HeroDragos Dascalita
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)True-Vision
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...CA API Management
 
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Rackspace Academy
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon NeptuneAmazon Web Services Japan
 
More than 1600 backlinks to Frontware.com
More than 1600 backlinks to Frontware.comMore than 1600 backlinks to Frontware.com
More than 1600 backlinks to Frontware.comFrontware International
 

Similar to Practical microservices - YOW 2013 (20)

Socket applications
Socket applicationsSocket applications
Socket applications
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pages
 
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to beAgile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
 
OSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
OSDC 2017 | Modern Secrets Management with Vault by Seth VargoOSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
OSDC 2017 | Modern Secrets Management with Vault by Seth Vargo
 
OSDC 2017 - Seth Vargo - Taming the modern data center
OSDC 2017 - Seth Vargo - Taming the modern data centerOSDC 2017 - Seth Vargo - Taming the modern data center
OSDC 2017 - Seth Vargo - Taming the modern data center
 
OSDC 2017 | Taming the Modern Data Center by Seth Vargo
OSDC 2017 | Taming the Modern Data Center by Seth VargoOSDC 2017 | Taming the Modern Data Center by Seth Vargo
OSDC 2017 | Taming the Modern Data Center by Seth Vargo
 
Cooking Up Drama
Cooking Up DramaCooking Up Drama
Cooking Up Drama
 
Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015 Cooking Up Drama - ChefConf 2015
Cooking Up Drama - ChefConf 2015
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecurities
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
ContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices HeroContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices Hero
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
 
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune
 
More than 1600 backlinks to Frontware.com
More than 1600 backlinks to Frontware.comMore than 1600 backlinks to Frontware.com
More than 1600 backlinks to Frontware.com
 
pub
pubpub
pub
 
pub
pubpub
pub
 

More from Sam Newman

AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and MicroservicesSam Newman
 
Feature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldFeature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldSam Newman
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessSam Newman
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc osloSam Newman
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 
Designing for rapid release goto 2012
Designing for rapid release   goto 2012Designing for rapid release   goto 2012
Designing for rapid release goto 2012Sam Newman
 
Surfing the event stream
Surfing the event streamSurfing the event stream
Surfing the event streamSam Newman
 

More from Sam Newman (7)

AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and Microservices
 
Feature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldFeature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub World
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The Serverless
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc oslo
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
Designing for rapid release goto 2012
Designing for rapid release   goto 2012Designing for rapid release   goto 2012
Designing for rapid release goto 2012
 
Surfing the event stream
Surfing the event streamSurfing the event stream
Surfing the event stream
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Practical microservices - YOW 2013