SlideShare a Scribd company logo
Building a microservice ecosystem
Daniel Bryant
@danielbryantuk
OpencRedo
Today
‱ What is a ‘microservice ecosystem’?
‱ Local dev of services becomes challenging
‱ Think about your build pipeline(s)
‱ Testing requires a paradigm shift
‱ Push to production as early as possible
24/11/2016 @danielbryantuk
@danielbryantuk
‱ Chief Scientist at OpenCredo, CTO at SpectoLabs
ĂŒ Transforming organisations through technology and teams
ĂŒ Agile, Lean, Architecture, CI/CD, DevOps
ĂŒ Microservices, cloud, Containers, Java, Go, Docker, Kubernetes
‱ London Java Community Associate
‱ Adopt OpenJDK and JSR
‱ InfoQ Editor, DZone MVB, VOXXED, O'Reilly
24/11/2016 @danielbryantuk
My Biggest Claim to Fame in Microservices?
24/11/2016 @danielbryantuk
Seriously Though...

24/11/2016 @danielbryantuk
skillsmatter.com/skillscasts/7004-our-journey-to-world-gifting-
domination-how-notonthehighstreet-com-embraced-docker
So, What is a microservice?
“Loosely coupled service oriented architecture
with bounded contexts”
Adrian Cockcroft
“Applications that fit in your head”
James Lewis
24/11/2016 @danielbryantuk
Why? The move towards Cloud-native
‱ Hypothesis-driven business (and development)
‱ Microservice architecture (and 'Micro' teams)
‱ Devops mindset/culture (shared, learning/feedback & Mechanical sympathy)
‱ Continuous delivery
‱ Automated, self-service platform
Hat tip @caseywest
24/11/2016 @danielbryantuk
Exploring the Ecosystem
24/11/2016 @danielbryantuk
Adrian Cockcroft’s Thoughts
24/11/2016 @danielbryantuk
www.slideshare.net/adriancockcroft/microxchg-microservices
Alexis Richardson’s Thoughts
24/11/2016 @danielbryantuk
gotocon.com/goto-london-2015/#!#schedulePopupExtras-7011
wikibon.com/wp-content/uploads/container_implementations.png
Technology Choices
24/11/2016 @danielbryantuk
24/11/2016
What do I mean by ‘ecosystem’?
‱ Build
– Local development, pipelines and integration
‱ Test
– From local integration to End-to-end
‱ Deploy
‱ Operate
‱ Observe
– Monitoring/logging/alerting
24/11/2016 @danielbryantuk
Don’t forget about (RE)ArchitecturE Complexity
24/11/2016 @danielbryantuk
24/11/2016 @danielbryantuk
www.infoq.com/news/2015/04/raffi-krikorian-rearchitecting
What do I mean by ‘ecosystem’?
‱ Build
– Local development, pipelines and integration
‱ Test
– From local integration to End-to-end
‱ Deploy
‱ Operate
‱ Observe
– Monitoring/logging/alerting
24/11/2016 @danielbryantuk
Build
24/11/2016 @danielbryantuk
Developing Locally: The Basics
‱ GitHub’s Boxen (Puppet)
‱ Pivotal’s Sprout (Chef)
‱ Mac-dev-playbook (Ansible)
‱ Hashicorp Vagrant
‱ Docker Compose (Docker machine/native)
24/11/2016 @danielbryantuk
Developing Locally
‱ The naive approach
– Replication of env per service
– 
and dependencies and data stores and...
– Soon gets crazy
‱ Local profiles + mocking/stubbing
– Spring profiles + Mockito etc
24/11/2016 @danielbryantuk
Developing Locally
‱ Service virtualisation
– Hoverfly, Mountebank, Wiremock (Saboteur)
‱ ‘Production-in-a-box’ (IFTTT)
– Docker Compose, Vagrant, cf_nise_installer
‱ Environment leasing
– Create your own env (e.g. Hailo)
24/11/2016 @danielbryantuk
Developing Locally
www.opencredo.com/2015/09/20/working-locally-with-microservices/
24/11/2016 @danielbryantuk
Create a Pipeline
24/11/2016 @danielbryantuk
Key lesson learned (the Hard Way)
‱ Push through to production as early as possible!
‱ Detect and fix issues
– Technology
– Process
– People
24/11/2016 @danielbryantuk
Test
24/11/2016 @danielbryantuk
Always Remember...
24/11/2016 @danielbryantuk
blog.bbv.ch/2012/06/13/acceptance-test-driven-development/
Microservice Testing Basics
‱ Toby Clemson’s article
martinfowler.com/articles/microservice-testing
24/11/2016 @danielbryantuk
Microservice Testing Basics
‱ My article
https://www.specto.io/blog/recipe-for-designing-building-
testing-microservices.html
24/11/2016 @danielbryantuk
(multiple) Pipelines
‱ Big-bang release
– Beware of rubber stamping (distributed monolith)
– ‘semver’ if you must (semver.org) e.g. 1.2.1
‱ Gated release
– Critical path testing in Stage
‱ Single service Continuous delivery
– Consumer-based contracts
– Backwards compatibility
24/11/2016 @danielbryantuk
Service-level Integration Testing
‱ Contracts
– Pact-JVM github.com/DiUS/pact-jvm
– PACT broker
github.com/bethesque/pact_broker
– Examples:
github.com/mstine/microservices-pact
24/11/2016 @danielbryantuk
My Opinions
‱ BDD critical paths throughout application
– Including API journey
‱ Contract tests (failure is a conversation)
‱ BDD services API (e.g. Serenity BDD)
‱ Component test and unit test (as normal)
– Maven surefire/failsafe
24/11/2016 @danielbryantuk
Final Words on Testing
‱ Don’t forget the ‘ilities”
‱ Security / reliability
– ZAP (from the OWASP team)
– github.com/continuumsecurity/bdd-security
‱ Performance / scalability
– Jmeter (Jenkins Performance plugin)
– Gatling
– flood.io
24/11/2016 @danielbryantuk
Deploy
24/11/2016 @danielbryantuk
Separate Deploy and Release
‱ Feature flags
– Difficult at scale (and distribution)
– Enable at ingress
‱ Incremental (phased) rollout
‱ Canary vs blue/green
‱ Avoid datastore migrations (if possible)
24/11/2016 @danielbryantuk
Centralise Configuration
‱ Consul & consul-template
‱ Etcd/ZK & confd
‱ Netflix Archaius
‱ Spring Cloud config
‱ Watch for application rollback!
24/11/2016 @danielbryantuk
Operate
24/11/2016 @danielbryantuk
Building Blocks
‱ HashiCorp Terraform
– VMWare? cloud-init and vcloud-tools
– “Boot my secure government cloud”
‱ “CAPS”
– Chef, Ansible, Puppet, SaltStack
– Automated sysadmin
‱ Docker / Ami / RPM / JAR
– Machine vs Os/lang artifact
‱ Standardise on an OS
– Amazon Linux vs mainstream distros
24/11/2016 @danielbryantuk
DevOps and Programmable Infrastructure
‱ Devops involves programming

‱ Introduce SOLID principles
‱ Good CI/CD principles
– Gitflow etc
– Testing
24/11/2016 @danielbryantuk
Service Discovery
‱ External
– HAProxy / nginx / ELB etc
‱ Client-side
– Netflix Ribbon (with Prana)
– ‘Baker Street’ (extending SmartStack)
– srv-router
‱ Kubernetes and CF are good to go
24/11/2016 @danielbryantuk
External
24/11/2016 @danielbryantuk
Client-side
24/11/2016 @danielbryantuk
Observe
24/11/2016 @danielbryantuk
When bad things happen, people are always involved
24/11/2016 @danielbryantuk	|	@oakinger
Monitoring and People
24/11/2016 @danielbryantuk
www.infoq.com/news/2015/06/too-big-to-fail
Start with the Basics
‱ Health checks
– Coda Hale (DropWizard) Metrics
– Spring Boot actuator
‱ KPIs for apps (and business)
– Assertions / invariants
– Throughput
– Queue length
24/11/2016 @danielbryantuk
Logging
‱ What every engineer should know
‱ 10 Tips for Proper Application Logging
‱ ElasticSearch-Logstash-Kibana (ELK)
– Buffer/proxy log sending or

– Mount directory into container
24/11/2016 @danielbryantuk
Monitoring
‱ Push
– Spring Boot actuator e.g. InfluxDbExporter
‱ Pull
– E.g. Telegraf (shout to Tareq Abedrabbo)
‱ InfluxDB vs prometheus vs graphite vs
opentsdb
‱ Information radiators
– Aggregate vs individual
24/11/2016 @danielbryantuk
Aggregation: Sick Cattle, Not Sick Pets
Opentracing & OpenZipkin
24/11/2016 @danielbryantuk
Problems?
‱ Rob Ewaschuk’s “Philosophy on Alerting”
‱ Brendan Gregg’s USE method
– “check utilization, saturation, and errors.”
‱ “DevOps Troubleshooting”
– Kyle Rankin
24/11/2016 @danielbryantuk
Let’s wrap this up...
24/11/2016 @danielbryantuk
Summary
‱ development of 3+ services is challenging
‱ Think about your build pipeline(s)
‱ Testing requires a paradigm shift
‱ Operations requires much more automation
‱ Push through to prod as early as possible
24/11/2016 @danielbryantuk
Bedtime reading
24/11/2016 @danielbryantuk
THANKS...
@danielbryantuk
daniel.bryant@opencredo.com
http://muservicesweekly.com/
(Credit to Tareq Abedrabbo for inspiration/guidance)
24/11/2016 @danielbryantuk
Logging vs monitoring
‱ Logging
– Primarily used post-incident
– Machine readable
– Hard to do right
– Noise/signal
‱ Monitoring
– Useful in Real time during incident
– Trend analysis
– Easier to do
24/11/2016 @danielbryantuk

More Related Content

PPTX
Microservice architecture design principles
PDF
Designing loosely coupled services
PPTX
Introduction to microservices
PPTX
Impact of cloud computing in education, e governance
PDF
All About Microservices and OpenSource Microservice Frameworks
PPTX
Introduction to Microservices
PPTX
RabbitMQ & Kafka
PPSX
Agile, User Stories, Domain Driven Design
Microservice architecture design principles
Designing loosely coupled services
Introduction to microservices
Impact of cloud computing in education, e governance
All About Microservices and OpenSource Microservice Frameworks
Introduction to Microservices
RabbitMQ & Kafka
Agile, User Stories, Domain Driven Design

What's hot (20)

PPTX
Software as a service
PDF
Security in the blockchain
PPTX
Spring Boot+Kafka: the New Enterprise Platform
PPTX
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
PDF
Introduction to Microsoft Azure Cloud
PPTX
cloud computing ppt
PPTX
Aws ppt
PDF
Introduction to WebSockets Presentation
PPTX
Basics of Cloud Computing
PPT
presentation on Docker
PPTX
Real World Event Sourcing and CQRS
PDF
Everything about Blue-Green Deployment Strategy!
PPTX
The Social Semantic Web
PPTX
Introduction to microservices
PDF
Kubernetes architecture
PDF
Microservices with Java, Spring Boot and Spring Cloud
PDF
Cloud computing presentation.pdf
PDF
A Pattern Language for Microservices
PPTX
BLOCKCHAIN
PPTX
Introduction to Microservices
Software as a service
Security in the blockchain
Spring Boot+Kafka: the New Enterprise Platform
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
Introduction to Microsoft Azure Cloud
cloud computing ppt
Aws ppt
Introduction to WebSockets Presentation
Basics of Cloud Computing
presentation on Docker
Real World Event Sourcing and CQRS
Everything about Blue-Green Deployment Strategy!
The Social Semantic Web
Introduction to microservices
Kubernetes architecture
Microservices with Java, Spring Boot and Spring Cloud
Cloud computing presentation.pdf
A Pattern Language for Microservices
BLOCKCHAIN
Introduction to Microservices
Ad

Viewers also liked (20)

PPTX
Data stream processing and micro service architecture
PDF
The seven more deadly sins of microservices final
PPTX
Microservice Architecture
PPTX
Deployment Automation with Microservices
PPTX
A Capability Blueprint for Microservices
PDF
API Management @ Haufe
PDF
Microservices deployment patterns
PDF
Microservices: The Organizational and People Impact
PDF
Building a Modern Microservices Architecture at Gilt: The Essentials
PDF
From a Monolithic to a Distributed API Architecture‹ at Eventbrite - Presente...
PPTX
Cloud Deployments Done Right: Why APIs are Key
PDF
The Five Stages of Cloud Native
PPTX
Cloud Native Application Framework
PPTX
API Management with wicked.haufe.io
PDF
Edge architecture ieee international conference on cloud engineering
PPTX
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
PPTX
Introduction to Microservices and Cloud Native Application Architecture
PDF
DEVNET-1184 Microservices Patterns
PPTX
Haufe API Strategy
PDF
Patterns of Cloud Native Architecture
Data stream processing and micro service architecture
The seven more deadly sins of microservices final
Microservice Architecture
Deployment Automation with Microservices
A Capability Blueprint for Microservices
API Management @ Haufe
Microservices deployment patterns
Microservices: The Organizational and People Impact
Building a Modern Microservices Architecture at Gilt: The Essentials
From a Monolithic to a Distributed API Architecture‹ at Eventbrite - Presente...
Cloud Deployments Done Right: Why APIs are Key
The Five Stages of Cloud Native
Cloud Native Application Framework
API Management with wicked.haufe.io
Edge architecture ieee international conference on cloud engineering
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Introduction to Microservices and Cloud Native Application Architecture
DEVNET-1184 Microservices Patterns
Haufe API Strategy
Patterns of Cloud Native Architecture
Ad

Similar to Building a microservice ecosystem (20)

PDF
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
PDF
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
PDF
The seven deadly sins of microservices
PDF
Micro Manchester Meetup: "The Seven (More) Deadly Sins of Microservices"
PPTX
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
PPTX
muCon 2014 "Building Java Microservices for the Cloud"
PPTX
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
PPTX
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
PPTX
LJC Mashup "Building Java Microservices for the Cloud && Chuck Norris Doesn't...
PDF
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
PPTX
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
PDF
muCon 2016: "Seven (More) Deadly Sins of Microservices"
PDF
SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"
PPTX
O'Reilly SACON "Continuous Delivery Patterns for Contemporary Architecture"
PPTX
TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...
PDF
ZTLive 2016 "Introduction to Microservices"
PDF
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
PDF
Microservices Manchester: Welcome To Microservices Manchester By Daniel Bryant
PDF
MicroManchester 2016 "A Brief Guide to Microservices"
PDF
JAXDevOps 2017 "The Seven (More) Deadly Sins of Microservices
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
The seven deadly sins of microservices
Micro Manchester Meetup: "The Seven (More) Deadly Sins of Microservices"
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
muCon 2014 "Building Java Microservices for the Cloud"
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
LJC Mashup "Building Java Microservices for the Cloud && Chuck Norris Doesn't...
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
muCon 2016: "Seven (More) Deadly Sins of Microservices"
SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"
O'Reilly SACON "Continuous Delivery Patterns for Contemporary Architecture"
TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...
ZTLive 2016 "Introduction to Microservices"
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
Microservices Manchester: Welcome To Microservices Manchester By Daniel Bryant
MicroManchester 2016 "A Brief Guide to Microservices"
JAXDevOps 2017 "The Seven (More) Deadly Sins of Microservices

More from Haufe-Lexware GmbH & Co KG (20)

PDF
Tech stackhaufegroup
PPTX
X-celerate 2019: Iterating fast with the MERN Stack
PDF
Nils Rhode - Does it always have to be k8s - TeC Day 2019
PDF
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
PPTX
Cloud Journey: Lifting a Major Product to Kubernetes
PPTX
ONA ( organizational network analysis ) to enable individuals to impact their...
PPTX
ONA ( organizational network analysis ) enabling individuals to impact their ...
PPTX
Using word vectors to enable better search in our legal products
PPTX
Identifying customer potentials through unsupervised learning
PPTX
Field report: Rapid application development
PPTX
Behavior-Driven Development with JGiven
PPTX
Externalized Spring Boot App Configuration
PPTX
Managing short lived Kubernetes (Production) deployments
PDF
Docker in Production at the Aurora Team
PPTX
DevOps Journey of Foundational Services at Haufe
PPTX
New Serverless World - Cloud Native Apps
PPTX
Microservice Transformation of the Haufe Publishing System
PPTX
Haufe's Tech Strategy In Practice
PPTX
Kubernetes Intro @HaufeDev
PDF
Reactive microservices
Tech stackhaufegroup
X-celerate 2019: Iterating fast with the MERN Stack
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Cloud Journey: Lifting a Major Product to Kubernetes
ONA ( organizational network analysis ) to enable individuals to impact their...
ONA ( organizational network analysis ) enabling individuals to impact their ...
Using word vectors to enable better search in our legal products
Identifying customer potentials through unsupervised learning
Field report: Rapid application development
Behavior-Driven Development with JGiven
Externalized Spring Boot App Configuration
Managing short lived Kubernetes (Production) deployments
Docker in Production at the Aurora Team
DevOps Journey of Foundational Services at Haufe
New Serverless World - Cloud Native Apps
Microservice Transformation of the Haufe Publishing System
Haufe's Tech Strategy In Practice
Kubernetes Intro @HaufeDev
Reactive microservices

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Transform Your Business with a Software ERP System
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
medical staffing services at VALiNTRY
PPTX
L1 - Introduction to python Backend.pptx
PPTX
history of c programming in notes for students .pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administration Chapter 2
PDF
top salesforce developer skills in 2025.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Wondershare Filmora 15 Crack With Activation Key [2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
ISO 45001 Occupational Health and Safety Management System
Transform Your Business with a Software ERP System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
medical staffing services at VALiNTRY
L1 - Introduction to python Backend.pptx
history of c programming in notes for students .pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Softaken Excel to vCard Converter Software.pdf
System and Network Administration Chapter 2
top salesforce developer skills in 2025.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Building a microservice ecosystem