devops-40 meetup #7, project fifo
Post on 16-Jun-2015
733 Views
Preview:
DESCRIPTION
TRANSCRIPT
DevOps-40
Project FiFo – системауправления облаком
SmartOS на языке Erlang31.01.2014, DevOps meetup, СПб
DevOps-40
Традиционное вступление:● Я не успел записать новогоднее обращение в срок
● Я устал, но не ухожу (need moar lesbian cosplayers speakers!)
● В зале есть эрлангисты? (ответите за всё!)
DevOps-40
В жанре легкого трепа:● Чего хотим от панели управления?● Как это реализовать?● Что такое “проект FiFo”?● Впечатления от использования, в основном, жалобы
● В т.ч., жалобы на (около)Erlang
DevOps-40
Чего хотим от панели?● Минимально:● Создать, удалить, изменить, запустить, остановить виртуалку
● Управление правами доступа● Управление ресурсами (гипервизором, IP-адресами)
DevOps-40
Чего хотим от панели?● Нормально:● Гипервизоров больше одного● Интеграция с биллингом● Плавное (а не выбор предопределенных пакетов) изменение параметров виртуалок
DevOps-40
Чего хотим от панели?● Идеально:● Распределенность и отказоустойчивость
● Работа с большим количеством объектов
● Управление стораджем/бэкапами
DevOps-40
Как это реализовать?● Взять OpenStack и погрузиться в пучины его развертывания
● ^ Я не пробовал, отговорили● Взять Erlang и написать свою крутую панель с распределенностью и лисперами
DevOps-40
Хотя, постойте● Project FiFo – попытка написания своей крутой Open Source панели на Erlang под SmartOS
● Альтернатива под SmartOS – платный SmartDC (он на NodeJS)
● Фактически, нет альтернатив
Как устроен(а) FiFo● FiFo состоит из квадратиков (как и все остальное)
● Их пока шесть
DevOps-40
Как устроен(а) FiFo● wiggle – API server● snarl – rights management server● sniffle – business logic server● howl – live notifications server● jingles – Cowboy-based Web app● chunter – hypervisor agent
DevOps-40
Как устроен(а) FiFo● Все это хозяйство обнаруживает друг друга при помощи mDNS
● Отказоустойчивость сделана поверх RIAK Core
● Хранилище – LevelDB● Rich browser app на AngularJS
DevOps-40
Как выглядит
DevOps-40
Как внедрено у нас● Две продакшн инсталляции, одна – тестовая
● Используем с сентября● В одной из продакшн инсталляций несколько гипервизоров
● Недавно провели апдейт
DevOps-40
Что хорошо● mDNS это очень хорошо● ^ (используйте VLANs)● Хорошо, что вообще работает● Падения панели не сказываются на работе гипервизоров
● Ставится относительно просто
DevOps-40
Что плохо● Высокий уровень хаоса:● Странная система версионирования
● Куча (!) багов● Сообщения об ошибках бессмысленны
DevOps-40
Что плохо● Недоработки:● Rich web app – круто, но не по слабым каналам
● Плохая обработка ошибок● “Let it fail” != “make it fail” (сервисы падают и до рестарта лежат)
DevOps-40
Let make it fail!
DevOps-40
Краткий список багов● При описании диапазона IP можно указать VLAN id, но панель его проигнорирует
● Свойства включенной машины нельзя поменять (при этом вернется “Server error 500”)
DevOps-40
Краткий список багов● Метаданные в базе могут разойтись с реальностью (“лишний гипервизор”, неудаляемые дубликаты виртуалок)
● ^ Ищу консольный клиент LevelDB● Кстати, 6244 /var/db/sniffle/ (в Mb)
DevOps-40
Краткий список багов● Виртуальную машину типа KVM нельзя создать, если выделить ей меньше 4G памяти
● Никаких ошибок, в панели она просто зависнет
● Удалить ее -только со второго раза
DevOps-40
Краткий список багов● Выделенные IP-адреса не всегда возвращаются в пул свободных при их освобождении
● Если назначить объекту “сеть” два пула IP-адресов, адреса из второго не будут выдаваться
DevOps-40
DevOps-40Ну и про Erlang● Компилируемый язык для веб- приложения? Д в упрлс!
● Каша из логов: debug.log, crash.log, erlang.log, error.log, info.log, run_erl.log, warning.log – и это с одного из шести сервисов!
● В логах тоже каша
DevOps-40
Что имеем в FiFo?● Минимально:● Создать, удалить, изменить, запустить, остановить виртуалку
● Управление правами доступа● Управление ресурсами (гипервизором, IP-адресами)
DevOps-40
Что имеем в FiFo?● Нормально:● Гипервизоров больше одного● Интеграция с биллингом● Плавное (а не выбор предопределенных пакетов) изменение параметров виртуалок
DevOps-40
Что имеем в FiFo?● Идеально:● Распределенность и отказоустойчивость
● Работа с большим количеством объектов
● Управление стораджем/бэкапами
DevOps-40Выводы● Нельзя просто взять Erlang и разбавить его Angular'ом
● Здесь было слово в защиту PHP, но я его случайно стер
● FiFo – образовательный проект, в некотором роде
● Ждите статус апдейтов
DevOps-40
Тост за единение!● Вопросы?● DevOps-40: Лучшее – детям!
top related