Архив метки: open stack

Почему вам не нужно ставить в компании OpenStack: практический опыт

У меня тут есть, судя по логам, суперпопулярная статья со ссылкой на пост на Хабре: История двухлетнего опыта использования ceph в веб-хостере и полученный опыт.
Продолжим же инициативу, раз она пользуется успехом у моих читателей.
Пару дней назад там же на Хабре была опубликована статья под заголовком:
Итак, вы решили развернуть OpenStack.
В ней автор рассказывает о собственных злоключениях в течение двух лет, в попытке заставить стабильно работать кластер OpenStack.

Немного цитат:
«В общем, в 2012-м мы развернули OpenStack, на тот момент это был Essex, запустили проект, прожили с такой облачной инфраструктурой до 2014-го года, кажется до релиза Grizzly включительно. Сил и желания поддерживать его дальше не было, и OpenStack был с позором выпилен.

Когда-то давно я даже думал написать статью как правильно его ставить, с комментариями на что обратить внимание. Но знаете, я передумал. Не ставьте его лучше вообще. Просто не связывайтесь.»

Так часто у меня спрашивают про OpenStack, что, как мне кажется, тема требует своего освещения. Как вы, возможно, знаете, уже примерно год у нас есть инструмент, позволяющий встроить и использовать Nutanix как компонент типа hypervisor в среду OpenStack. Но это интересно только пользователям, у которых уже есть развернутся работающая инфраструктура OpenStack, например они уже инвестировали в это продукт, и они не хотят немедленно отказаться от него, но им нравится Nutanix. Для этого варианта мы сделали специальную VM интеграции, которая транслирует вызовы API OpenStack, в наш RESTful API Nutanix. Но, соглашусь с автором, наиболее разумным будет отказ от OpenStack, в стратегической перспективе, а использование нашего интерфейса интеграции может помочь провести переход наиболее безболезненно.

Основные недостатки, по мнению автора: сложность и тяжеловесность.

Когда-то давно, когда мы ставили Essex, там было все относительно просто и понятно. Keystone (служба авторизации), Glance (служба хранилища образов) и Nova (служба управления гипервизорами). Кроме того там еще был Horizon (дашборд) и куча мелких и не очень зависимостей. Каждый узел системы обрастает чуть ли не десятками вспомогательных демонов. На controller node через некоторое время становится страшно смотреть.

Архитектура OpenStack достаточно сильно фрагментирована. Есть очень большое количество «движущихся частей», взаимосвязь который между собой не всегда абсолютно ясна. У вас что-то сломалось? Окей, попробуй понять где это что-то сломалось и почему. OpenStack Foundation похоже гордится, что в OpenStack более 20 миллионов строк кода, даже на главную своего сайта вынесли. Так вот, ЭТО НИФИГА НЕ ДОСТОИНСТВО.
Код в большинстве своем написан на Python. Спасибо, OpenStack, благодаря тебе я возненавидел Python и все что с ним связано.

Дело в том, что являясь OSS, OpenStack пытается быть kind of unix-way. Т.е. под капотом все эти монструозные службы на самом деле дергают десятки и сотни unix-утилит по собственной логике, которую вам придется изучить и возможно даже дебажить.

Нестабильность:

ну вот вы наконец-то запилили инфраструктуру своей мечты, все худо-бедно работает как рассчитывали, но не хватает одной мааааленькой детали. А в новом релизе она есть. Ну по крайней мере по Release Notes.
Окей гугл, давай обновим наш OpenStack. И тут выясняется, что функционал, который вы с радостью использовали — выпилили. Ну потому что. Ну некрасивый он был и вообще, мы лучше сделаем, честно-честно. В следующем релизе. Может быть. А пока вот вам попроще, но ведь работает же! Ну и плевать что не в вашем случае, но работает!

И вообще сырость, в лучших традициях OSS:

А еще очень дивное чувство испытываешь, когда тебе нужен функционал, ну, скажем, деление на зоны. Ну вот есть у тебя машины с большими винтами, есть с SSD, есть с видюхами, хочу разбить кластер на зоны, чтобы виртуалка падала на ту машину, у которой необходимый ресурс есть. Ну ок, читаем доку, вроде бы availability zones подходит. Настраиваем, включаем. И ничего. В доке написано что все должно, а на практике ничего. Лезем в код, а там.
Будет реализовано. В следующем релизе. Может быть. Ну ты понял. Смотри предыдущий пункт.

Автор там, правда, делает вывод в конце:

В общем после полутора лет борьбы с OpenStack мы от него отказались и перешли на другое облако. Управление инфраструктурой стало простым и приятным, а обновлять версий также просто как apt dist-upgrade.
Что это за облако и почему оно удобнее OpenStack я постараюсь рассказать в следующей статье. (Спойлер: это OpenNebula).

Но мы то с вами, посетителями этого блога, знаем еще более правильный вариант. ;)