Awesome Tools
to Level Up Your Spring
Cloud Architecture
Andreas Evers
@andreasevers
ZUUL
EUREKA
CONFIG	SERVERSPRING	BOOT	µS
HYSTRIX	
DASHBOARD
TURBINE
CONFIG	BUS
DATA	FLOW
ZIPKIN	(SLEUTH)
ATLAS
TASK
STREAM
ZUUL
EUREKA
CONFIG	SERVERSPRING	BOOT	µS
HYSTRIX	
DASHBOARD
TURBINE
SPRING	BOOT	
ADMIN
MICROSERVICES	
DASHBOARD
SPINNAKER
CONFIG	BUS
DATA	FLOWZIPKIN	(SLEUTH)
ATLAS
TASK
PROMETHEUS
CONTRACT REST	DOCS
SONAR	/	OWASP	/	…
WIREMOCK
TROUBLEMAKERELK
STREAM
SABOTEUR
https://ordina-jworks.github.io/monitoring/2016/09/23/Monitoring-with-Prometheus.html
Graphite
InfluxDB
OpenTSDB
NewRelic
AppDynamics
Dynatrace
https://prometheus.io/docs/introduction/comparison/
Modelling	 Microservices	at	Spotify	 by	Petter Måhlén
https://www.youtube.com/watch?v=7XDA044tl8k
What’s the compliancy & maturity of the
services?
How can I accommodate recruitment &
knowledge sharing?
What is the technical debt of the services?
Which teams do I need to chase?
Are budget & priorities in line with the
architectural goals?
How do I manage change in a DevOps
organisation?
“
What functionality can I reuse?
Which resources are exposed by what
services?
Which events & messages are sent back
and forth?
Which services are impacted by a change?
How does a functional flow travel through
the layers of the architecture?
What is coming up, & can I define the
future state of the ecosystem?
“
Which versions are deployed where?
Are my deployments successful?
Which versions do my dependencies
have?
Where can I find everything related to my
services?
“
SABOTEUR
WIREMOCK
HTTP	500
Random	Data
Malformed	Data
Empty	Response
Total	Network	Partition
Remote	Service	Not	Listening	to	Port	
Packet	Loss
TCP	Connection	Timeout	(~	firewall)
Six	principles	for	building	 fault	tolerant	microservices	on	the	JVM	by	Christopher	Batey
https://www.youtube.com/watch?v=dKWNZnuZhd0
Returns	10	propertiesUses	property	1-2
Uses	property	1-2
Uses	property	3-4
Uses	property	3-5
Uses	property	4-5
Returns	10	properties
Returns	10	propertiesUses	property	1-2
Consumer	1	uses	
property	1-2
PR
Returns	10	propertiesUses	property	1-2
Sonarqube / OWASP /
FindSecBugs / …
generated
snippets
manually	
written	
template
generated	
HTML
integration
tests
interface	CompactView{};
class	Car	{
@JsonView(CompactView.class)
private	String	brand;
private	int doors;
...
}
@RestController
class	CarController {
@JsonView(CompactView.class)
@GetMapping("/car")
public	String	getCar()	{
return	new	Car("BMW",	5);
}
}
interface	V1{};
interface	V2{};	
class	Car	{
@JsonView(V1.class)
private	String	brand;
@JsonView(V2.class)
private	int doors;
...
}
@RestController
class	CarController {
@GetMapping(path	=	"/car",	produces	=	"application/vnd.pvt.car.v1+json")
@JsonView(V1.class)
public	String	getCarV1()	{
return	new	Car("BMW",	5);
}
@GetMapping(path	=	"/car",	produces	=	"application/vnd.pvt.car.v2+json")
@JsonView(V2.class)
public	String	getCarV2()	{
return	new	Car("BMW",	5);
}
}
AWS	re:Invent 2016:	Multi-Region	Delivery	Netflix	Style	(DEV311) by	Andy	Glover
https://www.youtube.com/watch?v=1HiilTXQo4w
ZUUL
EUREKA
CONFIG	SERVERSPRING	BOOT	µS
HYSTRIX	
DASHBOARD
TURBINE
SPRING	BOOT	
ADMIN
MICROSERVICES	
DASHBOARD
SPINNAKER
CONFIG	BUS
DATA	FLOWZIPKIN	(SLEUTH)
ATLAS
TASK
PROMETHEUS
CONTRACT REST	DOCS
SONAR	/	OWASP	/	…
WIREMOCK
TROUBLEMAKERELK
STREAM
SABOTEUR
ZUUL
SPRING	CLOUD	
SERVICES
SPRING	CLOUD	
SERVICES
SPRING	BOOT	µS
SPRING	CLOUD	
SERVICES
SPRING	CLOUD	
SERVICES
PCF	APPS	MANAGER
MICROSERVICES	
DASHBOARD
CONCOURSE,	
SPINNAKER
CONFIG	BUS
DATA	FLOWZIPKIN	(SLEUTH)
ATLAS
TASK
PCF	METRICS*
CONTRACT REST	DOCS
SONAR	/	OWASP	/	…
WIREMOCK
TROUBLEMAKER
PCF	LOG	SEARCH	
PCF	METRICS*
STREAM
SABOTEUR
66
@spring_io
#springio17
TWITTER: twitter.com/andreasevers
TECH BLOG: ordina-jworks.github.io
DEMO ENVIRONMENT: TVH: www.tvh.com

Awesome Tools to Level Up Your Spring Cloud Architecture - Spring I/O 2017