Nitec, оператор информационно-коммуникационной инфраструктуры «электронного правительства» Республики Казахстан, обратился с задачей построить новую отказоустойчивую инфраструктуру для своего проекта по анализу больших данных — Smart Data Ukimet. Ниже рассказываем, чем и как мы помогли.
О клиенте
АО «Национальные информационные технологии» — это оператор информационно-коммуникационной инфраструктуры «электронного правительства» Республики Казахстан.
Проект АО «НИТ», Smart Data Ukimet — это информационно-аналитическая система, предназначенная для сбора, хранения и комплексного анализа данных, а также для мониторинга экономического роста и реализации государственных программ. Она направлена на повышение эффективности работы центральных государственных органов, в том числе и eGov, и местных исполнительных органов через анализ и моделирование.
Задача
Компания обратилась к нам с задачей построить новую отказоустойчивую инфраструктуру для анализа больших данных. Для такого огромного количество информации, как у Smart Data Ukimet, нужна стабильная инфраструктура, которая способна работать без простоя при любых нагрузках.
Для этого мы должны были выстроить тестовое, демо, препродакшен и продакшен окружения для дата-аналитиков, а также разработать и внедрить CI/CD. При этом, новая инфраструктура должна была работать без интернета. Задача колоссального уровня и очень интересная для DevOps-инженеров.
Решение
Для решения задач мы поэтапно поднимали каждое окружение в среде без интернета.
Развертывание инфраструктуры без интернета: Мы использовали Kubernetes в качестве платформы для управления контейнерами. Особое внимание уделяли локальной установке всех необходимых компонентов и хранилищ данных. Для этого задействовали стек с MinIO для хранения данных, а также Ceph для создания распределенной системы хранения объектов, которая обеспечивает высокую доступность и отказоустойчивость. Linstor использовался для управления блоковым хранилищем данных в кластере.
Организация базы данных: Для хранения больших объемов данных выбрали ClickHouse, которая идеально подходит для аналитических и BI задач благодаря своим возможностям быстрого поиска и анализа. Greenplum использовали как платформу для распределенной обработки данных, предоставляя поддержку параллельных запросов и оптимизацию работы с большими объемами информации. Oracle GoldenGate помог реплицировать данные в реальном времени между разными базами данных, что гарантировало высокую доступность и согласованность данных в тестовых, препродакшен и продакшен окружениях. Это также упростит миграцию данных без простоев и интеграцию с другими базами данных.
Оркестрация и управление данными: Важной частью архитектуры стало использование Patroni для создания отказоустойчивого кластера на основе PostgreSQL. Это решение обеспечивает автоматическое восстановление при сбоях и позволяет управлять высоконагруженными базами данных. В сочетании с Debezium, мы внедрили надежный механизм CDC (Change Data Capture), чтобы отслеживать изменения в базах данных и синхронизировать их в реальном времени.
Микросервисная архитектура: Для передачи данных между микросервисами использовали Kafka, что позволило наладить надежную и масштабируемую коммуникацию между компонентами системы.
Управление доступом и безопасностью: Для безопасного управления доступом внедрили FreeIPA и Keycloak. FreeIPA обеспечивала централизованное управление учетными записями, а Keycloak позволял управлять аутентификацией пользователей на уровне приложений, поддерживая современные методы аутентификации и авторизации (OAuth2, OpenID Connect).
Мониторинг и логирование: Для мониторинга всей системы настроили Grafana для визуализации метрик и ELK (Elasticsearch, Logstash, Kibana) для логирования и анализа событий. Это позволило обеспечивать постоянный контроль за состоянием систем и быстро реагировать на любые отклонения от нормы.
CI/CD и автоматизация: Следующим важным шагом стало внедрение и настройка CI/CD пайплайнов. Мы использовали Airflow для оркестрации задач и интеграции с пайплайнами, что значительно упростило работу над аналитическими задачами и сократило время до выхода продукта в продакшен. В дополнение к этому SonarQube обеспечивал контроль качества кода.
Аналитические платформы: Для работы с аналитикой и данными интегрировали Metabase, Superset и Pentaho, которые позволили эффективно визуализировать данные и анализировать их в режиме реального времени.
Результат
В результате настройки процесса CI/CD data-инженерам стало жить проще и комфортнее. Мы погрузились в проект клиента и автоматизировали весь процесс. Команда теперь просто отправляет commit в систему, после чего все автоматом улетает в нужный контур. В итоге вся цепочка CI/CD была настроена максимально эффективно.
Дополнительно мы написали и настроили авторизацию через ЭЦП.
В итоге мы построили высоконадежную и отказоустойчивую инфраструктуру, которая соответствует строгим требованиям к обработке и хранению данных в среде без интернета, а также поддерживает бесперебойную работу системы при любых нагрузках.
Дальше в планах — миграция в частное облако.
Cтек технологий