Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

342 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×