Нужно заметить, что возможность разместить систему в облаке Amazon появилась именно потому, что проект системы родился не в государственных кабинетах, а на Майдане, и был гражданской инициативой. На момент создания пилотной версии системы команда искала облако, сочетающее в себе надежность, высокую масштабируемость, недорогую инфраструктуру и постоянный доступ к данным. Идеальным решением стало облако Amazon.

Для хранения данных был выбран самый популярный сервис Amazon – S3, которым пользуются такие крупные компании, как Dropbox, Twitter или Minecraft. Благодаря этому выбору команда проекта могла сосредоточиться на разработке продукта, делегировал его поддержку сервисам Amazon.

Постепенно из стартапа система Prozorro переросла в общегосударственный проект по реформе государственных закупок. В августе 2016-го электронные закупки стали обязательными для всех госзаказчиков. У команды проекта возникла нетривиальная задача – перенести данные ProZorro из облачного хранилища Amazon в дата-центр на территории Украины. Этого требует Закон «О защите информации в информационно-телекомуникационных системах».

Из облака Amazon в украинский дата-центр

Миграция данных с Amazon – процесс нестандартный. В Amazon Web Services  все реализовано с помощью их сервисов и технологий, поэтому нам пришлось не просто переносить данные, но и по-сути заново создавать систему, частично меняя архитектуру.

Чтобы найти подходящее облачное решение, понадобилось время. Мы общались со многими украинскими представительствами крупных мировых компаний, но на момент переезда с Amazon подобных кейсов у мировых вендоров мы не увидели. Поэтому думали уже заняться этим самостоятельно. Но во время рабочих встреч с De Novo мы затронули тему миграции, и оказалось, что этот дата-центр, начал в тестовом режиме развертывание объектного хранилища, которое мы и искали. Мы решили попробовать, что с этого выйдет. 

Подготовка к миграции началась в середине прошлого года. На каждом из инстансов системы нужно было отработать те механизмы, которые будут работать в продуктиве. Так как dev – первый инстанс, на него ушло много времени. Построив всю инфраструктуру, мы перешли к sandbox – той песочнице, где все площадки тестируют код под новые разработки. Далее приступили к последнему prod-инстрансу. Он отличается от других тем, что система здесь разворачивается с внутреннего репозитория, то есть никакие пакеты напрямую с Интернета на сервера не ставятся, все в закрытом контуре. Такие итерации позволяют минимизировать риски, но требуют времени.

К миграции продуктива мы приступили в феврале 2018-го. Проходил этот процесс в 4 этапа. Нам нужно было переместить около 50 терабайт данных. И мы не могли потерять ни единого документа, ни одного килобайта информации. Поэтому все процессы были расписаны строго по дням. Нам нужно было добиться максимальной синхронности всех участников. Над проектом миграции тогда работало несколько команд: сотрудники госпредприятия «Прозорро» и техспециалисты двух украинских компаний.

Сложности и уникальные решения

В процессе миграции данных с облака Amazon нам постоянно нужно было придумывать различные технологические решения. Например, в облаке Amazon есть сервис Elastic Load Balancing – балансировщик нагрузки, распределяющий трафик по нескольким серверам и обеспечивающий бесперебойный доступ к данным системы. Для системы ProZorro в Украине мы нашли замену – HaProxy и Keep-alive, провели все нагрузочные функциональные тестирования, и добились похожих результатов, что и на Amazon.

Оpen Source-решениям мы отдаем предпочтение, считаем, что за ними будущее. Поэтому на базе украинского дата-центра мы построили OpenStack Swift хранилище. Для работы с ним специально написали драйвер, позволивший сохранить все метаданные документов, что были в Amazon.

Также внедрили большую систему мониторинга – инструменты Zabbix, NetData и Grafana в связке с InfluxDB. Все процессы максимально автоматизировали. Ничего напрямую на серверах не делается, все выполняется с помощью Аnsible через систему управления версиями GitLab.

Финансирование проекта миграции

Миграция была осуществлена за деньги западных доноров в рамках проекта USAID/UK AID «Прозрачность и подотчетность в госуправлении и услугах». Их финансовый вклад составил почти $500 000.

Благодаря усилиям команды переезд ProZorro в Украину прошел незаметно для пользователей. Мы старались минимизировать все неудобства: заранее предупреждали об отсутствии возможности загружать документы в связи с миграцией модулей API и document service ProZorro, начинали перенос данных вечером, чтобы не беспокоить пользователей в рабочее время. 

Автор: Евгений Ентис, начальник ІТ-отдела госпредприятия «Прозорро»