Управление ресурсами ГосОблака
ФГИС «Управление ГЕОП»
Заявки, договоры и контроль потребления облачных ресурсов для государственных информационных систем.
ФГИС «Управление государственной единой облачной платформой» связывает потребность ведомства в вычислительных ресурсах с согласованием, договором и предоставлением услуг. Государственный заказчик — Минцифры России.
Система используется для управления ГосОблаком: сотрудники ведомств запрашивают ресурсы для своих информационных систем, поставщики оформляют услуги, а регулятор согласует потребности и контролирует их использование.
- Задача
- Связать в одном рабочем процессе заявки ведомств, условия договоров, инфраструктуру и фактическое потребление облачных услуг.
- Что сделано
- Автоматизация согласований на Zeebe, микросервисы и единые правила обмена данными, связанные с личным кабинетом, учётом ресурсов и аналитикой.
- Результат
- Потребность проходит согласование и становится основой для заказа. Участники видят состояние заявки, согласованные объёмы и данные об использовании ресурсов.
Моя роль
Проектировал микросервисную архитектуру и разрабатывал сервисы на Node.js и NestJS. Писал код серверных сервисов, интеграций и интерфейсов личного кабинета. Отвечал за автоматизацию бизнес-процессов на Zeebe и микросервис договоров, поддерживал общую библиотеку сервисов.
- Состав работ
- Архитектура / Микросервисы / Бизнес-процессы / Интерфейсы
- Период
- 2022—2024
- Статус
- Участие завершено
Стек
- NestJS
- TypeScript
- Zeebe
- gRPC
- Vue
- Nuxt
- PostgreSQL
- ClickHouse
- Cube.js
- RabbitMQ
Серверный коридор как визуальный образ облачной инфраструктуры, ресурсами которой управляет ФГИСУ.
Кому и зачем нужна система
За облачными ресурсами стоят государственные информационные системы, бюджеты и договорные обязательства. Нужно понимать, кто запросил вычислительные мощности, на каких условиях их предоставляют и как они расходуются. Система объединяет эти сведения и рабочие процессы.
Ведомство-потребитель
Описывает потребность своей информационной системы: вычислительные мощности, хранение и другие услуги. Отслеживает согласование, заказы и потребление.
Поставщик ресурсов
Работает с услугами, условиями договоров и заказами. Сопоставляет запрошенные объёмы с доступной инфраструктурой.
Регулятор и аналитик
Проверяют потребности, участвуют в согласовании и анализируют использование ресурсов. Отчёты помогают сопоставить заказанные и фактически потребляемые объёмы.
От заявки до контроля потребления
Ведомству нужны дополнительные ресурсы для своей информационной системы. Оно формирует заявку, согласует её состав, затем на основе утверждённых объёмов готовят заказы. После предоставления услуг система помогает следить за их использованием. Нажмите на этап, чтобы увидеть подробности.
Выберите блок, чтобы узнать его роль. С клавиатуры: Tab, затем Enter; Escape закрывает описание.
Ведомству нужны дополнительные ресурсы для своей информационной системы. Оно формирует заявку, согласует её состав, затем на основе утверждённых объёмов готовят заказы. После предоставления услуг система помогает следить за их использованием. Нажмите на этап, чтобы увидеть подробности.
- Описать потребность
Система, ресурсы и объёмы
- Согласовать
Решения участников и доработка
- Связать с заказом
Утверждённые ресурсы и договор
- Контролировать
Учёт, потребление и отчёты
Пример списка заявок с фильтрами, информационной системой, потребителем и статусом согласования. Конфиденциальные данные заказчика не используются.
Мой вклад
Проектировал взаимодействие микросервисов и реализовывал его в коде. Основная зона ответственности — автоматизация бизнес-процессов на Zeebe, сервис договоров и общая библиотека сервисов; также разрабатывал заявки, учёт ресурсов, отчётность и интерфейсы личного кабинета.
Zeebe и бизнес-процессы
Разрабатывал интеграцию с Zeebe, схемы бизнес-процессов и обработчики задач. Связывал согласования, возвраты на доработку, напоминания и переходы между этапами с действиями в личном кабинете.
Микросервис договоров
Разрабатывал договорный микросервис и его интеграции: услуги и цены, ограничения объёмов, доступ потребителей, вложения, счета и условия качества обслуживания.
Общая библиотека сервисов
Вёл поддержку общей библиотеки: обмен данными между сервисами, структуры данных, проверки доступа и интеграция с Zeebe. Общие модули использовались разными сервисами системы.
Заявки и учёт ресурсов
Разрабатывал сервис заявок и его процессы. Дорабатывал базу учёта инфраструктуры (CMDB): версии состава заявки, согласованные ресурсы и привязку объёмов к заказам. Работал с процессами технической поддержки.
Личный кабинет и интеграции
Дорабатывал портал Nuxt/Vue: главный экран с учётом роли пользователя, прогноз потребления и техническую поддержку. Развивал единую точку входа для запросов интерфейса (API-шлюз) и обмен данными с сервисами.
Отчёты и документы
Работал с отчётными сервисами, моделями Cube.js и интерфейсом конструктора отчётов, учётом ИТ-ресурсов органов государственной власти. Дорабатывал генерацию документов, файловое хранилище и журнал изменений.
Микросервисы с понятной зоной ответственности
Личный кабинет отправляет запросы в единую точку входа — API-шлюз. Сервисы на Node.js и NestJS отвечают за заявки, ресурсы и договоры, а Zeebe управляет согласованиями и задачами участников. Выберите блок на схеме, чтобы узнать его роль.
Выберите блок, чтобы узнать его роль. С клавиатуры: Tab, затем Enter; Escape закрывает описание.
Личный кабинет отправляет запросы в единую точку входа — API-шлюз. Сервисы на Node.js и NestJS отвечают за заявки, ресурсы и договоры, а Zeebe управляет согласованиями и задачами участников. Выберите блок на схеме, чтобы узнать его роль.
- Личный кабинет
Потребитель, поставщик, регулятор
- API-шлюз
Единая точка входа
- Заявки
Потребности и согласования
- Ресурсы
Инфраструктура и объёмы
- Договоры
Услуги, условия и заказы
- Процессы
Согласования и задачи
- Аналитика
Потребление и прогнозы
- Документы
Формы и вложения
Основные компоненты и их взаимодействие.
Сложность — в согласованности
В одной заявке встречаются интересы ведомства, поставщика и регулятора. Пока идёт согласование, состав ресурсов может меняться. Важно сохранить утверждённую версию, дать каждому участнику нужные действия и передать в заказ именно согласованные объёмы.
Версии потребности
Новый состав заявки не должен подменять уже согласованный. Сохранённые версии связывают решения участников с конкретным набором ресурсов.
Роли и доступ
Потребитель, поставщик и регулятор работают с одной заявкой, но видят разные действия. Проверки доступа действуют и в интерфейсе, и на сервере.
Долгие согласования
Процесс ждёт решения человека, возвращает заявку на доработку и продолжает выполнение после ответа. Zeebe хранит состояние и выдаёт задачи обработчикам.
Связь с заказами
Заявка, выбранные ресурсы, услуги и заказ связаны между собой. Журнал изменений помогает проследить действия, а уведомления сообщают участникам о событиях.
Пример карточки потребности: состав ресурсов, участники согласования и связь с заказом. Все значения приведены для иллюстрации сценария.
Заказанные ресурсы и реальное потребление
После согласования работа продолжается: важно видеть, как используются предоставленные мощности. Аналитический контур объединяет данные учёта и метрики, поддерживает отчёты и прогноз потребления. Конструктор позволяет выбирать показатели, группировки и фильтры, а генератор документов готовит печатные формы и выгрузки.
Пример представления заказанных и используемых ресурсов. Числа и графики иллюстрируют сценарий и не отражают показатели действующей системы.
Технические детали
Серверная часть — Node.js, NestJS и TypeScript. API-шлюз принимает запросы интерфейса и направляет их в нужный микросервис. Сервисы обмениваются данными через gRPC — протокол, позволяющий одному сервису вызывать функции другого. Общая библиотека сервисов содержит структуры данных, модули обмена данными и проверки доступа.
Zeebe управляет согласованиями и долгими бизнес-процессами: ставит задачи, ждёт решения участников и переводит заявку на следующий этап. RabbitMQ и WebSocket доставляют уведомления, чтобы изменения были видны в личном кабинете.
Nuxt и Vue — личный кабинет; PostgreSQL — бизнес-данные; ClickHouse и Cube.js — аналитика и прогнозы. Отдельные сервисы формируют документы и работают с файлами в MinIO/S3.
Обсудим вашу задачу?
Расскажите, что нужно сделать: сайт, магазин, сервис или автоматизацию работы.