Government cloud resource management
ФГИС «Управление ГЕОП»
Requests, contracts and cloud resource consumption tracking for government information systems.
The federal information system “Management of the Unified State Cloud Platform” connects an agency’s computing needs with approvals, contracts and service provision. The government customer is Russia’s Ministry of Digital Development, Communications and Mass Media.
The system manages the government cloud: agencies request resources for their information systems, suppliers manage service provision, and the regulator reviews requirements and monitors usage.
- Task
- Connect agency requests, contract terms, infrastructure and actual cloud service consumption within a shared workflow.
- What I built
- Approval automation with Zeebe, microservices and shared rules for exchanging data, connected to account interfaces, resource records and analytics.
- Result
- A resource requirement passes through approval and becomes the basis for an order. Participants can track its status, agreed volumes and resource usage.
My role
Designed the microservice architecture and developed services with Node.js and NestJS. Wrote code for backend services, integrations and account interfaces. Responsible for business process automation with Zeebe and the contract microservice; maintained a shared service library.
- Scope
- Architecture / Microservices / Business processes / Interfaces
- Period
- 2022—2024
- Status
- Contribution completed
Stack
- NestJS
- TypeScript
- Zeebe
- gRPC
- Vue
- Nuxt
- PostgreSQL
- ClickHouse
- Cube.js
- RabbitMQ
A server aisle represents the cloud infrastructure whose resources FGISU manages.
Who uses the system and why
Cloud resources support government information systems, budgets and contractual obligations. Participants need to know who requested computing capacity, the terms of provision and how it is used. The system brings these records and workflows together.
Consumer agency
Defines its information system’s computing, storage and other service requirements. Tracks approvals, orders and consumption.
Resource supplier
Works with services, contract terms and orders. Matches requested volumes to available infrastructure.
Regulator and analyst
Review requirements, take part in approvals and analyse resource usage. Reports help compare ordered volumes with actual consumption.
From a request to consumption tracking
An agency needs additional resources for its information system. It submits a request and agrees its contents; the approved volumes then form the basis for orders. After services are provided, the system helps track usage. Select a step for details.
Select a block to learn its role. Keyboard: Tab, then Enter; Escape closes the description.
An agency needs additional resources for its information system. It submits a request and agrees its contents; the approved volumes then form the basis for orders. After services are provided, the system helps track usage. Select a step for details.
- Define requirements
System, resources and volumes
- Approve
Decisions and revisions
- Link to an order
Agreed resources and contract
- Monitor
Records, consumption and reports
Example request list with filters, information systems, consumers and approval statuses. No confidential customer data is used.
My contribution
Designed microservice interactions and implemented them in code. My main responsibilities were business process automation with Zeebe, the contract service and a shared service library. I also developed requests, resource records, reporting and account interfaces.
Zeebe and business processes
Developed the Zeebe integration, business process diagrams and task handlers. Connected approvals, revision requests, reminders and stage transitions to actions in the account interface.
Contract microservice
Developed the contract microservice and its integrations: services and pricing, volume limits, consumer access, attachments, invoices and service quality terms.
Shared service library
Maintained the shared library: data exchange between services, data structures, access checks and Zeebe integration. Shared modules were used across the system’s services.
Requests and resource records
Developed the request service and its processes. Extended the infrastructure inventory (CMDB): request versions, approved resource sets and links between volumes and orders. Worked on technical support processes.
Account interfaces and integrations
Extended the Nuxt/Vue portal’s account overview for each user role, consumption forecasts and technical support. Developed the shared entry point for interface requests (API gateway) and data exchange with services.
Reports and documents
Worked on reporting services, Cube.js models, the report builder interface and government agency IT resource records. Extended document generation, file storage and the change log.
Microservices with clear responsibilities
The account interface sends requests to a shared entry point: the API gateway. Node.js and NestJS services handle requests, resources and contracts, while Zeebe manages approvals and participants’ tasks. Select a block to learn its role.
Select a block to learn its role. Keyboard: Tab, then Enter; Escape closes the description.
The account interface sends requests to a shared entry point: the API gateway. Node.js and NestJS services handle requests, resources and contracts, while Zeebe manages approvals and participants’ tasks. Select a block to learn its role.
- Account interface
Consumer, supplier, regulator
- API gateway
Shared entry point
- Requests
Requirements and approvals
- Resources
Infrastructure and volumes
- Contracts
Services, terms and orders
- Processes
Approvals and tasks
- Analytics
Consumption and forecasts
- Documents
Forms and attachments
Main components and their interactions.
Keeping decisions and resources consistent
A single request brings together the agency, supplier and regulator. Resource requirements can change during approval. The system needs to preserve the agreed version, offer each participant the right actions and carry the approved volumes into the order.
Requirement versions
Revised requirements must preserve the approved resource set. Saved versions connect participants’ decisions to specific resources.
Roles and access
Consumers, suppliers and regulators work with the same request but have different actions available. Access checks apply in the interface and on the server.
Long-running approvals
A process waits for a human decision, returns a request for revision and resumes after a response. Zeebe stores its state and assigns work to task handlers.
Connection to orders
Requests, selected resources, services and orders are linked. The change log records actions, while notifications keep participants informed.
Example resource requirement with its contents, approval participants and order link. All values illustrate the workflow.
Ordered resources and actual consumption
Work continues after approval: participants need to see how the supplied capacity is used. Analytics combines resource records and metrics for reports and consumption forecasts. The report builder offers measures, groupings and filters; the document generator produces forms and exports.
Example comparison of ordered and consumed resources. Figures and charts illustrate a workflow and do not represent operational system metrics.
Technical details
The backend uses Node.js, NestJS and TypeScript. The API gateway accepts interface requests and routes them to the appropriate microservice. Services exchange data through gRPC, a protocol that lets one service call functions in another. A shared service library provides data structures, data exchange modules and access checks.
Zeebe manages approvals and long-running business processes: assigns tasks, waits for decisions and moves requests to the next stage. RabbitMQ and WebSocket deliver notifications so participants can see changes in their accounts.
Nuxt and Vue power account interfaces; PostgreSQL stores business data; ClickHouse and Cube.js serve analytics and forecasts. Separate services generate documents and handle files in MinIO/S3.
Let’s discuss your project
Tell me what you need: a website, store, service or workflow automation.