Александр Ефремов, СЕО Kitsoft, в колонке для AIN.UA рассказал, как за год на портале «Дія» удалось запустить полную автоматизацию ряда государственных услуг и как технологически развивали систему.
Два года назад Министерство цифровой трансформации начало масштабную цифровую трансформацию государственных услуг, идея которой — «государство в смартфоне». Для этого созданы две системы. Первая — мобильное приложение, важный элемент социализации. Его запустила и развивает ДП «Дія». Вторая — портал diia.gov.ua, платформа для создания онлайн услуг. Ее разработкой и технологическим развитием занимается команда Kitsoft.
«Дія» год спустя
Портал запустили в апреле 2020 года, за это время на «Дія» появились новые услуги для граждан и бизнеса, первые автоматизированные услуги, работающие без чиновников. Платформа развивалась в четырех направлениях:
- Масштабирование
Раньше мы рассказывали, что цифровая платформа представляет собой маркетплейс электронных услуг на базе BPMN. Технологическая концепция оправдала себя — темпы создания новых онлайн услуг возросли в несколько раз. Год назад стартовали услуги для ФОП и «єМалятко», а сейчас на платформе уже 70 новых услуг.
Для расширения функционала «Дія» и создания новых услуг постоянно нужны изменения. При этом уже запущенные услуги должны работать без перебоев, поэтому ядро системы должно оставаться стабильным. При развитии архитектуры важно сохранить этот баланс.
- Полная автоматизация
Автоматическая услуга стала новым стандартом государственных электронных услуг. Не просто paperless, а peopleless. Это высвобождает ресурсы государства, экономит время граждан и помогает снизить уровень коррупции. В развитых странах такой проблемы уже нет, но для Украины это возможность наладить прозрачность государственных услуг.
При этом сама «Дія» не предоставляет услуги, а отображает информацию. Это инструмент для взаимодействия с органом, который непосредственно оказывает услугу: подача заявки, отслеживание ее статуса, получение решения и необходимых документов.
В этом году для строительных услуг и открытия ФОП запущена автоматизированная подача и обработка заявки. Влияние чиновников, обрабатывающих услуги на back-офисе вручную, исчезло. Для этого Минцифры создает нормативные условия для взаимодействия государственных органов, а задача разработчиков — обеспечить это технически.
- Экосистема «Портал — Мобильное приложение»
Приложение специализируется, в первую очередь, на отображении документов и предоставлении самых популярных услуг. Сюда стоит добавлять услуги, которыми человек пользуется хотя бы раз в год и которые можно заказать в пару кликов. Если услуга не такая массовая, требует сложного алгоритма, ввода большего количества информации, прикрепления документов, ее разрабатывают на портале. Например, строительные услуги — там много проверок и большинство пользователей не пользуется этими услугами.
Портал и приложение — две самостоятельные системы. Чтобы пользователи получали целостный опыт в «Дія» мы заложили технологическую основу для взаимодействия. Заявку на выплату восьми тысяч для ФОП оформляли и там, и там, но обработка услуги проходила на движке портала. Можно на портале авторизоваться, а подписать документы через приложение.
- Открытость к взаимодействию
Это одна из ценностей, которые создает новый программный продукт. Качество проработки взаимодействия с другими системами определяют его успех. Для оказания электронных услуг портал «Дія» обменивается данными с другими ресурсами. За последний год увеличилось количество подключений к внешним реестрам до 35 — «Дія» уже взаимодействует со всеми основными государственными системами.
Что «под капотом»
Редактор процессов BPMN
Создание простой и человечной онлайн услуги в концепции «Дія» включает глубокий анализ существующего процесса и нормативной базы. Кто как работает, почему так, что изменить, упростить, автоматизировать? Таким реинжинирингом процессов и необходимыми для этого изменениями в законодательстве занимается команда Минцифры.
Для проектирования новой услуги на платформе не нужны разработчики, код писать для каждой не нужно. Логику оказания услуги настраивают бизнес-аналитики в редакторе BPMN в виде схем. То есть архитектура системы настраивается разработчиками, а для бизнес-аналитиков есть удобный интерфейс, где они с помощью условных обозначений моделируют процесс.
Наш вызов был доработать функциональность платформы и организовать сервис так, чтобы отдельные команды бизнес-аналитиков могли одновременно работать над несколькими услугами самостоятельно. Такой подход снижает затраты, помогает масштабироваться и достигать поставленных целей. При этом вмешательства в код ядра системы не происходит.
Авторизация
Появился еще один элемент для входа в систему — Дія.Підпис. Для этого реализовали функционал авторизации на портале с использованием мобильного приложения. Чтобы зайти на портал или подписать электронной подписью документ, теперь не нужен электронный ключ, который хранится отдельно. Вместо этого, можно в приложении «Дія» отсканировать QR-код и пройти идентификацию в мобильном приложении.
С помощью Дія.Підпис можно авторизовываться и на других государственных платформах. Например, сервис петиций — отдельный ресурс, пользователь входит и остается на нем, при этом авторизация совершается через «Дія». Для этого используется стандарт аутентификации OAuth 2.0.
Плагины
На платформе «Дія» разработали систему плагинов, если для создания нового сервиса стандартного функционала не хватает. Плагины разрабатывают другие организации, при этом используют реестры, сервисы для взаимодействия и становятся частью экосистемы. Пример такого плагина — услуга для ФОП по уплате налогов. Внешне процесс ничем не отличается и предприниматель получает целостный опыт в «Дія». Плагины помогают расширить спектр услуг для граждан.
Промышленное хранилище
При оказании онлайн услуг регулярно генерируются pdf файлы — заявки, результаты. За первые полгода их уже насчитывалось 670 000, т.е. больше 500 Гбайт, еще через полгода ожидалось увеличение объема минимум втрое. Поэтому перенесли файлы на новое объектное хранилище промышленного масштаба — File Storage S3 на базе открытого программного обеспечения OpenStack.
Для перехода подготовили кластер и создали скрипт миграции. Для пользователей переход прошел в фоновом режиме — без нагрузки на сервера и недоступности «Дія».
Доступ к большим файлам стал быстрым, появилось резервное копирование и дополнительные возможности масштабирования всей системы. В хранилище уже 6 млн файлов, т.е. 5 Тбайт данных.
Хранилище общее и для портала, и для мобильного приложения, данные сохраняются параллельно.
Коммуникация с внешними системами
«Дія» использует украинский сервис «Трембита» — это шлюз, который шифрует и безопасно передает информацию между государственными системами.
При этом реестры и государственные ресурсы, с которыми приходится взаимодействовать, разного уровня качества. Более развитые имеют API для взаимодействия, а со старыми системами обмен данными усложнен. «Дія» использует очереди сообщений для асинхронного обмена и Rest API для синхронного общения.
Для взаимодействия важны два сервиса: External Reader и Event. Сервис External Reader создает безопасные подключения к внешним реестрам. Сервис Event отправляет информацию в другие системы и уведомления пользователям. Мы разработали ряд шаблонов подключений, чтобы не приходилось писать уникальный код под каждую внешнюю систему и тратить ресурсы. Если внешний ресурс поддерживает принятый в системе формат данных, то программирование не нужно, только настройка.
Благодаря этому стала возможной автоматическая регистрация ФОП. External Reader считывает информацию о пользователе в реестрах, а Event записывает новый статус предпринимателя в Единый государственный реестр. Через сеть API «Дія» напрямую коммуницирует с внешним миром, без чиновников.
Сама «Дія» также предоставляет внешним системам стандартное API. Мы добавляем кастомные API в виде отдельных микросервисов, если стандартного инструментария окажется недостаточно. Этот функционал помогает порталу широко взаимодействовать и обмениваться данными, без вмешательства в ядро системы.
Кейс: е-Прописка. Для этой услуги мы интегрировались с реестром недвижимости — чтобы проверить права на жилье, с Минобороны — чтобы военнообязанных снять с учета и поставить на учет по новому месту прописки, и с Государственной миграционной службой, которая непосредственно оказывает услугу смены места прописки.
Раньше, чтобы перепрописаться, ходили из одной службы в другую по обоим адресам, теперь достаточно заполнить одну заявку в «Дія».
Благодаря информационному обмену «Дія» автоматически проверяет данные через внешние API в реестрах, и после валидации предлагает заявителю подтвердить заявку электронной подписью. Если человек прописывается в чужой недвижимости, то подписать заявление должны все совладельцы. Для этого предусмотрен механизм электронной мультиподписи. Заполненная заявка улетает в ГМС и дальше на конкретный регион, где и обрабатывается. Результат услуги приходит из региона снова в ГМС и передается в «Дія». В это время пользователь получает оповещение и видит в приложении новое место прописки.
Быстродействие
В декабре 2020 года стартовала первая волна услуги по выплатам ФОП из-за локдауна. На выплаты претендовали 900 тыс пользователей, срок оказания услуги – всего 3 недели. Нагрузка оказалась в сотни раз больше, чем предполагалось. Это был highload (от англ. высокая нагрузка) для системы и настоящий стресс-тест для команды разработчиков.
Стандартная нагрузка в «Дія» – десятки запросов в секунду. Портал подготовили и протестировали для ожидаемой нагрузки в сотни запросов в секунду:
- Спроектировали путь пользователя при подаче заявки
- Запустили автотест для выявления перегрузов
- Подготовили мониторинг услуги
- Проанализировали метрики и логи работы системы для возможности выявить узкие места
- Оптимизировали запросы к базе данных, программный код и увеличили быстродействие
- Масштабировали инфраструктуру — запустили дополнительные инстансы сервисов
Но в первый день после запуска услуги нагрузка достигла 1000 запросов в секунду, а во второй — 2500 запросов в секунду, после чего некоторые пользователи столкнулись с проблемами. Нужно было оперативно еще оптимизировать систему: развернули новые сервисы, перенесли на мощные серверы, распределили нагрузку. Со второго дня «Дія» уже работала без перебоев.
Мониторинг
Highload стал толчком для отладки мониторинга, чтобы видеть в режиме реального времени нагрузку на элементы портала.
Мониторинг показывает, как работают услуги в реальном времени, на каких этапах пользователь. Так, пока вы читали статью и пили чашку кофе, в «Дія» зарегистрировались 60 ФОП.
Служба поддержки «Дія» работает с ошибками вживую: разбирается, если человек застрял на каком-то шаге, диагностирует проблемы при взаимодействии с внешними системами, видит упавшие процессы и перезапускает с места ошибки.
Крайне редко все подключения к реестрам работают исправно: возникают проблемы, технологические окна — в результате запросы не доходят. Поэтому движок построили так, чтобы в подобных случаях пользователю не приходилось начинать сначала.
Система сама автоматически перенаправляет сообщения во внешние ресурсы без участия человека: отправили запрос — вылетела ошибка — повторим через некоторое время.
Для службы поддержки есть ручной режим управления. Допустим, возникла ошибка с форматом данных при передаче. Поддержка в специальном режиме исправляет формат и в ручном режиме повторно отправляет сообщение во внешний реестр.
Что дальше?
Стандартизация процессов на платформе «Дія» позволила масштабировать опыт и быстро внедрять электронные услуги одновременно во многих сферах государственного управления. Наша команда разработчиков (core team) отвечает за платформенные улучшения, еще несколько команд параллельно наполняют ее контентом и конкретными услугами. Продолжается работа над улучшением интерфейса редактора услуг и услуг без чиновников.
Разработчики плагинов используют движок и кастомные API для быстрой интеграции в «Дія» и интенсивно расширяют систему, не нарушая ее стабильность.
«Дія» уже на таком уровне, когда остановка на даже на 1-2 часа наносит существенный ущерб. Поэтому пришло время еще повышать отказоустойчивость инфраструктуры. Следующим шагом будет переход на Kubernetes — это мировой стандарт инфраструктуры, включающий сервера, коммутаторы и прочее. Kubernetes будет работать в двух украинских дата-центрах параллельно и повысит отказоустойчивость, производительность и надежность платформы.
Автор: Александр Ефремов, СЕО Kitsoft