Учет ресурсов является важной задачей для большинства облачных сред. На основе данных учета компании выставляют клиентам счета. Система учета ресурсов должна быть реализована точно и надежно, чтобы избежать ошибок в подсчетах, ведущих к неправильному выставлению счетов клиентам. Также, система учета ресурсов должна быть высокопроизводительной для возможности обработки большого количества ресурсов облака. Аспект производительности и точности критичен для больших облачных сред, в которых производится автоматическое распределение и освобождение ресурсов по запросу.
Также очень важен аспект отслеживания перерасхода ресурсов, так как в динамических средах пользователи могут превышать свои финансовые лимиты, если учет ресурсов производится с задержкой.
На сегодня в стандартной конфигурации CloudStack нет поддержки учета ресурсов, работающего эффективно при интенсивных нагрузках. Кроме того, в реализации применяется архитектура, которая не подходит для учета ресурсов с малой задержкой.
Решение
Для решения данной проблемы мы разработали фреймворк учета ресурсов, созданный с использованием совершенно иных подходов, которые реализуют лучший опыт для обеспечения производительности, оперативности, надежности и точности. Фреймворк обеспечивает поминутный учет задействованных ресурсов. Он подходит как для учета ресурсов CloudStack, так и внешних ресурсов сторонних приложений.
Архитектура платформы
Реализация Event Sourcing
Сервис учета подсчитывает ресурсы, как только CloudStack или стороннее приложение генерирует связанные с ресурсами события. Для этого сервис использует шину событий Apache Kafka. Данный подход делает учет ресурсов высокоэффективным и требует небольшого количества вычислительных ресурсов.
Реализованный с использованием архитектурного подхода CQRS/Event Sourcing, сервис учета ресурсов гарантирует воспроизводимость результатов подсчета и может применяться в режиме дублирования для обеспечения отказоустойчивости.
Транзакционный учет ресурсов
Данные учета сохраняются в хранилище RocksDB, которое поддерживает атомарные операции пакетной записи. Вместе с функциями Kafka, это позволяет реализовать транзакционный подход к учету ресурсов, что гарантирует однозначность и повторяемость результата учета.
Низкое значение задержки
RocksDB поддерживает создание снимков, реализованное очень эффективно, благодаря CoW-архитектуре хранилища RocksDB. Благодаря этому, сервис может выполнять учет с нужной частотой – на сегодня мы решили, что поминутный учет является достаточно детальным для практического применения.
Результат
Решение позволяет владельцам облака использовать поминутный учет ресурсов CloudStack и сторонних приложений. Сервис является middleware-решением, которое, при интеграции с существующей системой биллинга и отчетности, позволяет производить высокочастотный учет ресурсов и предоставлять результаты практически без задержки, используя небольшое количество ресурсов. Это позволяет операторам внедрить биллинг по фактически использованным ресурсам, и избегать ситуаций, когда пользователь производит операции, не имея на это бюджета.
Лицензирование
Сервис аккаунтинга лицензируется в рамках интеграционного проекта для конкретного облака. Проект включает модификацию для конкретной модели биллинга, систем биллинга и отчетности.
Для расчета стоимости, а также для получения доступа к демонстрационной версии сервиса свяжитесь с нами с помощью формы внизу или напишите по адресу cloudstack@bitworks.software.