cloud native java with scs will tranfiles.meetup.com/6015342/cloud native java with scs will...

37
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Cloud Native Java with Spring Cloud Services Will Tran @fivetenwill Roy Clarkson Craig Walls @royclarkson @habuma

Upload: others

Post on 17-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Cloud Native Javawith Spring Cloud Services

Will Tran@fivetenwill

Roy Clarkson Craig Walls@royclarkson @habuma

Page 2: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 2

Page 3: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

+

3

= ?

Page 4: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 4

Page 5: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 5

Page 6: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 6

Config ServerService RegistryCircuit BreakerDashboard

ease of usesecurityreliability

Page 7: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Demo

7

Page 8: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 8

Page 9: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

I know Kung Fu

• Eureka Server (Spring Cloud Netflix)• Config Server (Spring Cloud Config)• Hystrix Dashboard (Spring Cloud

Netflix)

9

Page 10: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Create a Spring Cloud server

10

1. cf create-service

1. create a Spring Boot app2. add Spring Cloud starters3. add @EnableXxxxServer4. add configuration5. deploy and manage

Page 11: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Create a Spring Cloud client application

11

1. create a Spring Boot app2. add Spring Cloud Services

starters3. cf bind-service

1. create a Spring Boot app2. add Spring Cloud starters3. add configuration

• Eureka-first or config-first bootstrapping?

4. add security

Page 12: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Secure client - server communication

12

1. OAuth Client Credentials provisioned in cf bind-service

2. Token exchange built into spring-cloud-services-starter-*

1. add spring-boot-starter-security2. setup user3. copy credentials to client (env

var?)4. use credentials in basic auth

URIs5. …Or maybe something fancier

Page 13: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Zero Downtime Scaling & Upgrades

13

1. cf update service my-service -c ‘{“count":2, "upgrade":true}'

1. Provision new server(s)2. Configure them for peer

replication (Eureka)3. Map route (DNS?) to new

servers4. Start them5. Deprovision old servers

Page 14: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Service Brokers

14

Service brokers extend Cloud Foundry to provide resources that can be consumed by applications

http://docs.cloudfoundry.org/services/

Cloud Foundry

Service Broker

provision instance

get catalog

delete binding

delete instance

create binding

Page 15: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 15

Page 16: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

SCS is built on Spring Projects Spring BootSpring Cloud Netflix Spring Cloud Config ServerSpring Cloud Connectors

16

Spring SecuritySpring Security OAuth2Spring Data JPASpring AMQP

Spring Boot CF Service BrokerCloud Foundry Java Client

Page 17: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Demo

17

Page 18: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Config Server

18

Page 19: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

OverviewService• deploys a Spring Cloud Config server for each service instance provisioned• Config Server now supports all features of the Spring Cloud Brixton Git backend

• multiple repositories• pattern matching• placeholders.

• Git repositories can be accessed:• HTTPS or SSH• via an HTTP or HTTPS proxy server• Authenticate via username/password or SSH private key

Security• only bound applications are able to see configuration

Client Applications• starter automatically adds a property source configured for the config server

19

Page 20: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Configuration Server flow

202020

Page 21: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Dependencies

21

<dependency> <groupId>io.pivotal.spring.cloud</groupId> <artifactId>spring-cloud-services-starter-config-client</artifactId> </dependency>

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId> </dependency>

Spring Cloud:

Spring Cloud Services:

Page 22: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Service Registry

22

Page 23: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

OverviewService• deploys a Spring Cloud Netflix Eureka server for each service instance provisioned

Security• only the application that originally creates an instance record is allowed to update

or remove that record• only the server that first registered a record is allowed modify or delete it on an

application’s behalf• only a single server in a datacenter can register applications with a given name

Client Applications• starter automatically configures a DiscoveryClient

23

Page 24: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Service Registry Flow

24

FortuneTellerService

Where can I findFortuneTellerService?

Give me arandom fortune

<application> <name>FortuneTellerService</name> <instance> <hostName>chip</hostName> <ipAddr>fortune-service.blue.springapps.io</ipAddr>…<application>

GET http://fortune-service.blue.springapps.io/random

Page 25: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Dependencies

25

<dependency> <groupId>io.pivotal.spring.cloud</groupId> <artifactId>spring-cloud-services-starter-service-registry</artifactId> </dependency>

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>

Spring Cloud:

Spring Cloud Services:

25

Page 26: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Circuit Breaker Dashboard

26

Page 27: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

OverviewService• deploys for each service instance provisioned:

• Spring Cloud Netflix Hystrix dashboard• Spring Cloud Netflix Turbine server• Pivotal RabbitMQ service instance

Client Applications• starter automatically configures a Turbine AMQP client

27

Page 28: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Circuit Breaker Dashboard Flow

28

Page 29: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Dependencies

29

<dependency> <groupId>io.pivotal.spring.cloud</groupId> <artifactId>spring-cloud-services-starter-circuit-breaker</artifactId> </dependency>

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency>

Spring Cloud:

Spring Cloud Services:

2929

Page 30: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 30

@Configuration public class CloudConfig extends CloudConnectorsConfig { @Bean @HystrixConnectionFactory public ConnectionFactory hystrixConnectionFactory() { return connectionFactory().hystrixConnectionFactory(); } }

@Configuration public class RabbitConfig extends AbstractCloudConfig { @Bean @Primary public ConnectionFactory rabbitConnectionFactory() { return connectionFactory().rabbitConnectionFactory(); } }

Page 31: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

What’s new in SCS 1.2• Service Registry on steroids

• Registry can be shared across spaces, orgs, or datacenters• Apps prefer to talk to other apps in the same datacenter, but failover to

the other datacenter if required• Blue-green deployments of apps can be facilitated by the service registry

• eg distinct CF apps menu-service-blue and menu-service-green register as MENU-SERVICE

• Use Spring Retry for 0 downtime automatic failover

31

Page 32: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 32

Page 33: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

What’s coming in SCS 1.3 (Q4)• Upgrade of all components to Spring Cloud OSS Camden release train.• Baseline of Spring Boot 1.4.x required for new features support.• Support for Vault as a Spring Cloud Config Server environment repository

(http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_vault_backend

33

Page 34: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Safe Harbor StatementThe following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.

34

Page 35: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 35

PMs

Page 36: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 / 36

Engineering

Page 37: Cloud Native Java with SCS Will Tranfiles.meetup.com/6015342/Cloud Native Java with SCS Will Tran.pdf• Authenticate via username/password or SSH private key Security ... • deploys

Unless o therw ise ind ica ted , these s l ides are © 2013-2016 P ivo ta l So f tware , Inc . and l i censed under a Creat ive Commons At t r ibu t ion-NonCommerc ia l l i cense: h t tp : / / c rea t ivecommons.org / l i censes /by-nc /3 .0 /

Learn More. Stay Connected.

@fivetenwilldocs.pivotal.io/spring-cloud-services

@springcentralspring.io/blog

@pivotalpivotal.io/blog

@pivotalcfhttp://engineering.pivotal.io