29
Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers

Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect

Trifork Amsterdam @jkuipers

Page 2: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

What is Spring Cloud?

Page 3: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Set of projects helping to build distributed systems

Cloud, Microservices, Self-contained Systems, etc.

Page 4: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Agenda (for people that didn’t see Josh’s talk)

From a service’s Point of View: 1.  Who am I? 2.  Where are the others? 3.  How do I talk to them?

(this time)

Page 5: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Agenda (for people that did see Josh’s talk)

What the *** just happened?

Page 6: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Who Am I (this time)? Centralized Configuration

Page 7: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Centralized Configuration: What?

u  Config for instances of same service u  Config shared with other services

Page 8: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Centralized Configuration: Why?

u  Different servers u  Different environments u  Push updates

Page 9: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Centralized Configuration: How?

Spring Cloud Config Server

Page 10: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Config Demo

Page 11: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Where Are The Others? Service Registries

Page 12: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Service Registries: why?

“No Service Is An Island” u  Advertise own presence u  Locate other services / middleware u  Might want to choose instance itself

Page 13: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Service Registries: why?

Ops: u  What services are there? u  How to check their health?

Page 14: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Service Registries: How?

Page 15: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Service Registry Demo

Page 16: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

How Do I Talk To Them? Robust inter-service communication

Page 17: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Inter-service communication

Sync vs

Async

Page 18: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Synchronous communication

u  Queries, commands w/ confirmations u  Concerns:

u  blocking / non-blocking u  load balancing u  ‘robust’ calls

Page 19: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Synchronous Inter-service Calls

Page 20: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Hystrix: Circuit Breakers

Page 21: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Hystrix: Circuit Breakers

Page 22: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Hystrix: Bulk Heading

Page 23: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Hystrix: Bulk Heading

Page 24: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Sync Communication Demo

Hystrix circuit breakers & bulk heads Load-balancing with Ribbon

Page 25: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Async communication: messaging

u  Events, triggers, request/response, … u  Various brokers / protocols / APIs u  Common patterns

Page 26: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Messaging patterns

u  Point-2-point vs. Pub-sub u  Competing consumers u  Partitioning u  Durable subscriptions

Page 27: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Async Communication Demo

Message sending & receiving through Spring Cloud Stream

Page 28: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Other questions

u  What makes things so slow? u  How to propagate e.g. config changes? u  How to propagate authentication info?

u  What about “significant others”?

Page 29: Spring Cloud Deep(er) Dive - GOTO Conference · Spring Cloud Deep(er) Dive Joris Kuipers, Hands-on architect Trifork Amsterdam @jkuipers . What is Spring Cloud? Set of projects helping

Other questions

u  What makes things so slow? u  Distributed tracing with Spring Cloud Sleuth

u  How to propagate e.g. config changes? u  Spring Cloud Bus

u  How to propagate authentication info? u  Spring Cloud Security with OAuth2

u  What about “significant others”? u  Spring Cloud Cluster for coordination