2016-02-17 spring cloud - gibb spring cloud *.pdf2016/02/17 · netflix config server backed by...
TRANSCRIPT
![Page 1: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/1.jpg)
Spring Cloud *Discovery and Config systems comparison
Spencer Gibb
https://github.com/spencergibb/spring-cloud-starhttp://spencer.gibb.us
![Page 2: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/2.jpg)
![Page 3: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/3.jpg)
Service B
Service Registration & Discovery
Registry
Service A
![Page 4: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/4.jpg)
DiscoveryClient
@EnableDiscoveryClient
ServiceInstance si = discoveryClient.choose(“serviceId”)
RestTemplate
@FeignClient
![Page 5: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/5.jpg)
Service B
12 Factor Apps http://12factor.net
Distributed Configuration
Config Server
Service A
![Page 6: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/6.jpg)
Service A
Context Lifecycle
BootstrapApplication
Context
Regular Application
Context
Config Server
![Page 7: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/7.jpg)
Environment
@ConfigurationProperties
@Value
Environment
![Page 8: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/8.jpg)
Spring Cloud Config Server
Greenfield
HTTP API similar to Netflix Config Server
Backed by VCS: git, SVN
Stateless
@RefreshScope
Uses spring-boot configuration files & semanticsAuto-configured client
Refresh via bus
Webhook support for github, gitlab and bitbucket
![Page 9: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/9.jpg)
DEMO
![Page 10: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/10.jpg)
Eureka
![Page 11: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/11.jpg)
Eureka pro’s
Highly-available
Mature / Proven by Netflix
Tight Ribbon Integration
![Page 12: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/12.jpg)
Eureka Con’s
JVM Based
Thick Java client
Polyglot by Sidecar
Built for AWS Initially
Long thresholds for registraion and cache refresh (30s)
![Page 13: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/13.jpg)
Consul
![Page 14: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/14.jpg)
Consul pro’sPolyglot
HTTP API and DNS interface
ACL’s
Health Checks
Multi-Datacenter
Vault Integration
YAML and Properties Blobs supported
peer-to-peer gossip system
Nice UI
![Page 15: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/15.jpg)
Consul Con’sYoung
Agent on every host
![Page 16: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/16.jpg)
DEMO
![Page 17: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/17.jpg)
Zookeeper
![Page 18: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/18.jpg)
Zookeeper pro’sConsistent 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 and its Service Discovery Recipe
![Page 19: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/19.jpg)
Zookeeper Con’s
Scale Issues
OPS Headaches
Needs management process like Netflix Exhibitor
Persistent Connections
![Page 20: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/20.jpg)
Honorable Mention
Spring Cloud CloudFoundry
Spring Cloud ETCD (Experimental)
AirbNB Smart Stack http://nerds.airbnb.com/smartstack-service-discovery-cloud/
Uber HyperbahN https://youtu.be/N2472uS5Y6M - https://github.com/uber/hyperbahn
![Page 21: 2016-02-17 Spring Cloud - Gibb Spring Cloud *.pdf2016/02/17 · Netflix Config Server Backed by VCS: git, SVN Stateless @RefreshScope Uses spring-boot configuration files & semanticsAuto-configured](https://reader034.vdocuments.site/reader034/viewer/2022050117/5f4d943768593756d475d9e1/html5/thumbnails/21.jpg)
Questions?
https://github.com/spencergibb/spring-cloud-starhttp://spencer.gibb.us
@spencerbgibb
Pivotal is hiring In Atlanta
http://pivotal.io/careers