Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Joker 2015. WILD microSERVICES

Talk with live coding about microservices concern

  • Be the first to comment

Joker 2015. WILD microSERVICES

  1. 1. WILD microSERVICES 18+
  2. 2. @tolkv
  3. 3. @aatarasoff
  4. 4. WILD microSERVICES 18+
  5. 5. DISCLAIMER Наше мнение может не совпадать с официальной позицией банка, начальника, коллег или других специалистов. Мы не претендуем на роль последней инстанции в вопросах использования той или иной технологии. Все представленные решения вы можете использовать на свой страх и риск. За все ваши действия ответственность несёте только вы сами.
  6. 6. Для начала вопросы ● Кто использует микросервисы в продакшене?
  7. 7. Для начала вопросы ● Кто использует микросервисы в продакшене? ● Кто использует Docker в продакшене?
  8. 8. Выбери любые три Гибкость ПоддерживаемостьСкорость
  9. 9. Demo
  10. 10. Demo -> Deploy Time
  11. 11. Service Discovery
  12. 12. Demo -> Time to Discover
  13. 13. Где мой порт?
  14. 14. Demo -> Gateway Time
  15. 15. Demo -> FBI Time
  16. 16. +-------------------------------------------+ | Server | | (single-threaded, event-driven etc) | +-------------------------------------------+ | Processor | | (compiler generated) | +-------------------------------------------+ | Protocol | | (JSON, compact, binary etc) | +-------------------------------------------+ | Transport | | (raw TCP, HTTP etc) | +-------------------------------------------+ ● Просто* ● Гибко* ● Безопасно*
  17. 17. Demo -> RPC Time
  18. 18. Thrift API Gateway service InternalTestService { SomeReturnData getSomeData( 1: UserData userData, 2: RequestData requestData ) throws (1: SomeException e); }
  19. 19. Thrift API Gateway service 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); }
  20. 20. 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) );
  21. 21. Springway @SpringBootApplication @EnableThriftGateway public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
  22. 22. Demo -> Thrift the Ripper
  23. 23. Типичная микросервисная архитектура
  24. 24. Выводы
  25. 25. И чё? Гибкость ПоддерживаемостьСкорость ● Микросервисы это непросто ○ orchestration ○ discovery ○ fallback
  26. 26. И чё? ● В Spring-е нет: ○ @ThriftHandler ○ @ThriftClient ○ @EnableThriftGateway ● Consul Cloud -> 1.0.0.M1
  27. 27. Ссылки Оригинальное исполнение https://github.com/bsideup/thrift-spring-boot-starter Крутой плагин для Gradle https://github.com/bsideup/GradleThrift
  28. 28. @bsideup
  29. 29. 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-core https://github.com/aatarasoff/spring-thrift-api-gateway Примеры сегодняшнего дня https://github.com/lavcraft/microservices-mastering
  30. 30. Спасибо! Ваши вопросы @tolkv @aatarasoff

    Be the first to comment

    Login to see the comments

  • DanielSabelnikov

    Oct. 21, 2015

Talk with live coding about microservices concern

Views

Total views

1,112

On Slideshare

0

From embeds

0

Number of embeds

11

Actions

Downloads

14

Shares

0

Comments

0

Likes

1

×