Данный обзор включает в себя описание ключевых улучшений релиза CloudStack-UI версии 1.411.29. Основные усилия команды в этой итерации были сконцентрированы на создании нового плагина Resource Limits Management, который позволяет администраторам и пользователям управлять ограничениями ресурсов через интерфейс. Также, мы улучшили работу UI-плагина Log View и таких компонентов интерфейса, как управление снимками, управление настройками UI и ключами API, отображение уведомлений об ошибках, управление группами безопасности виртуальной машины, исправили ряд ошибок в работе плагина Pulse и всей системы в целом. Подробнее о проделанной работе читайте ниже.
Плагин Resource Limits Management
В новой версии продукта мы представили UI-плагин, Resource Limits Management, который дает возможность администраторам домена управлять квотами ресурсов аккаунтов, а пользователям, заказывать увеличение или уменьшение доступных в рамках аккаунта ресурсов.
Плагин предназначен для самостоятельного заказа или освобождения ресурсов аккаунта самим пользователем в облаках, в которых тарификация обеспечивается на основании заказанной квоты ресурсов аккаунта.
Возможности плагина позволяют пользователям самостоятельно запросить или освободить ресурсы аккаунта без обращения к администратору. При этом бизнес-правила обработки запроса реализуются на бэкенд-части и полностью отделены от приложения.
Плагин использует разработанный нашей командой бэкенд-плагин CloudStack - µAPI Gateway - с помощью которого разработчики могут создавать расширения для CloudStack, используя любой язык программирования, и эти расширения становятся доступны через дополнительные вызовы API CloudStack.
Реализация дополнительных API выполнена с помощью микро-сервиса Resource Limits Management, реализованного на Node.
Плагин разработан, в первую очередь для нужд нашего клиента и по-умолчанию отключен. Бэкенд-сервисы, необходимые для работы расширения (µAPI Gateway, Resource Limits Management) и модуль принятия решения на основе бизнес-правила не опубликованы под открытыми лицензиями.
Управление квотами ресурсов администратором домена. После активации плагина администратору домена доступен раздел “Квоты ресурсов” в меню “Аккаунты”. Здесь можно просматривать и задавать минимальное и максимальное значения для всех типов ресурсов.
Квоты задаются для всех аккаунтов в домене.
Изменение лимитов ресурсов пользователем. После активации плагина у пользователя появляется возможность управлять ограничениями доступных ресурсов аккаунта через UI. Если пользователю не хватает выделенных ресурсов, он может добавить их. Если же было выделено больше ресурсов, чем пользователь фактически использует, он может уменьшить лимиты.
Для изменения ограничений в панели ресурсов раздела “Виртуальные машины” доступна кнопка “Запросить ресурсы”. При нажатии на нее открывается модальное окно, в котором пользователь редактирует значения.
Редактирование ограничений доступно в пределах тех квот, которые установил администратор. Они отображаются на шкалах.
Улучшения безопасности публикации журналов ВМ
Для обеспечения большей безопасности, в бэкенд-модуль Log View внесены изменения, которые для публикации записей журналов требуют передачи не только UUID-а машины, но и секретного ключа, который может быть заново сгенерирован в случае компрометации.
В новой версии продукта команда реализовала изменения, которые необходимы для корректной работы UI в рамках вышеописанных изменений бэкенд-плагина LogView.
В контекстном меню управления виртуальной машиной доступна опция ВМ через опцию “Системные журналы”. Эта опция доступна при включенном плагине Log View. Она позволяет создать новый или аннулировать действующий токен.
Токен создается автоматически и отображается в модальном окне. Пользователь может перейти по ссылке к документации плагина, чтобы подробнее узнать как настроить публикацию записей системных журналов внутри ВМ для экспорта в CloudStack.
При угрозе компрометации токен можно изменить. Для этого действующий токен следует аннулировать через контекстное меню, чтобы заблокировать публикацию журналов машины по нему. Затем следует создать новый токен и выполнить перенастройку сервиса экспорта записей журналов (Filebeat) в ВМ.
Улучшения в управлении снимками
В разделе управления снимками реализованы следующие возможности и ограничения:
Фильтрация снимков дисков по ВМ. В подразделе снимков дисков стало проще найти снимки конкретной машины благодаря тому, что реализована фильтрация списка по виртуальным машинам.
Управление снимками ВМ из панели деталей ВМ. В правой панели деталей виртуальной машины добавлена секция “Снимки ВМ”. Здесь пользователь может просматривать информацию о последнем созданном снимке ВМ, а также полный список снимков машины, и управлять ими - создавать новые, возвращать машину к снимку, удалять снимки.
В случае, если текущее вычислительное предложение машины или его параметры отличаются от тех, что использовались в момент создания снимка, при попытке вернуть ВМ к снимку пользователь увидит предупреждение:
Управление ограничениями на количество снимков машин. Мы реализовали возможность задать максимальное количество снимков машины через конфигурационный файл config.json
. Подробнее о настройке см. руководство по конфигурациям. Если указанный лимит исчерпан, при очередной попытке создать снимок ВМ пользователь увидит оповещение:
Ограничения на управление дисками и снимками машин с активными снимками ВМ. Для машин с активными снимками ВМ существуют ограничения на управление дисками: CloudStack не позволяет присоединять диски к ВМ или отсоединять их, изменять размер присоединенных дисков, удалять их. Также, если машина остановлена, нельзя вернуть машину к состоянию снимка или создать для нее новый снимок. Мы добавили информативные уведомления, чтобы сообщить пользователю о причине, по которой действие недоступно, например:
Доступ к управлению виртуальной машиной сразу после создания ВМ
Для удобства работы с машиной, мы предоставили пользователю возможность получить доступ к ВМ с помощью помощников доступа и начать работать с ней сразу после развертывания. Теперь, как только ВМ выделена, в модальном окне, где отображается информация о созданной ВМ, доступна кнопка, позволяющая открыть диалоговое окно доступа к управлению ВМ через помощники доступа. Для работы помощников доступа к машине, в шаблоне, из которого развернута машина, или в настройках самой машины должны быть заданы специальные теги. Данные теги определяют вид и содержимое диалога помощников. В настоящий момент мы поддерживаем три типа помощников - для доступа через консоль VNC, по SSH и HTTP(S).
Подробная информация о настройке помощников доступа к ВМ представлена на странице wiki в репозитории проекта.
Улучшение раздела “Настройки”
Раздел “Настройки” стал более компактным и удобным для пользователя. Вместо единого списка, который был раньше, мы разместили настройки в отдельных подразделах:
Пользователю доступен переключатель вверху экрана, с помощью которого он может быстро найти интересующую его настройку.
Управление тегами аккаунта и пользователя. Мы реализовали возможность управления тегами аккаунта и пользователя через раздел “Настройки”. В подразделах “Теги аккаунта” и “Теги пользователя” можно создавать новые системные и несистемные теги, просматривать теги и управлять ими. Как и в любой вкладке “Теги” панели деталей, здесь также есть инструмент поиска, который позволяет быстро найти необходимый тег в списке, и опция “Показывать системные теги”, которая позволяет отображать или прятать системные теги в списке, чтобы избежать возможных нежелательных изменений, влияющих на поведение интерфейса.
Поддержка автоматической генерации ключей API
Для использования CloudStack API необходимо создать ключи API через контекстное меню управления пользователем в разделе “Аккаунты”. Теперь эту процедуру можно автоматизировать. Мы реализовали поддержку автоматической генерации ключей API при первом входе пользователя в интерфейс. Чтобы включить автогенерацию ключей, необходимо активировать специальную настройку в конфигурационном файле. После подключения функции, для новых пользователей, не имеющих ключей, ключ API и секретный ключ будут создаваться автоматически при первом входе в систему. Пользователь увидит оповещение об этом. Сгенерированные ключи можно просматривать и копировать в панели деталей аккаунта.
Изменить ключи можно в разделе “Настройки - Конфигурация API”.
Информация о технической поддержке в уведомлениях об ошибках
Мы улучшили отображение уведомлений об ошибках и реализовали возможность отображения контактной информации технической службы рядом с текстом ошибки в секции “Информация о технической поддержке”. Кликом на нее можно раскрыть секцию и получить данные службы поддержки, например, контакты системного администратора.
Информация в секции отображается из файла /src/support-info.md
, содержание которого определяется пользователем. Поддерживается локализация файла. Подробнее читайте в руководстве пользователя.
Просмотр журнала запросов к API при возникновении ошибки создания ВМ
Мы реализовали возможность просматривать и копировать подробную информацию об ошибке в случае сбоя при создании машины. Если создание машины завершилось ошибкой, в диалоговом окне создания ВМ пользователь увидит текст ошибки и кнопку “Детали”. Кликом на кнопку открывается окно, где отображаются запросы к серверу в формате JSON и ответы сервера. Пользователь может скопировать детали ошибки и предоставить их службе поддержки для быстрого анализа проблемы.
Поддержка UserData для виртуальной машины
Мы реализовали возможность задать параметр UserData для виртуальной машины при ее создании и после. Для этого в форме создания машины появилась специальная вкладка “UserData ВМ”, где в текстовом блоке можно добавить данные в любом формате:
В панели деталей ВМ можно просмотреть, скопировать и редактировать UserData:
Добавление пользовательских скриптов
В новой версии интерфейса стало возможным расширить функциональность UI необходимым для пользователя образом с помощью добавления пользовательских скриптов. Так, например, пользовательские скрипты позволяют подключить виджеты JivoSite или Google Analytics, или другие интерактивные элементы:
Интеграция пользовательских скриптов JavaScript производится при запуске Docker-контейнера с приложением. Пользователю достаточно определить содержимое файла /scripts/custom.js
и отобразить его через Docker-volume.
По умолчанию, файл /scripts/custom.js
пустой.
Улучшение в управлении группами безопасности
Виртуальная машина может принадлежать нескольким группам безопасности. Мы улучшили управление группами безопасности через интерфейс, и во вкладке “Сети” панели деталей ВМ появилась возможность добавлять машину к нескольким группам безопасности, удалять машину из группы, а также просматривать и редактировать правила группы безопасности.
Обновление Angular
Angular и зависимости обновлены до версии 7. Это позволило применить улучшения, реализованные в новой версии, что положительно повлияло на скорость работы системы.
Исправление ошибок (Bug fixes)
В ходе итерации команда выполнила ряд задач по исправлению ошибок в интерфейсе. Наиболее значительные исправления коснулись следующих компонентов CloudStack-UI:
- Форма авторизации в системе;
- Создание и управление аккаунтами;
- Создание виртуальной машины;
- Выбор дискового предложения;
- Выбор группы безопасности при создании машины;
- Раздел снимков виртуальных машин;
- Управление тегами машины;
- Функционал помощников доступа к машине;
- Автоматическое сохранение пароля машины;
- Плагины Pulse, Resource Limits Management, Log View;
- Панель уведомлений о недавних действиях;
- Панель использования ресурсов.
Информация о развертывании
Релиз находится на странице релизов GitHub: https://github.com/bwsw/cloudstack-ui/releases/tag/1.411.29.
Подготовленный образ Docker выложен в репозиторий DockerRegistry. Для скачивания образа можно воспользоваться следующей командой:
docker pull bitworks.software:8443/cloudstack-ui:1.411.29
Список изменений проекта: https://github.com/bwsw/cloudstack-ui/blob/master/CHANGELOG.md.
Инструкция по развертыванию продукта находится на страницах GitHub: https://bwsw.github.io/cloudstack-ui/.
Ожидания относительно релиза 1.411.30
Ключевые изменения и улучшения, ожидаемые в следующем релизе:
- Улучшения управления группами безопасности.
- Улучшения основного меню слева.
- Поддержка передачи логина, пароля и домена через адресную строку браузера.
Обращение к сообществу
Уважаемый участник сообщества, мы будем благодарны если Вы:
- Попробуете проект и дадите нам обратную связь;
- Поделитесь информацией о проекте и релизе в социальных сетях;
- Поставите звезду репозиторию GitHub в знак поддержки проекта;
- Вступите в группу в сети LinkedIn.