Так уже получилось, что очень хотелось запустить облако, но при этом иметь возможность продавать ресурсы. В качестве облачного ПО я выбрал OpenNebula. Ставиться быстро и настраивается легко. Конечно поднимал в тестовом варианте и прикрутил Ceph хранилище на 1.8Трб. Оставалось дело за малым — найти биллинг для OpenNebula. Поиск не давал вполне вменяемых решений и поэтому было решено — писать самому. Т.к. у меня уже есть опыт работы с биллинговой системой IspSystem BillingManager 5 — то решено было взять его за основу.
Естественно, что модуль пишется для себя, но почему бы потом не продавать модуль ?! Поэтому встал вопрос — на чем писать, конечно же на том, что знаешь — на момент разработки это Php. Php был выбран из соображения — язык знаю — и необходимо понять как работать с OpenNebula через XML RPC. Alpha версия уже готова и проходит обкатку — локальную. Изначально была концепция такая —
Пользователь в биллинге может выбрать шаблон ОС и выбрать такие параметры, как CPU, vCPU, MEM, HDD, IP(кол-во IP), возможность добавления еще одной NIC. Все эти параметры привязывались, как к самой VM так и аккаунту юзера.
На данный момент я немного поменял концепцию — пользователь покупает ресурсы (см.картинку). и данные ресурсы уже накладываются на пользователя. После чего пользователь в рамках этих ресурсов будет создавать VM.
На сегодня модуль может:
Создание пользователя и создание VM (если выбран шаблон ОС)
Выставлять ограничения на пользователя (и применять изменения в ресурсах)
Отключать VM и пользователя
Удалять VM и пользователя
В планах на 2016:
Возможность выбора DataStore (SAS, SATA, SSD) при создании и добавлении нового жесткого диска
Возможность выбора VDC (virtual data center) или Кластера
…..
В планах на 2016-2017:
SaaS решение — пользователь может покупать пулы ресурсов (Сервера, Сети и тп и тд)
Перенос на Си