Главное о кейсе
Долгое время клиенты компании могли управлять облачными решениями, реализованными через «Инферит Облако» с использованием Open-source решения Horizon в Openstack. Это было не вполне удобно, так как интерфейс нельзя было забрендировать или добавить в него новые облачные продукты.
Команда «Инферит» предложила нам помочь с разработкой простого и понятного инструмента, с помощью которого клиенты компании через личный кабинет смогут управлять виртуальными машинами, сетями и другими облачными продуктами, даже не имея специальных знаний и навыков.
Как проект изменил жизнь пользователей
Проект был уникален благодаря интеграции с OpenStack и работе с облаком. Мы столкнулись с рядом технических вызовов, включая необходимость работы с сырыми данными и оптимизации кеширования. Но несмотря на это, справились с поставленными задачами и смогли сделать систему более быстрой и стабильной.
***
For a long time, the company's customers could manage cloud solutions implemented through Inferit Cloud using Horizon's open-source solution in Openstack. It was not good enough, as the interface could not be branded or new cloud products could not be added to it.
The Inferit team suggested that we develop a simple tool for their customers to manage virtual machines, networks and other cloud products through personal accounts, even without special knowledge and skills.
Бизнес-задача и ее решение
Задачи:
- Создать брендированный и удобный личный кабинет вместо веб-интерфейса OpenStack Horizon.
- Сократить задержки при взаимодействии с OpenStack.
- Создать такую структуру системы, чтобы команда проекта могла легко добавлять в нее новые продукты.
- Разработать и реализовать тарификацию внутри личного кабинета, а также интегрировать ее с биллингом «Инферит Облака».
***
Objectives:
Develop an intuitive and customized interface for cloud product management.
Reduce delays in OpenStack interactions.
Introduce billing and pricing integration.
Крафт (мастерство), реализация, технические детали
Решение:
1. Технологическая база и интеграция
Фронтовая часть личного кабинета была реализована на базе TypeScript и React, а в бэкенд-части использовали Python и фреймворк Django. Эти технологии позволили построить масштабируемую архитектуру с гибкой интеграцией.
2. Основные функции кабинета в текущей версии
- Создание и управление виртуальными машинами. Теперь пользователи могут создавать новые виртуальные машины, выбирать конфигурации — операционные системы и диски — и управлять ими через интуитивно понятный интерфейс.
- Управление сетями. Функция управления сетями стала одной из самых сложных фич проекта. С ее помощью пользователи объединяют виртуальные машины в сети и управляют их конфигурациями.
- Загрузка образов и управление ими. Система позволяет пользователям загружать собственные образы виртуальных машин и использовать их для создания новых серверов. Это обеспечивает гибкость для различных сценариев использования.
- Мониторинг виртуальных машин. По виртуальным машинам можно просмотреть удобные графики по выбранным параметрам — например, память, загрузка процессора, дисков и т. д.
- Информация о потребляемых ресурсах. Вместе с командой «Инферит Облака» мы разработали фичи для тарификации и расчета стоимости продуктов. Расчет происходит автоматически при добавлении ресурсов. В личном кабинете доступна детализация расходов.
- Отслеживание баланса проекта. В кабинете администратора есть возможность отслеживать приобретенные продукты и затраты на их использование за всё время.
***
Solutions:
Technologies and Architecture:
Frontend: TypeScript, React; Backend: Python, Django.
Scalable architecture to accommodate new features.
Data caching and asynchronous API (Celery) for faster performance.
Key Features:
Management of virtual machines and networks.
Uploading and using custom machine images.
Resource monitoring with detailed usage charts.
Automated cost calculation and expense tracking.
Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком
Результаты:
Удобство для пользователей
Разработанный личный кабинет упростил взаимодействие с облаком. Теперь пользователи могут легко создавать и настраивать виртуальные машины и сети через интуитивно понятный интерфейс — вопреки сложности OpenStack.
Улучшенная оптимизация и производительность
Многие действия, которые были реализованы с интеграций с OpenStack, занимали слишком много времени. Чтобы это исправить, мы предприняли следующие шаги:
1) Кеширование данных и дублирование сущностей OpenStack в собственной базе данных для ускорения обработки запросов.
2) Добавление значительной доли асинхронного API. Мы решили вынести все «тяжелые» задачи в асинхронные таски на базе Celery, а затем создали к нему понятную абстракцию, чтобы клиент в виде фронта всегда мог одинаково работать с любыми асинхронными вызовами API.
Гибкость и масштабируемость
Архитектура системы позволяет легко добавлять новые функции и адаптировать проект для различных нужд клиентов.
***
Results:
Users gained an intuitive tool for managing cloud services.
Performance improved via caching and asynchronous API.
The system is flexible and scalable for future enhancements.
Скриншоты