156 просмотров
Как я строил частное облако: опыт, боль и архитектура
Отказ от ответственности
Данная публикация может содержать ненормативную лексику и материалы, которые могут быть неприемлемы для некоторых читателей. Контент предназначен исключительно для лиц старше 27 лет. Если вы чувствительны к грубым выражениям или другим подобным элементам, рекомендуем воздержаться от прочтения.
Автор и редакция статьи не несут ответственности за возможные негативные реакции, вызванные употреблением ненормативной лексики в данном тексте. Использование нецензурных выражений служит художественным или стилистическим целям, и не имеет целью оскорбить или унизить кого-либо.
Прочтение статьи осуществляется на ваш страх и риск. Все персонажи и события реальны. Все трюки выполнены профессионалом.
Введение
В конце 2021 года мне предложили заняться проектом по созданию частного облака. Ключевой вопрос на собеседовании звучал просто: «Знаешь Ruby on Rails?» — знал. Недолго думая, я согласился.

Первый этап: на старте было любопытно
Началось всё с знакомства с ленивым сисадмином, архитектором и кодером. Парни оказались добрые и весёлые и мы начали ковырять опенсорсное поделие от красной шляпы, на базе которого решили строить облако: разбирались в коде, архитектуре и предоставленных фреймворках и предлагаемых решениях. Я предложил сделать клиентскую панель управления, что было принято без возражений.
Со своей стороны я собрал MVP портала, интегратор написал часть, отвечающую за интеграцию с vmWare, и после успешной демонстрации, наше и руководство со стороны интегратора отбили пятюни. Но для меня было очевидно, что это только начало. Наняв фронтедера, мы продолжили разработку облака и интеграцию системы на бой.
Импортозамещение и тесты на прочность
Но тут подъехали санкции и следующим этапом стало тестирование "импортозамещённной" системы управления виртуализацией. Параллельно осуществлялся найм, но поскольку в нём я не участвовал, то приходили неподходящие персонажи. Они быстро нас покидали.
Летом 2023 в команду пришёл новый менеджер проекта. Его методы оказались специфическими: контроль без участия, Jira без структуры, коммуникации без содержания. В этот момент фронтендер ушёл, а менеджер начал "строить" команду из случайных людей.
Дальше — зоопарк

Её стали пополнять сотрудники с неожиданными повадками. Один не слышал задач, другой практически ничего не говорил. Сисадмин сгорел и ушёл, пока менеджер формально закрывал потребности и создавал имитацию бурной деятельности: Jira создавалась 3 месяца, задачи не имели чёткого описания, связи между компонентами рвались. Архитектор, появившийся позже, оказался фигурой номинальной. Роль CTO обещалась, но на деле не поддерживалась решениями или ответственностью.
Параллельно инфраструктура развивалась: я сопровождал appliance'ы MIQ, настраивал Automation Engine, LDAP, Service Dialogs и авторский портал с REST-интерфейсом и интеграциями. Но коммуникация в команде деградировала полностью.

Осень: договор закончился, результата — нет
К моменту окончания контракта было реализовано менее половины заявленного в ТЗ. Время ушло, проект висел, команда демотивирована, а Jira-отчёты стали заменой реальной работе. «Архитектор» даже решила «слить» инсайды, в том числе — любимую книгу менеджера: «7 навыков высокоэффективных людей». Ожидание и реальность.
Новый год и повторный виток
После новогоднего перерыва попытки инициировать конфликт стали инструментом управления. Один из эпизодов — попытка передачи претензий в HR от имени менеджера, которая рассыпалась при проверке. Работа не остановилась, но степень доверия в команде упала до нуля.
Что работает — архитектура
Несмотря на весь управленческий хаос, техническая часть живёт:
- 2 инстанса ManageIQ
- Прод и пре-прод окружение
- Подключение к oVirt (3 провайдера), vCenter
- 5000+ ВМ
- Automation Engine, LDAP, AWX, Netbox
- Клиентский портал на Laravel + Vue.js, интеграция с MIQ API и Netbox API
- Использование Service Dialogs и каталогов
Платформа эксплуатируется, пользователи работают, инфраструктура поддерживается.
Выводы
- Можно построить рабочее частное облако на ManageIQ, если знаешь, что делаешь.
- Один токсичный и некомпетентный участник может уничтожить весь процесс — особенно если это менеджер.
- Слабую команду не спасает даже хороший бюджет.
- HR может быть инструментом давления, если процесс — не прозрачный, а вы пренебрегаете тем, что можете и должны отстаивать свои права.
Хотите повторить?

Подумайте трижды. Это путь для тех, кто не боится совмещать разработку, администрирование, управление проектом и диплом по прикладной психологии. Но если вы справитесь — получите уникальный опыт и результат, который работает.