There is only Zuul Configuring and customizing the

  • Slides: 54
Download presentation
There is only Zuul Configuring and customizing the Zuul API gateway Spencer Gibb twitter:

There is only Zuul Configuring and customizing the Zuul API gateway Spencer Gibb twitter: @spencerbgibb email: sgibb@pivotal. io Shoutout to Michael Minella for some slides and theme

MONOLITHS

MONOLITHS

MULTIPLE ENDPOINTS & APPLICATIONS

MULTIPLE ENDPOINTS & APPLICATIONS

LARGE COMPLEX ARTIFACTS

LARGE COMPLEX ARTIFACTS

DIFFICULT TO TEST

DIFFICULT TO TEST

HARD TO GET TO PRODUCTION

HARD TO GET TO PRODUCTION

MICROSERVICES

MICROSERVICES

CLOUD NATIVE

CLOUD NATIVE

DEVELOPED AND TEST IN ISOLATION

DEVELOPED AND TEST IN ISOLATION

INDEPENDANTLY SCALABLE

INDEPENDANTLY SCALABLE

FAMILIAR DEVELOPMENT MODEL

FAMILIAR DEVELOPMENT MODEL

SMALL AND SIMPLE TO TEST

SMALL AND SIMPLE TO TEST

OPERATIONALLY EASY TO GOVERN

OPERATIONALLY EASY TO GOVERN

HOW DO EXTERNAL CLIENTS CONNECT TO MICROSERVICES?

HOW DO EXTERNAL CLIENTS CONNECT TO MICROSERVICES?

You shall not pass! Unless I know you…

You shall not pass! Unless I know you…

What is an API Gateway Product Info Service Server Side MVC APP API Gateway

What is an API Gateway Product Info Service Server Side MVC APP API Gateway Single Page JS or Mobile APP Recommendation Service Review Service

Spectrum of API Gateways SASS

Spectrum of API Gateways SASS

There is no Dana, only Zuul!

There is no Dana, only Zuul!

SPRING CLOUD

SPRING CLOUD

Zuul Design

Zuul Design

@Enable. Zuul. Proxy

@Enable. Zuul. Proxy

1 Pre. Decoration. Filter

1 Pre. Decoration. Filter

2 Ribbon. Routing. Filter

2 Ribbon. Routing. Filter

3 Send. Response. Filter

3 Send. Response. Filter

zuul: routes: users: /users/**

zuul: routes: users: /users/**

DEMO Demo

DEMO Demo

ZUUL 2 FUNKO ANNOUNCED POP http: //techblog. netflix. com/2016/09/zuul-2 -netflix-journey-to-asynchronous. html

ZUUL 2 FUNKO ANNOUNCED POP http: //techblog. netflix. com/2016/09/zuul-2 -netflix-journey-to-asynchronous. html

H EB TTP SO /2 CK ** ET S NG P RI LA SP

H EB TTP SO /2 CK ** ET S NG P RI LA SP ER OV W Y NG TT KI NE LOC B N- NO CO W MP / Z AT UU IB L LE 1 IN WIP MAJOR REWRITE

SPRING CLOUD GATEWAY

SPRING CLOUD GATEWAY

SPRING BOOT 2. 0 Q 4 2017 W EB HTT SO P/2 CK ET

SPRING BOOT 2. 0 Q 4 2017 W EB HTT SO P/2 CK ET S SP RI NG 5 T EC R OJ TO PR AC RE NG RI SE SP U RE API DRIVEN SPRING CLOU GATEWAY

1 ROUTE MGMT API

1 ROUTE MGMT API

2 ROUTE: VIA CONFIG

2 ROUTE: VIA CONFIG

2 ROUTE: VIA DISCOVER

2 ROUTE: VIA DISCOVER

2 ROUTE: VIA DB

2 ROUTE: VIA DB

3 ROUTE SCOPED FILTE

3 ROUTE SCOPED FILTE

4 FLEXIBILE

4 FLEXIBILE

5 SIMPLIFIED

5 SIMPLIFIED

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**.

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**.

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**.

spring. cloud. gateway. routes: - id: users uri: http: //users-xyz: 80 predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example.

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example.

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example.

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example.

spring. cloud. gateway. routes: - id: users uri: lb: //users predicates: - Host=**. example. org - Path=/users/{segment} filters: - Set. Path=/{segment}

spring. cloud. gateway. routes: filters: - Add. Response. Header=X-Response-Foo, Bar - Remove. Response. Header=X-Foo

spring. cloud. gateway. routes: filters: - Add. Response. Header=X-Response-Foo, Bar - Remove. Response. Header=X-Foo - Secure. Headers - Rewrite. Path=/foo/(? <part>. *), /${part} - Hystrix=foocmd

DEMO Demo

DEMO Demo

SPRING CLOUD GATEWAY MILESTONE 1 END OF MAY

SPRING CLOUD GATEWAY MILESTONE 1 END OF MAY

SPRING CLOUD GATEWAY RELEASE DECEMBER 2017

SPRING CLOUD GATEWAY RELEASE DECEMBER 2017

WHAT HAPPENS TO ZUUL 1?

WHAT HAPPENS TO ZUUL 1?

Learn More. Stay Connected. Spencer Gibb Blog: spencer. gibb. us Twitter: @spencerbgibb Pivotal: pivotal.

Learn More. Stay Connected. Spencer Gibb Blog: spencer. gibb. us Twitter: @spencerbgibb Pivotal: pivotal. io Twitter: twitter. com/springcloud Spring Cloud Zuul Samples You. Tube: spring. io/video github. com/spring-cloud-samples/sample-zuul-filters Linked. In: spring. io/linkedin Spring Cloud Gateway Google Plus: spring. io/gplus github. com/spring-cloud-incubator/spring-cloud-gateway

QUESTIONS?

QUESTIONS?

The End

The End