Upload
tanya-denisyuk
View
139
Download
3
Embed Size (px)
DESCRIPTION
Докладчики расскажут о набитых шишках в управлении облаком, а так же других частях облачной инфраструктуры. Расскажут о расширении возможностей взаимодействия между компонентами облака, организации полноценного стриминга данных. Т.е. поделяться опытом создания облачного планировщика, оптимизирующего утилизацию ресурсов облака, профилирования приложения «на горячую».
Citation preview
Антон Тюрин
HDCONFHDCONF
Евгений Сафронов
«Инфраструктура под Cocaine»
1
2
Инфраструктура под Cocaine.
!
Highload Минск 04.10.2014
https://github.com/cocaine 3
OverviewOS вашей инфраструктуры.
Kernel & Userspace.
Управление ресурсами.
Сервисы.
Приложения.
Изоляция.
https://github.com/cocaine 4
СервисыАбстрактные фронтенды к различным
функциям вашей инфраструктуры.
Пишешь один раз (на C++) - используешь на
любом языке.
Готовые решения! Locator, Storage, Logging,
Node, UrlFetching, Elasticsearch …
https://github.com/cocaine 5
Сервисы: LocatorРаздает информацию о сервисах.
Все, что нужно знать - имя сервиса.
Информация: адрес, версия протокола, API.
Мы не используем IDL - вся информация о сервисах
передается в рантайме.
https://github.com/cocaine 6
Сервисы: StorageВряд ли какая облачная платформа
обойдется без облачного хранилища.
Нужна возможность писать, читать и
искать данные.
В нашем случае - это Elliptics.
https://github.com/cocaine 7
Сервисы: NodeКонтролирует работу приложений.
Доставляет приложения на ноду.
Запускает, останавливает.
Собирает информацию и метрики.
Использует контейнеры для изоляции
приложений!
https://github.com/cocaine 8
Сервисы: ApplicationПриложение - любой пользовательский код.
Используется собственный RPC протокол
(мультиплексирование, каналы).
Event-driven.
Пишем легко с фреймворками.
C++, Java, NodeJs, Go, Python, Ruby, Perl.
https://github.com/cocaine 9
Сервисы: LoggingЕдиная точка входа для логов со всех
приложений.
Структуризация логов.
Индексация, полнотекстовый поиск, Elasticsearch.
https://github.com/cocaine 10
Балансировка
Per-application. Автоматическая балансировка
нагрузки для каждого приложения.
IPVS. Динамические веса, мгновенная реакция на
изменения в кластере.
Routing Groups. Расщепление трафика между API-
совместимыми приложениями.
https://github.com/cocaine 11
Features: Dual-streaming RPCДвухсторонний канал между приложением/сервисом и
пользователем.
https://github.com/cocaine 12
Features: Dispatch graphГибкий протокол в виде дерева
переходов.
Можно реализовывать свои
собственные протоколы.
https://github.com/cocaine 13
Features: RaftАлгоритм достижения консенсуса в распределенной системе.
Более подробно: http://raftconsensus.github.io
https://github.com/cocaine 14
Features: Raft.UnicornРаспределенный согласованный сервис
хранения конфигураций с возможностью
оповещения подписчиков об изменениях.
Ближайший аналог - etcd.
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
https://github.com/cocaine 16
Features: AAAАвторизация, приложения знали свои права.
Аутентификация, чтобы сервисы были уверены
в подлинности клиентов.
Аккаунтинг, чтобы можно было считать
деньги.
https://github.com/cocaine 17
Features: Debugging Удаленная отладка приложений в облаке.
Подключение прямо к работающему
приложению
Профилирование.
Определение bottleneck’ов.
https://github.com/cocaine 18
Improvements: SchedulerУправление ресурсами.
Распределение нагрузки.
Возможность контролировать ресурсы снизу.
Service Level Agreement.
https://github.com/cocaine 19
Features: HTTPНекоторым пользователям не нужен наш
протокол. Они хотят просто залить HTTP
приложение без изменений, и чтобы оно
получило все преимущества облака.
Почему бы не дать такую возможность?
https://github.com/cocaine 20
Features: Distributed tracingУникальный id на каждый запрос.
Все логи включают в себя этот id.
Построение дерева вызовов и определение
полного пути запроса.
Профилирование bottleneck’ов.
Спасибо за внимание!
21
22
Github.com/cocaine
Tech.yandex.ru/cocaine