SlideShare a Scribd company logo
1 of 61
● Вы слышали про идею микросервисов
● Вы знаете какой профит это принесёт
● Вы провели совещание на эту тему
● . . .
● . . .
● и что теперь делать?..
Краткое содержание предыдущих серий
микросервис
Больше сути
● Декомпозиция приложения на сервисы
● Интеграция UI с сервисами
● Интеграция сервисов между собой
Сегодня в программе
Декомпозиция приложения
Проблема
Приложение-пример
FooSource
BarSource
Extract FooDestination
BarDestination
Transform
Load
{Pipeline}
Awesome-ETL
Практика монолитного приложения
UserPipeline
Foo
Access Source
Destination
Bar
Access Source
Destination
History Payment
Сущность
Бизнес-функция
Bounded Context
Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
Интеграция UI с сервисами
UI
Foo to Bar
Service
Bar to Foo
Service
Billing
Service
Identity
Service
Порядок взаимодействия
● Request headers
o Origin
o Access-Control-Request-Method
o Access-Control-Request-Headers
● Response headers
o Access-Control-Allow-Origin
o Access-Control-Allow-Credentials
o Access-Control-Expose-Headers
o Access-Control-Max-Age
o Access-Control-Allow-Methods
o Access-Control-Allow-Headers
CORS (Cross-origin resource sharing)
server {
server_name awesome-etl.com;
location /services/foo-to-bar/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-foo-to-bar.appspot.com/;
}
location /services/bar-to-foo/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-bar-to-foo.appspot.com/;
}
location /services/billing/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-billing.heroku.com/;
}
location /services/identity/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-identity.heroku.com/;
}
}
server {
server_name awesome-etl.com;
location /services/foo-to-bar/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-foo-to-bar.appspot.com/;
}
location /services/bar-to-foo/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-bar-to-foo.appspot.com/;
}
location /services/billing/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-billing.heroku.com/;
}
location /services/identity/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://awesome-etl-identity.heroku.com/;
}
}
Сервисы без состояния + аутентификация
Credential
s
UI
Identity
Service
JSON Web Token
Service
Authorization: Bearer
{identity token}
Cущности на пересечении сервисов
UI
id=1
id=2
id=3
Foo
Bar
Baz
Связь Identity и Entity токена
{
iat: 1437133223
exp: 1437738023
sub: de305d54-75b4-431b-adb2-eb6b9e546014
iss: identity
aud: da23614e02469a0d7c7bd1bdab5c9c474b1904dc
}
{
iat: 1437134451
exp: 1437138051
iss: foo
aud: de305d54-75b4-431b-adb2-eb6b9e546014
sub: 123e4567-e89b-12d3-a456-426655440000
permissions: [edit, delete]
}
jwt.io
JSON Web Tokens libraries and debugger
Интеграция сервисов
● shared database
● REST / RPC
● asynchronous messaging
Возможные способы
● подкупает своей простотой
● нарушает инкапсуляцию сервисов
● не всегда плохо
Shared database
● очевидный и логичный
● связывает пару сервисов
● не является fault tolerance
REST / RPC
● сохраняет слабую связанность сервисов
● снимает ограничение по доступности сервисов
● усложняет всё решение в целом
Asynchronous messaging
Шина сообщений
UI
Foo to Bar
Service
Bar to Foo
Service
Billing
Service
Identity
Service
MessageBus
● Сообщение
● Канал
● Производитель сообщений
● Потребитель сообщений
Сущности шины сообщений
● передаёт однородные сообщения
● именуем в scope.under_score стиле
Канал
{
version: ...
body: {
...
}
}
Сообщение
● body – содержимое сообщения
● version – версия структуры body
● можно использовать JSON Schema для валидации body
● свойства именуем в under_score стиле
● Команда – необходимо сделать
Пример канала: billing.register_usage_command
● Событие – уже произошло
Позволяют синхронизировать сущности между сервисами.
Пример канала: billing.overdue_payment_event
● Запрос – необходимо получить
Пример канала: some_component.whatever_query
● Ответ – получено при запросе
Пример канала: some_component.whatever_response
Типы сообщений
Производитель сообщений
Transaction
DB
Entity Message MessageBus
Push режим
Сервис получает сообщение сразу после его размещения.
Быстрая реакция на сообщение.
Pull режим
Cервис потребляет сообщение когда считает нужным.
Управление интенсивностью потребления.
Мы используем гибрид: push режим, но складываем во внутреннею
очередь из который получаем сообщения в pull режиме.
Потребитель сообщений
Примеры идемпотентных операций:
● сложение с нулём:
● умножение на единицу:
Идемпоте́нтность
Термин, означающий свойство математического объекта,
которое проявляется в том, что повторное действие над
объектом не изменяет его.
● идемпотентные потребители
● потребление с подтверждением
Best practice потребления сообщений
● RabbitMQ
● Apache Kafka
● . . .
● iron.io
● Amazon SQS
● Google Pub/Sub
● . . .
Реализации MessageBus
Eventual consistency
● данные между сервисами консистенты с задержкой
● в UI приходиться принимать локальные решения
Компромисы Eventual consistency
Ресурсы к изучению
Domain-Driven Design
Enterprise Integration Patterns
Building Microservices
Exploring CQRS and Event Sourcing
Microservices Resource Guide
http://martinfowler.com/microservices/
Немного философии
Буду благодарен за обратную связь!
maxvoloshin.com
maxvoloshin.com@gmail.com

More Related Content

Viewers also liked

Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»
Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»
Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»DataArt
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»DataArt
 
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...DataArt
 
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»DataArt
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidDataArt
 
The Rental Policies You Need to Know About
The Rental Policies You Need to Know AboutThe Rental Policies You Need to Know About
The Rental Policies You Need to Know AboutUrbanBound
 
CapstonereportA4_11564841_ITC571
CapstonereportA4_11564841_ITC571CapstonereportA4_11564841_ITC571
CapstonereportA4_11564841_ITC571abhinay reddy
 
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArtDataArt
 
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUsDataArt
 
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)DataArt
 
180 blue dining room training
180 blue dining room training180 blue dining room training
180 blue dining room trainingBill Buffalo
 
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevProDataArt
 
Роман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонРоман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонDataArt
 
Pertumbuhan dan Perkembangan Manusia
Pertumbuhan dan Perkembangan ManusiaPertumbuhan dan Perkembangan Manusia
Pertumbuhan dan Perkembangan ManusiaazyaNS
 
Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE!
 
Languor
Languor Languor
Languor DataArt
 
Артем Маркушев - JavaScript
Артем Маркушев - JavaScriptАртем Маркушев - JavaScript
Артем Маркушев - JavaScriptDataArt
 

Viewers also liked (20)

Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»
Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»
Александр Пронин «Как вырастить мобильного разработчика за 21 день?!»
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»
 
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...
Дмитрий Иванов «Мое первое приложение в облаках или почему стоит использовать...
 
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
 
The Rental Policies You Need to Know About
The Rental Policies You Need to Know AboutThe Rental Policies You Need to Know About
The Rental Policies You Need to Know About
 
CapstonereportA4_11564841_ITC571
CapstonereportA4_11564841_ITC571CapstonereportA4_11564841_ITC571
CapstonereportA4_11564841_ITC571
 
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt
«Как разработать надежное решение».Владимир Мельник, Ruby Developer, DataArt
 
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
 
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)
Майстер-клас "Автоматизоване тестування. З чого почати?" (частина 1)
 
180 blue dining room training
180 blue dining room training180 blue dining room training
180 blue dining room training
 
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
 
Роман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонРоман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слон
 
Pertumbuhan dan Perkembangan Manusia
Pertumbuhan dan Perkembangan ManusiaPertumbuhan dan Perkembangan Manusia
Pertumbuhan dan Perkembangan Manusia
 
World renown directors
World renown directorsWorld renown directors
World renown directors
 
Pen pc
Pen pcPen pc
Pen pc
 
Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840
 
Languor
Languor Languor
Languor
 
Артем Маркушев - JavaScript
Артем Маркушев - JavaScriptАртем Маркушев - JavaScript
Артем Маркушев - JavaScript
 
TAB records
TAB recordsTAB records
TAB records
 

Similar to Макс Волошин «Микросервисы на практике»

Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Василий Савунов
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Мониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиМониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиСвязьКомплект
 
Новые перспективы Cisco ASR 9000 в роли BNG
Новые перспективы Cisco ASR 9000 в роли BNGНовые перспективы Cisco ASR 9000 в роли BNG
Новые перспективы Cisco ASR 9000 в роли BNGCisco Russia
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Ontico
 
Архитектура и дизайн распределенной корпоративной сети высокой доступности.
 Архитектура и дизайн распределенной корпоративной сети высокой доступности. Архитектура и дизайн распределенной корпоративной сети высокой доступности.
Архитектура и дизайн распределенной корпоративной сети высокой доступности.Cisco Russia
 
Принципы и подходы Cisco для автоматизации в сетях операторов связи
Принципы и подходы Cisco для автоматизации в сетях операторов связиПринципы и подходы Cisco для автоматизации в сетях операторов связи
Принципы и подходы Cisco для автоматизации в сетях операторов связиCisco Russia
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средстваCisco Russia
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Yulia Tsisyk
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...HappyDev
 
DEV Labs 2016. Микросервисы - первая кровь
DEV Labs 2016. Микросервисы - первая кровьDEV Labs 2016. Микросервисы - первая кровь
DEV Labs 2016. Микросервисы - первая кровьSasha Soleev
 
Внедрение Cisco Jabber внутри предприятия
Внедрение Cisco Jabber внутри предприятияВнедрение Cisco Jabber внутри предприятия
Внедрение Cisco Jabber внутри предприятияCisco Russia
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundationKewpaN
 
Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Egor Konovalov
 
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоРазработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоDotNetConf
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоARCCN
 

Similar to Макс Волошин «Микросервисы на практике» (20)

Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Мониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиМониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сети
 
Новые перспективы Cisco ASR 9000 в роли BNG
Новые перспективы Cisco ASR 9000 в роли BNGНовые перспективы Cisco ASR 9000 в роли BNG
Новые перспективы Cisco ASR 9000 в роли BNG
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
 
Архитектура и дизайн распределенной корпоративной сети высокой доступности.
 Архитектура и дизайн распределенной корпоративной сети высокой доступности. Архитектура и дизайн распределенной корпоративной сети высокой доступности.
Архитектура и дизайн распределенной корпоративной сети высокой доступности.
 
Принципы и подходы Cisco для автоматизации в сетях операторов связи
Принципы и подходы Cisco для автоматизации в сетях операторов связиПринципы и подходы Cisco для автоматизации в сетях операторов связи
Принципы и подходы Cisco для автоматизации в сетях операторов связи
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средства
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
DEV Labs 2016. Микросервисы - первая кровь
DEV Labs 2016. Микросервисы - первая кровьDEV Labs 2016. Микросервисы - первая кровь
DEV Labs 2016. Микросервисы - первая кровь
 
Внедрение Cisco Jabber внутри предприятия
Внедрение Cisco Jabber внутри предприятияВнедрение Cisco Jabber внутри предприятия
Внедрение Cisco Jabber внутри предприятия
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation
 
Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014
 
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоРазработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешево
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 

More from DataArt

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR PartnersDataArt
 
Event management в IT
Event management в ITEvent management в IT
Event management в ITDataArt
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from insideDataArt
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)DataArt
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDataArt
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtDataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...DataArt
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's lifeDataArt
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиDataArt
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOpsDataArt
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real lifeDataArt
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестированияDataArt
 
Selenoid
SelenoidSelenoid
SelenoidDataArt
 
Selenide
SelenideSelenide
SelenideDataArt
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"DataArt
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...DataArt
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGDataArt
 

More from DataArt (20)

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
 
Selenoid
SelenoidSelenoid
Selenoid
 
Selenide
SelenideSelenide
Selenide
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
 

Макс Волошин «Микросервисы на практике»