Back to projects2022—2024

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
Server infrastructure. Illustration.

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

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.

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.

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.

Valentin Alekhin — websites and services for business · alekhin.dev