Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
WILD microSERVICES
18+
@tolkv
@aatarasoff
WILD microSERVICES
18+
DISCLAIMER
Наше мнение может не совпадать с официальной
позицией банка, начальника, коллег или других
специалистов. Мы не претендуем на роль
последней инстанции в вопросах использования
той или иной технологии. Все представленные
решения вы можете использовать на свой страх и
риск. За все ваши действия ответственность несёте
только вы сами.
Для начала вопросы
● Кто использует микросервисы в продакшене?
Для начала вопросы
● Кто использует микросервисы в продакшене?
● Кто использует Docker в продакшене?
Выбери любые три
Гибкость
ПоддерживаемостьСкорость
Demo
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
Demo -> Deploy Time
Service Discovery
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
Demo -> Time to Discover
Joker 2015. WILD microSERVICES
Где мой порт?
Joker 2015. WILD microSERVICES
Demo -> Gateway Time
Joker 2015. WILD microSERVICES
Demo -> FBI Time
Joker 2015. WILD microSERVICES
+-------------------------------------------+
| Server |
| (single-threaded, event-driven etc) |
+-------------------------------------------+
| Processor |
| (compiler generated) |
+-------------------------------------------+
| Protocol |
| (JSON, compact, binary etc) |
+-------------------------------------------+
| Transport |
| (raw TCP, HTTP etc) |
+-------------------------------------------+
● Просто*
● Гибко*
● Безопасно*
Demo -> RPC Time
Thrift API Gateway
service InternalTestService {
SomeReturnData getSomeData(
1: UserData userData,
2: RequestData requestData
) throws (1: SomeException e);
}
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);
}
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)
);
Joker 2015. WILD microSERVICES
Springway
@SpringBootApplication
@EnableThriftGateway
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Demo -> Thrift the Ripper
Типичная микросервисная архитектура
Joker 2015. WILD microSERVICES
Выводы
И чё?
Гибкость
ПоддерживаемостьСкорость
● Микросервисы это непросто
○ orchestration
○ discovery
○ fallback
И чё?
● В Spring-е нет:
○ @ThriftHandler
○ @ThriftClient
○ @EnableThriftGateway
● Consul Cloud -> 1.0.0.M1
Ссылки
Оригинальное исполнение
https://github.com/bsideup/thrift-spring-boot-starter
Крутой плагин для Gradle
https://github.com/bsideup/GradleThrift
@bsideup
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
Joker 2015. WILD microSERVICES
Спасибо! Ваши вопросы
@tolkv
@aatarasoff

More Related Content

Joker 2015. WILD microSERVICES