2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in...

26
#DevoxxFR Spring Cloud * Discovery and Configuration Systems Comparison by: Spencer Gibb https://github.com/spencergibb/spring-cloud-star http://spencer.gibb.us @spencerbgibb 1

Transcript of 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in...

Page 1: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Spring Cloud *Discovery and Configuration

Systems Comparison by: Spencer Gibb

https://github.com/spencergibb/spring-cloud-starhttp://spencer.gibb.us @spencerbgibb

1

Page 2: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

Salt Lake City, Utah

Page 3: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR 3

Page 4: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Spring Cloud Roadmap

• Brixton RC2 Released: 22 April 2016

• Brixton GA Release: end of April (Maybe RC3)

• ‘Camden’ will follow Spring Boot 1.4: Q3 2016

• ‘Dalston’ will follow Spring 5 & Spring Boot 2.0: Q2 2017 (Java 8)

• Many Services Releases (SR) in between

4

Page 5: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Microservices

5

You must be this tall to ride

Page 6: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Service B

Service Registration & Discovery

6

Registry

Service A

Page 7: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

DiscoveryClient

• @EnableDiscoveryClient

• ServiceInstance si = discoveryClient.choose(“serviceId”)

• RestTemplate

• @FeignClient

7

Page 8: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Service B

12 Factor Apps http://12factor.net

Distributed Configuration

8

Config

Service A

Page 9: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Service A

Context Lifecycle

9

BootstrapApplication

Context

Regular Application

ContextConfig

Page 10: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Environment

• @ConfigurationProperties

• @Value

• Environment

10

Page 11: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Spring Cloud Config Server

• Greenfield

• HTTP API similar to Netflix Config Server

• Backed by VCS: git, SVN

• Stateless

• @RefreshScope

• Plain text files (eg. messages_fr.properties)

11

Page 12: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Spring Cloud Config Server

• Uses spring-boot configuration files & semantics

• Auto-configured client

• Refresh via bus (events)

• Webhook support for github, gitlab and bitbucket

• Commercial Support in Pivotal Cloud Foundry

12

Page 13: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

DEMO

13

Page 14: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Eureka

14

Page 15: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Eureka pro’s

• Highly-available

• Mature / Proven by Netflix

• Tight Ribbon Integration

• Commercial Support in Pivotal Cloud Foundry

15

💚

Page 16: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Eureka Con’s

•JVM Based

•Thick Java client

•Polyglot by Sidecar

•Built for AWS Initially

•Long thresholds for registraion and cache refresh (30s)

16

💔

Page 17: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Consul

17

Page 18: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Consul pro’s

•Service Discovery & Configuration

•Polyglot

•HTTP API and DNS interface

•ACL’s

•Health Checks

18

💚

Page 19: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

💚

•Multi-Datacenter

•Vault Integration (Keys and Secrets)

•YAML and Properties Blobs supported

•peer-to-peer gossip system

•Nice UI

Consul pro’s

19

Page 20: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Consul Con’s•Young

•Agent on every host

20

💔

Page 21: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

DEMO

21

Page 22: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Zookeeper

22

Page 23: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

💚

Zookeeper pro’s•Consistent Store

•Started life as a Hadoop sub-project (2007?)

•Mature, used in many companies

•Useful if ZK is already part of your infrastructure

•Ephemeral Nodes / Persistent Connections

•Uses Apache Curator’s Service Discovery Recipe

23

Page 24: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

💔

Zookeeper Con’s

•Scale Issues

•OPS Headaches

•Needs management process like Netflix Exhibitor

•Persistent Connections

24

Page 25: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Honorable Mention• HAProxy/Nginx/Apache HTTPD

• Spring Cloud CloudFoundry

• Spring Cloud ETCD (Experimental)

• AirbNB Smart Stackhttp://nerds.airbnb.com/smartstack-service-discovery-cloud/

• Uber HyperbahNhttps://youtu.be/N2472uS5Y6M https://github.com/uber/hyperbahn

25

Page 26: 2016-04-22 Spring Cloud Star Spring Cloud Star.pdf · 4/22/2016  · • Commercial Support in Pivotal Cloud Foundry 12. #DevoxxFR DEMO 13. #DevoxxFR Eureka 14. #DevoxxFR Eureka pro’s

#DevoxxFR

Questions?

26

Josh Long: The Bootiful Microservice 13:55 Maillot

https://github.com/spencergibb/spring-cloud-star

http://spencer.gibb.us @spencerbgibb