Upload
andrey-sibiryov
View
347
Download
1
Embed Size (px)
DESCRIPTION
Слайды к докладу на Yet Another Conference 2013 в Москве — http://tech.yandex.ru/events/yac/2013. Информация о самом докладе доступна вот здесь: http://tech.yandex.ru/events/yac/2013/talks/1087.
Citation preview
2758.933194
2-8-15-2
Сибирёв Андрей
1734,45
2-8-7
Co caine CloudsA Cl oser Look
Мы делаем инфраструктуру.
3
Как и десять лет назад, обычно инфраструктура представляет из себя бардак.
При этом, инфраструктура является основой любого современного бизнеса.
Кажется, что-то здесь не так.
Немного истории
4
© S
impl
eDes
ktop
s.co
m
Компании начинают с небольшого количества серверов.
Постепенно парк серверов растёт, вместе с ростом пользовательской базы и, следовательно, нагрузки.
В начале был сервер
5
© S
impl
eDes
ktop
s.co
m
Рано или поздно, компания обнаруживает у себя кучу разнородного железа.
И если его использование документировано и учтено, то всё хорошо.
Но такое встречается редко.
В начале был сервер
6
© S
impl
eDes
ktop
s.co
m
Разнообразие — это великое зло.
7
В программах есть ошибки.
Ошибки чинят и выпускают новые версии программ, на радость пользователям.
Правда, эти новые версии сначала нужно пользователям доставить.
И на сервере был софт
8
© S
impl
eDes
ktop
s.co
m
Очевидно, чтобы выкатить новую версию программы, нужна интеллектуальная система деплоймента приложений.
Например, пять тысяч строк на Perl и Rsync!
На самом деле, нет.
И на сервере был софт
9
© S
impl
eDes
ktop
s.co
m
Rsync — не инструмент деплоймента.
10
Программы, в которых есть ошибки, ломаются в самое неподходящее время.
После работы пяти тысяч строк на Perl понять где и что именно сломалось невозможно.
Бардак только что стал в два раза больше.
И софт был не очень
11
© S
impl
eDes
ktop
s.co
m
Человечество изобрело мониторинг и метрики, чтобы такого никогда не было.
Только об этом надо было думать в самом начале.
Потому что невозможно управлять хаосом.
И софт был не очень
12
© S
impl
eDes
ktop
s.co
m
Мониторинг — это контроль.
13
Иногда программисты пишут быстрые программы.
Звучит, вроде бы, хорошо, но, на самом деле, это не всегда так.
Обогревать датацентры серверами — не самая хорошая экономическая модель.
Утилизация ресурсов
14
© S
impl
eDes
ktop
s.co
m
Ваше приложение попало на главную страницу Хабра.
И тысяча пользователей превратилась в пятьдесят тысяч. Вот это да, стартап окупился за одну ночь!
То есть, я хотел сказать «503 Service Temporarily Unavailable».
Пики нагрузки
15
© S
impl
eDes
ktop
s.co
m
Единообразие — это гибкость.
16
© Volkswagen AG
Модульная архитектура, унифицированные вычислительные ресурсы: слоты, слайсы, юниты.
Детерминированная система деплоймента приложений.
Тесты, метрики и мониторинг. Мониторинг, метрики и тесты.
Cloud
18
© S
impl
eDes
ktop
s.co
m
Kernel
DriversResource ManagersAPI
Userland
Apps
Like an OS
19
© S
impl
eDes
ktop
s.co
m
Аналогичны модулям ядра в Linux.
Logging, Storage, Search & Indexing, URL Fetching, Geolocation, ...
Теперь все приложения — тоже сервисы.
Сервисы
20
© S
impl
eDes
ktop
s.co
m
Discovery & Arbitration. Для обращения к сервису нужно знать только его имя.
Мы отказались от IDL, все метаданные о сервисе приложение получает в рантайме.
HTTP/2.0-like RPC. Непрозрачные бинарные потоки, мультиплексирование, расширяемость, распространённость.
Локатор
21
© S
impl
eDes
ktop
s.co
m
Сервисы — это абстрактные фронтэнды к разнообразным функциям инфраструктуры.
Logging Service может быть реализован как через Syslog, так и через Logstash.
Смена реализации делается через изменение конфига. Код приложений остаётся неизменным.
Плагины
22
© S
impl
eDes
ktop
s.co
m
Система хранения — это фундамент для любой облачной платформы.
Самое главное, такая система должна быть надёжной, включая защиту от котиков и безумных экскаваторщиков.
Мы используем Elliptics.
Storage Service
23
© S
impl
eDes
ktop
s.co
m
Надёжнее, чем молитва.
Вторичные индексы, стриминг, кэш, server-side processing и все остальные ключевые слова из других систем хранения данных.
И, главное, защита от атомной войны!
Elliptics
24
© S
impl
eDes
ktop
s.co
m
Контролирует работу приложений — доставка на ноды, конфигурация, управление жизненным циклом.
Собирает и хранит метрики и статистику о работе приложений для балансировщика.
Поддерживаются процессы или контейнеры.
Node Service
25
© S
impl
eDes
ktop
s.co
m
Контейнеры — это легковесная виртуализация. Нет гипервизора, все контейнеры делят одно ядро.
Процессы работают в изолированных неймспейсах: pid, uid, ipc, network, filesystem, mounts, ...
Запуск контейнера происходит в сотни раз быстрее, чем запуск виртуальной машины.
Контейнеры
26
© S
impl
eDes
ktop
s.co
m
Стандарт распространения приложений на базе Linux Containers.
Поддерживается Red Hat, Rackspace, Cloudflare, Ebay, Mozilla, OpenStack, Chef, Puppet, ...
Единый контейнер, который будет работать как на ноутбуке разработчика, так и на кластере из сотен машин.
Docker
27
Layer 3. Это значит не только HTTP — какие угодно данные в любом формате.
Балансировка в ядре: IPVS, IPv6, динамические веса, мгновенная реакция на изменения в кластере.
Routing Groups. Расщепление траффика между несколькими интерфейсно-совместимыми приложениями.
Балансировка
28© SimpleDesktops.com
Доступ к сервисам по токенам, аудит и, следовательно, биллинг.
Поддержка Ruby, Racket и Java.
HTTP-only режим.
Планы на будущее
29
© S
impl
eDes
ktop
s.co
m
Спасибо за внимание
31
Андрей СибирёвРуководитель службы разработки облачных технологий
@kobolog
kobolog
github.com/cocaine