Как создать ИТ-инфраструктуру для сервиса с машинным зрением
DevOps-инженеры RedLab разработали систему, которая обеспечила масштабируемость и надежность ИТ-продукта для решения разных вид капч (англ. CAPTCHA)
Задача:
Для облачного сервиса предстояло разработать ИТ-инфраструктуру с нуля, которая смогла бы обеспечить высокую производительность, быстрый отклик системы на результаты анализа текста и изображений и гибкость кода.
Причина:
Клиент нуждался в ускоренном развертывании программы, чтобы обеспечить своим клиентам стабильную работу ИТ-продукта и снизить риски возможных сбоев в системе.
Облачный сервис решает разные виды капч (англ. CAPTCHA). Это небольшие задания на сайте, определяющие, является ли посетитель человеком или роботом. Продукт имеет алгоритмы для анализа символов, изображений и искаженного текста, а также машинное зрение для выделения форм и букв на них. Среднее время распознавания капчи занимает менее 1 секунды, в связи с этим сервис является высоконагруженным.
Основное требование клиента заключалось в том, чтобы ИТ-инфраструктура гарантировала стабильную и эффективную работу сервиса. В зоны ответственности RedLab также входила реализация других задач:
- Масштабировать систему: добавление инновационных функций, поддержка безотказной работы, выстраивание CI/CD-процессов.
- Обеспечить высокую скорость совершаемых операций: обработка информации и сбор данных от методов машинного обучения.
Реализация
Технологический стек:
- Docker
- Kubernetes
- Istio
- Velero
- Kube-prometheus-stack
- Helmfile
- Argocd
Наше решение
В рамках выполнения задач по развертыванию ИТ-инфраструктуры для сервиса с машинным зрением, провели следующие работы:
- Разработали архитектуру и развернули ИТ-инфраструктуру на базе кластера Kubernetes. В основе использовались высокопроизводительные сервера под управлением ОС CentOS 7, поверх которых была поднята KVM-виртуализация. Задача по управлению TCP-трафиком в проекте была реализована посредством внедрения Service Mesh на базе Istio.
- Разместили гибкие IP-адреса (FIP) от провайдера Hetzner, которые легко назначаются и перемещаются между серверами. В итоге управлять сетевой инфраструктурой стало проще.
- Написали 10 Helm-чартов для реализации CI/CD-процессов сборки и доставки кода программного продукта, что позволило экономить ресурсы кластера.
- Дополнительно установили 5 GPU Нод, для каждой из которых добавили по две графические карты Nvidia 3080 на борту — удалось обеспечить отличное качество графики и высокую производительность.
- Создали оператор для Istio, т.к. для каждого приложения требовался отдельный шлюз и необходимо было выдавать сертификаты Letsencrypt. Домены являлись слишком многоуровневыми (7-8 уровней), поэтому мы не могли использовать универсальные SSL-сертификаты из-за отсутствия фиксированного списка доменов.
- Использовали Grafana, Prometheus, и Alertmanager для мониторинга систем. Также настроили взаимодействие с Zabbix для перекрестного мониторинга.
- Внедрили методологию GitOps на ArgoCD, чтобы увеличить гибкость ИТ-инфраструктуры и быстрее реагировать на изменения в бизнес-требованиях.
- Интегрировали Knative — платформу, которая автоматически масштабирует контейнеры пропорционально одновременным запросам HTTP. Неиспользуемые сервисы в итоге масштабируются до нуля, предоставляя рост по требованию в стиле бессерверных вычислений.
Разработанная ИТ-инфраструктура по методологии DevOps позволила обрабатывать и анализировать большие объемы данных, повышая точность и скорость распознавания данных из текста и изображений.