42
WILD microSERVICES 18+

Joker 2015. WILD microSERVICES

Embed Size (px)

Citation preview

Page 1: Joker 2015. WILD microSERVICES

WILD microSERVICES

18+

Page 2: Joker 2015. WILD microSERVICES

@tolkv

Page 3: Joker 2015. WILD microSERVICES

@aatarasoff

Page 4: Joker 2015. WILD microSERVICES

WILD microSERVICES

18+

Page 5: Joker 2015. WILD microSERVICES

DISCLAIMER

Наше мнение может не совпадать с официальной позицией банка, начальника, коллег или других специалистов. Мы не претендуем на роль последней инстанции в вопросах использования той или иной технологии. Все представленные решения вы можете использовать на свой страх и риск. За все ваши действия ответственность несёте только вы сами.

Page 6: Joker 2015. WILD microSERVICES

Для начала вопросы

● Кто использует микросервисы в продакшене?

Page 7: Joker 2015. WILD microSERVICES

Для начала вопросы

● Кто использует микросервисы в продакшене?

● Кто использует Docker в продакшене?

Page 8: Joker 2015. WILD microSERVICES

Выбери любые три

Гибкость

ПоддерживаемостьСкорость

Page 9: Joker 2015. WILD microSERVICES

Demo

Page 10: Joker 2015. WILD microSERVICES
Page 11: Joker 2015. WILD microSERVICES
Page 12: Joker 2015. WILD microSERVICES

Demo -> Deploy Time

Page 13: Joker 2015. WILD microSERVICES

Service Discovery

Page 14: Joker 2015. WILD microSERVICES
Page 15: Joker 2015. WILD microSERVICES
Page 16: Joker 2015. WILD microSERVICES
Page 17: Joker 2015. WILD microSERVICES

Demo -> Time to Discover

Page 18: Joker 2015. WILD microSERVICES
Page 19: Joker 2015. WILD microSERVICES

Где мой порт?

Page 20: Joker 2015. WILD microSERVICES
Page 21: Joker 2015. WILD microSERVICES

Demo -> Gateway Time

Page 22: Joker 2015. WILD microSERVICES
Page 23: Joker 2015. WILD microSERVICES

Demo -> FBI Time

Page 24: Joker 2015. WILD microSERVICES
Page 25: Joker 2015. WILD microSERVICES

+-------------------------------------------+

| Server |

| (single-threaded, event-driven etc) |

+-------------------------------------------+

| Processor |

| (compiler generated) |

+-------------------------------------------+

| Protocol |

| (JSON, compact, binary etc) |

+-------------------------------------------+

| Transport |

| (raw TCP, HTTP etc) |

+-------------------------------------------+

● Просто*

● Гибко*

● Безопасно*

Page 26: Joker 2015. WILD microSERVICES

Demo -> RPC Time

Page 27: Joker 2015. WILD microSERVICES

Thrift API Gatewayservice InternalTestService {

SomeReturnData getSomeData(

1: UserData userData,

2: RequestData requestData

) throws (1: SomeException e);

}

Page 28: Joker 2015. WILD microSERVICES

Thrift API Gatewayservice InternalTestService {

SomeReturnData getSomeData(

1: UserData userData,

2: RequestData requestData

) throws (1: SomeException e);

}

service ExternalTestService {

SomeReturnData getSomeData(

1: AuthToken authData,

2: RequestData requestData

) throws (1: SomeException e,

99: UnauthorizedException ue);

}

Page 29: Joker 2015. WILD microSERVICES

int startPosition = findStartPosition(protocol);

TBase userData = exchanger.process( extractAuthToken(protocol,exchanger.createEmptyAuthToken()));

int endPosition = findEndPosition(protocol);

return mergeArrays( getSkippedPart(protocol, startPosition), serializeUserData(protocolFactory, userData), getAfterTokenPart(protocol, endPosition, thriftBody.length));

Page 30: Joker 2015. WILD microSERVICES
Page 31: Joker 2015. WILD microSERVICES

Springway@SpringBootApplication@EnableThriftGatewaypublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

Page 32: Joker 2015. WILD microSERVICES

Demo -> Thrift the Ripper

Page 33: Joker 2015. WILD microSERVICES

Типичная микросервисная архитектура

Page 34: Joker 2015. WILD microSERVICES
Page 35: Joker 2015. WILD microSERVICES

Выводы

Page 36: Joker 2015. WILD microSERVICES

И чё?

Гибкость

ПоддерживаемостьСкорость

● Микросервисы это непросто

○ orchestration

○ discovery

○ fallback

Page 37: Joker 2015. WILD microSERVICES

И чё?

● В Spring-е нет:

○ @ThriftHandler

○ @ThriftClient

○ @EnableThriftGateway

● Consul Cloud -> 1.0.0.M1

Page 38: Joker 2015. WILD microSERVICES

Ссылки

Оригинальное исполнениеhttps://github.com/bsideup/thrift-spring-boot-starter

Крутой плагин для Gradlehttps://github.com/bsideup/GradleThrift

Page 39: Joker 2015. WILD microSERVICES

@bsideup

Page 40: Joker 2015. WILD microSERVICES

Code. Better. Together.Spring Thrift Client (Proof of Concept)https://github.com/aatarasoff/spring-thrift-starter

Thrift API Gateway (Proof of Concept)https://github.com/aatarasoff/thrift-api-gateway-corehttps://github.com/aatarasoff/spring-thrift-api-gateway

Примеры сегодняшнего дняhttps://github.com/lavcraft/microservices-mastering

Page 41: Joker 2015. WILD microSERVICES
Page 42: Joker 2015. WILD microSERVICES

Спасибо! Ваши вопросы

@tolkv

@aatarasoff