«Госуслуги» как кейс для ВКР: интеграция реестров, REST API и метрики SLA
Поддомен статьи: Backend/Frontend (интеграция государственных информационных систем)
Роль эксперта: Архитектор ПО
Выбранная схема структуры: B
Введение
Минцифры отчиталось: в 2025 году через «Госуслуги» зарегистрировали рождение 434 тыс. детей — почти каждый третий новорождённый в стране получил документы без визита в ЗАГС. За этой цифрой стоит не «красивый портал», а тяжёлая инженерная работа: онлайн-обмен данными между медицинскими организациями, ЗАГС, СФР и ФНС, защита персональных данных, отказоустойчивость и предсказуемое время отклика. Для выпускника ИТ-специальности это готовая модель защищаемой ВКР: тут есть и предметная область, и метрики, и архитектура. Ниже — как превратить новость в дипломную работу, которую не стыдно защитить и легко защитить по существу.
Основная часть: от реестров до SLA
Три темы ВКР, которые вырастают из кейса «Госуслуг»
Кейс универсален: он подходит и для чистой разработки, и для аналитики, и для тестирования. Выберите то, что ближе к вашей кафедре.
| Тема | Актуальность (отсылка к статье) | Цель | Задачи | Структура |
|---|---|---|---|---|
| Сервис подачи заявления на регистрацию рождения | 434 тыс. заявлений за год — это реальная нагрузка и реальные требования к надёжности. | Спроектировать и реализовать REST-сервис приёма заявлений с интеграцией в ЕСИА. | 1) Проанализировать процессы ЗАГС. 2) Спроектировать API по OpenAPI 3.1. 3) Реализовать сервис с идемпотентностью. 4) Провести нагрузочное тестирование. | Гл.1 — анализ предметной области и стандартов; Гл.2 — архитектура (C4) и реализация; Гл.3 — тестирование, метрики SLA. |
| Мониторинг и SRE цифрового сервиса госуслуг | Пиковые нагрузки при подаче заявлений требуют контроля p95-задержки и доступности. | Построить систему наблюдаемости (OpenTelemetry + Prometheus + Grafana) для сервиса подачи заявлений. | 1) Определить SLI/SLO. 2) Внедрить трассировку и метрики. 3) Настроить алерты. 4) Оценить сокращение MTTR. | Гл.1 — теория SRE и ГОСТ 34.601; Гл.2 — инструменты и архитектура мониторинга; Гл.3 — апробация на нагрузке. |
| Защита персональных данных в digital-сервисах госсектора | Любой третий новорождённый фактически «живёт» в этой системе — утечка недопустима. | Спроектировать модель угроз и внедрить защиту PII для портального сервиса. | 1) Модель угроз по OWASP ASVS. 2) Криптографическое хранение. 3) Аудит и логирование. 4) Проверка на стенде. | Гл.1 — НПА и OWASP; Гл.2 — реализация защиты; Гл.3 — пентест и оценка рисков. |
Глава 1 — анализ: где искать данные и стандарты
Первая глава — не «вода про актуальность», а рабочий раздел. Здесь вы обосновываете, что «Госуслуги» — не единый монолит, а ландшафт взаимосвязанных систем: ЕСИА (аутентификация), СМЭВ (межведомственное взаимодействие), ведомственные реестры ЗАГС и медорганизаций. Именно этот ландшафт рисуется в первой главе. Обязательные пункты:
- Обзор предметной области: жизненный цикл заявления от подачи до выдачи свидетельства.
- Нормативная база: ГОСТ 34.601-90 (стадии создания автоматизированных систем), ГОСТ 19.701 (схемы алгоритмов и программ), ФЗ-152 о персональных данных.
- Обзор аналогов и стандартов качества: ISO/IEC 25010 — по каким характеристикам вы будете оценивать своё решение (функциональная полнота, производительность, защищённость).
- Статистика из статьи как input для постановки задачи: 434 тыс. операций в год ≈ 1–2 тыс. в сутки, с пиками в конце месяца.
Глава 2 — проектирование: C4, OpenAPI, интеграция с ЕСИА и СМЭВ
Вторая глава — где студенты чаще всего «сыпятся». Не рисуйте один абстрактный прямоугольник «Сервис». Постройте диаграммы уровней C4: Context (кто пользователи, какие внешние системы), Container (какие компоненты: API Gateway, сервис заявлений, БД, очередь), Component (внутри сервиса), Code (только при необходимости). Для взаимодействия с внешними реестрами приложите диаграмму последовательности (UML Sequence) — там видно и асинхронность, и повторные попытки.
Контракт API описывайте в OpenAPI — это снимает половину вопросов комиссии о «полноте проектирования»:
# openapi-fragment.yaml — упрощённый контракт сервиса подачи заявления
openapi: 3.1.0
info:
title: Birth Registration Service
version: 1.0.0
paths:
/v1/birth-applications:
post:
summary: Принять заявление на регистрацию рождения
security:
- esiaOAuth2: [birth.write]
parameters:
- name: Idempotency-Key
in: header
required: true
schema: { type: string, format: uuid }
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BirthApplication'
responses:
'202': { description: Принято в асинхронную обработку }
'409': { description: Дубликат (совпал Idempotency-Key) }
'422': { description: Ошибка валидации полей }
Обратите внимание на Idempotency-Key и код 202: заявление уходит в очередь (Kafka или RabbitMQ) и обрабатывается асинхронно. Именно так работают реальные сервисы такого масштаба — синхронное ожидание от ЗАГС было бы узким горлышком.
Глава 3 — реализация, нагрузка и метрики SLA
Третья глава без цифр — не третья глава. Возьмите за основу формулу SLI/SLO из SRE-подхода: доступность ≥ 99,9%, p95 времени ответа ≤ 800 мс на POST, доля успешно принятых заявлений ≥ 99,5%. Метрики собирайте через OpenTelemetry и считайте в Prometheus, визуализируйте в Grafana. Пример запроса для контроля SLA:
# PromQL — p95-задержка эндпоинта подачи заявления
histogram_quantile(
0.95,
sum(rate(http_request_duration_seconds_bucket{route="/v1/birth-applications", method="POST"}[5m])) by (le)
)
# Доля успешных заявлений (SLI «приёмоспособность»)
sum(rate(birth_applications_total{status="accepted"}[1h]))
/
sum(rate(birth_applications_total[1h]))
Нагрузочный тест проведите в JMeter или k6: смоделируйте 50 виртуальных пользователей, идемпотентные повторы и обрыв соединения. Зафиксируйте, как ведёт себя система при отказе внешнего реестра — не падает, а возвращает 202 и ставит в очередь. Это отдельный плюс на защите: вы показали не «happy path», а отказоустойчивость.
Чему вы научитесь
- Проектировать интеграцию разнородных реестров через асинхронные очереди и идемпотентные API.
- Описывать контракты по OpenAPI 3.1 и строить диаграммы C4/UML, понятные комиссии.
- Определять SLI/SLO и подтверждать их нагрузочными тестами, а не словами «система быстрая».
- Оформлять разделы ВКР по ГОСТ 34.601 и оценивать качество ПО по ISO/IEC 25010.
- Считать стоимость эксплуатации и обосновывать выбор облака или on-premise для госсектора.
FAQ
Мне обязательно писать свой сервис с нуля?
Нет. Достаточно прототипа, покрывающего 2–3 ключевых сценария: подача заявления, ответ внешней системы, повторная попытка. Всё остальное можно описать в архитектурной части и подтвердить диаграммами. Комиссия оценивает проектные решения, а не количество написанных строк.
Где взять данные про 434 тыс. заявлений, если нет доступа к «Госуслугам»?
Используйте открытые публикации Минцифры, материалы Росстата и данные аналитических агентств. Если нужен «объёмный» датасет для тестов — сгенерируйте синтетические заявки по статистическому распределению: пуассоновский поток с пиками в конце месяца. Такой подход корректен и часто встречается в промышленной практике.
Как оформлять схемы по ГОСТ, если у меня C4?
C4 — нотация архитектурная, ГОСТ 34 её не отменяет. В основной части показывайте C4 (она читаемая), а в приложениях разместите функциональную схему и схему алгоритма по ГОСТ 19.701. Не путайте уровни и подпишите каждую стрелку — за неподписанные интерфейсы снимают баллы.
Что важнее на защите: код или метрики?
Метрики. Код у вас посмотрят в лучшем случае мельком, а на вопрос «стало ли лучше после вашего решения?» ответ нужен цифрой. Поэтому заранее подготовьте таблицу «до/после» по p95, throughput и доле успешных операций.
Что проверить перед сдачей
- Каждая задача из введения отражена в выводах по главам — без «висящих» пунктов.
- Все диаграммы подписаны, пронумерованы и упомянуты в тексте хотя бы один раз.
- Метрики SLA/SLO приведены с методикой измерения и результатом нагрузочного теста.
- Оформление титула, оглавления и приложений соответствует ГОСТ и требованиям вашего вуза.
- Ссылки на источники (включая новость o «Госуслугах») оформлены единообразно и вынесены в список литературы.
- Текст проверен на уникальность, кодовые листинги вынесены в приложения.
- Презентация к защите укладывается в 7 минут и содержит 1 схему архитектуры + 1 таблицу метрик.
Типичные ошибки студентов
1. «Монолит на все случаи». Студенты рисуют одну коробку «Сервис госуслуг» и на этом останавливаются. На защите сразу спросят: как вы обеспечиваете изоляцию сбоев между приёмом заявления и обращением к реестру? Избежать просто: разделите систему минимум на 3 сервиса (API Gateway, приём заявлений, интеграционный адаптер) и покажите, что падение одного не роняет остальные.
2. Игнорирование ПДн. В кейсе с регистрацией рождения обрабатываются медицинские и семейные данные — это спецкатегории. Если в ВКР нет раздела про шифрование, разграничение доступа и аудит по ФЗ-152 и OWASP ASVS, работа теряет баллы сразу. Добавьте хотя бы модель угроз и таблицу мер защиты.
3. Метрики «на словах». «Система работает быстро» — не аргумент. 434 тыс. заявлений в год означает, что даже 1% ошибок — это тысячи людей. Считайте p95, error rate и доступность, приводите скриншоты Grafana. Это стоит 10–15 баллов на защите.
Если тема кажется объёмной, а времени до защиты мало — есть смысл взять готовую базу и адаптировать её под свой кейс. Наши специалисты готовы бесплатно проконсультировать по выбору темы, помочь с прототипом и оформлением. В среднем мы вкладываем в работу порядка 120 часов и подбираем исполнителя строго под поддомен — будь то Backend, SRE или ИБ. Заказать диплом под конкретную тему или попросить помощь с дипломом можно без обязательств — сначала обсудим, что реально успеть.
Источник: Рождение каждого третьего ребёнка регистрируют на «Госуслугах» (опубликовано 2026-03-24)