23
Антон Тюрин HDCONF HDCONF Евгений Сафронов «Инфраструктура под Cocaine»

Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

Embed Size (px)

DESCRIPTION

Докладчики расскажут о набитых шишках в управлении облаком, а так же других частях облачной инфраструктуры. Расскажут о расширении возможностей взаимодействия между компонентами облака, организации полноценного стриминга данных. Т.е. поделяться опытом создания облачного планировщика, оптимизирующего утилизацию ресурсов облака, профилирования приложения «на горячую».​

Citation preview

Page 1: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

Антон Тюрин

HDCONFHDCONF

Евгений Сафронов

«Инфраструктура под Cocaine»

Page 2: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

1

Page 3: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

2

Инфраструктура под Cocaine.

!

Highload Минск 04.10.2014

Page 4: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 3

OverviewOS вашей инфраструктуры.

Kernel & Userspace.

Управление ресурсами.

Сервисы.

Приложения.

Изоляция.

Page 5: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 4

СервисыАбстрактные фронтенды к различным

функциям вашей инфраструктуры.

Пишешь один раз (на C++) - используешь на

любом языке.

Готовые решения! Locator, Storage, Logging,

Node, UrlFetching, Elasticsearch …

Page 6: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 5

Сервисы: LocatorРаздает информацию о сервисах.

Все, что нужно знать - имя сервиса.

Информация: адрес, версия протокола, API.

Мы не используем IDL - вся информация о сервисах

передается в рантайме.

Page 7: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 6

Сервисы: StorageВряд ли какая облачная платформа

обойдется без облачного хранилища.

Нужна возможность писать, читать и

искать данные.

В нашем случае - это Elliptics.

Page 8: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 7

Сервисы: NodeКонтролирует работу приложений.

Доставляет приложения на ноду.

Запускает, останавливает.

Собирает информацию и метрики.

Использует контейнеры для изоляции

приложений!

Page 9: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 8

Сервисы: ApplicationПриложение - любой пользовательский код.

Используется собственный RPC протокол

(мультиплексирование, каналы).

Event-driven.

Пишем легко с фреймворками.

C++, Java, NodeJs, Go, Python, Ruby, Perl.

Page 10: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 9

Сервисы: LoggingЕдиная точка входа для логов со всех

приложений.

Структуризация логов.

Индексация, полнотекстовый поиск, Elasticsearch.

Page 11: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 10

Балансировка

Per-application. Автоматическая балансировка

нагрузки для каждого приложения.

IPVS. Динамические веса, мгновенная реакция на

изменения в кластере.

Routing Groups. Расщепление трафика между API-

совместимыми приложениями.

Page 12: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 11

Features: Dual-streaming RPCДвухсторонний канал между приложением/сервисом и

пользователем.

Page 13: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 12

Features: Dispatch graphГибкий протокол в виде дерева

переходов.

Можно реализовывать свои

собственные протоколы.

Page 14: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 13

Features: RaftАлгоритм достижения консенсуса в распределенной системе.

Более подробно: http://raftconsensus.github.io

Page 15: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 14

Features: Raft.UnicornРаспределенный согласованный сервис

хранения конфигураций с возможностью

оповещения подписчиков об изменениях.

Ближайший аналог - etcd.

Page 16: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 15

Structured loggingТеперь Logging Service умеет работать со

структурированными логами.

Приложение само определяет степень

структуризации логов.

Filter

level >= info

{ level: info message: «very important», id: 42, errno: 0, url: «ya.ru» }

Map

Page 17: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 16

Features: AAAАвторизация, приложения знали свои права.

Аутентификация, чтобы сервисы были уверены

в подлинности клиентов.

Аккаунтинг, чтобы можно было считать

деньги.

Page 18: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 17

Features: Debugging Удаленная отладка приложений в облаке.

Подключение прямо к работающему

приложению

Профилирование.

Определение bottleneck’ов.

Page 19: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 18

Improvements: SchedulerУправление ресурсами.

Распределение нагрузки.

Возможность контролировать ресурсы снизу.

Service Level Agreement.

Page 20: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 19

Features: HTTPНекоторым пользователям не нужен наш

протокол. Они хотят просто залить HTTP

приложение без изменений, и чтобы оно

получило все преимущества облака.

Почему бы не дать такую возможность?

Page 21: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

https://github.com/cocaine 20

Features: Distributed tracingУникальный id на каждый запрос.

Все логи включают в себя этот id.

Построение дерева вызовов и определение

полного пути запроса.

Профилирование bottleneck’ов.

Page 22: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

Спасибо за внимание!

21

Page 23: Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine

22

Github.com/cocaine

Tech.yandex.ru/cocaine

[email protected] [email protected]