Кейс Nitec: отказоустойчивая инфраструктура
для анализа больших данных

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тек технологий

  • Kubernetes
  • Patroni
  • MinIO
  • ClickHouse
  • Greenplum
  • Oracle GoldenGate
  • Ceph
  • FreeIPA
  • Keycloak
  • Tarantool
  • Airflow
  • Linstor
  • Kafka
  • Debezium
  • ELK
  • Grafana
  • DataHub
  • Metabase
  • Superset
  • Pentaho
  • SonarQube
  • Wiki.js