SlideShare a Scribd company logo
1 of 42
Download to read offline
WILD microSERVICES
18+
@tolkv
@aatarasoff
WILD microSERVICES
18+
DISCLAIMER
Наше мнение может не совпадать с официальной
позицией банка, начальника, коллег или других
специалистов. Мы не претендуем на роль
последней инстанции в вопросах использования
той или иной технологии. Все представленные
решения вы можете использовать на свой страх и
риск. За все ваши действия ответственность несёте
только вы сами.
Для начала вопросы
● Кто использует микросервисы в продакшене?
Для начала вопросы
● Кто использует микросервисы в продакшене?
● Кто использует Docker в продакшене?
Выбери любые три
Гибкость
ПоддерживаемостьСкорость
Demo
Demo -> Deploy Time
Service Discovery
Demo -> Time to Discover
Где мой порт?
Demo -> Gateway Time
Demo -> FBI Time
+-------------------------------------------+
| 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)
);
Springway
@SpringBootApplication
@EnableThriftGateway
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Demo -> Thrift the Ripper
Типичная микросервисная архитектура
Выводы
И чё?
Гибкость
ПоддерживаемостьСкорость
● Микросервисы это непросто
○ 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
Спасибо! Ваши вопросы
@tolkv
@aatarasoff

More Related Content

Similar to Joker 2015 Wild microSERVICES

Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
Expolink
 
Чеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдераЧеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдера
Aleksey Lukatskiy
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
Aleksandr Tarasov
 

Similar to Joker 2015 Wild microSERVICES (20)

Do it yourself profiler
Do it yourself profilerDo it yourself profiler
Do it yourself profiler
 
Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
Check Point 3D Security report, как инструмент выявления и ликвидации угроз в...
 
Improve your security - 2018
Improve your security - 2018Improve your security - 2018
Improve your security - 2018
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
 
Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?
 
SOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge acceptedSOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge accepted
 
Чеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдераЧеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдера
 
Первые шаги нового CISO
Первые шаги нового CISOПервые шаги нового CISO
Первые шаги нового CISO
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
 
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организацииВнедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организацииВнедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
 
Опыт использования оборудования Cisco в дата-центре «Инфосистемы Джет»
Опыт использования оборудования Cisco в дата-центре «Инфосистемы Джет»Опыт использования оборудования Cisco в дата-центре «Инфосистемы Джет»
Опыт использования оборудования Cisco в дата-центре «Инфосистемы Джет»
 
Check Piont. Чекрыгин Сергей. "На один шаг впереди"
Check Piont. Чекрыгин Сергей. "На один шаг впереди"Check Piont. Чекрыгин Сергей. "На один шаг впереди"
Check Piont. Чекрыгин Сергей. "На один шаг впереди"
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 

More from Кирилл Толкачёв

Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
Кирилл Толкачёв
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016
Кирилл Толкачёв
 

More from Кирилл Толкачёв (13)

Curse of spring boot test [VRN]
Curse of spring boot test [VRN]Curse of spring boot test [VRN]
Curse of spring boot test [VRN]
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline
 
Spring Boot Ripper
Spring Boot RipperSpring Boot Ripper
Spring Boot Ripper
 
Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?
 
Curse of spring boot test
Curse of spring boot testCurse of spring boot test
Curse of spring boot test
 
Spring Boot Test horror
Spring Boot Test horrorSpring Boot Test horror
Spring Boot Test horror
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG Екатеринбург
 
Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...
 
CD with Jenkins. Lessons Learned
CD with Jenkins. Lessons LearnedCD with Jenkins. Lessons Learned
CD with Jenkins. Lessons Learned
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016
 
Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016
 
Java Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real worldJava Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real world
 

Joker 2015 Wild microSERVICES