От MVP к облачной инфраструктуре: помогаем российскому сервису для совместной работы команд
Отрасль
Корпоративное управление
Команда
4 человека
Длительность
3 года
Технологии
Kubernetes, RabbitMQ, MongoDB, PostgreSQL, Docker, Nginx
Российский сервис для совместной работы команд
- Платформа объединяет все аспекты работы компании в едином пространстве: проекты, задачи, цели, сотрудники, документы, переписки, отчеты и заявки.
- С ежемесячным числом активных пользователей в размере 2.2 миллиона, платформа легко соответствует требованиям 152-ФЗ "О защите персональных данных", размещая свои серверы в России и обеспечивая защиту на уровне Tier 3 — одном из самых высоких уровней безопасности. Кроме того, она внесена в единый реестр российского программного обеспечения и обладает сертификатами безопасности Минцифры.
- Ей доверяют такие крупные компании, как Альфа-банк, Додо-пицца, Ростелеком, Вкусвилл, Скайэнг и Сколково.
- Система управления информационной безопасностью в ней сертифицирована в соответствии с требованиями ISO 27001:2013.
Постановка задачи
Перед командой Креатик Софт стояла задача перевести все ресурсы клиента на российские мощности и перейти на Kubernetes. Также мы должны были реализовать возможность для пользователей запускать сервисы клиента на их собственных ресурсах с использованием Docker-compose. Изначально вся система клиента функционировала на платформе Heroku (Cloud Application Platform).
Этапы разработки первой фазы проекта
Первая фаза разработки MVP заняла один месяц. Запуск приложения был успешно реализован с использованием Helm charts. Мы также подготовили подробные инструкции для запуска приложения на различных базах данных, таких как RabbitMQ, MongoDB и PostgreSQL.
Весь сервис был контейнирован (докеризован), что обеспечило эффективное управление и масштабирование системы.
1. Подготовка инструкций по запуску библиотек и баз данных
Были подготовлены инструкции по запуску различных компонентов клиентского программного обеспечения в официальных Docker-образах, включая PostgreSQL с дополнениями от postgres-contrib и библиотеку plv8, MongoDB, Redis и RabbitMQ.
2. Обеспечение безопасности и управление версиями
Настроен приватный репозиторий Docker: Загрузка докеризированных компонентов в частный репозиторий на Docker Hub Container Image Library | App Containerization. Это обеспечило безопасное хранение и контроль версий образов Docker.
3. Создание и использование файла docker-compose в среде Docker
Составлен файл docker-compose. Данный файл служит инструментом для инициализации и управления развёртыванием многоконтейнерных приложений в среде Docker. Этот файл будет определять взаимодействие и работу Docker-контейнеров вместе.
4. Оптимизация обработки запросов
Настроены фронтенд-сервера. Nginx работает как обратный прокси, обрабатывая запросы клиентов и распределяя их на соответствующие Docker-контейнеры.
5. Автоматизация процессов разработки и тестирования
Осуществлено внедрение системы непрерывной интеграции и развертывания. CI/CD-пайплайны, которые включают в себя настройку автоматизированных процессов, чтобы обеспечить регулярное и последовательное проведение тестов на протяжении всего цикла разработки.
6. Глубокий анализ: Всестороннее тестирование компонентов системы
Проведено всеобъемлющее тестирование всех компонентов системы.
После прохождения этих этапов мы получили MVP приложения, работающее в контейнерах Docker на виртуальном частном сервере (VPS). Эта настройка обеспечивает масштабируемую, переносимую и безопасную среду для клиентского программного обеспечения, готовую к дальнейшему развитию и развертыванию.
Разработка второй фазы проекта
Вторая фаза проекта длилась два месяца и и включала в себя создание боевых рабочих сред на Kubernetes Сluster. Для хранения секретных значений для запуска приложений в Kubernetes были использованы Vault. Был сконфигурирован Vault сервер, и настроен Kubernetes Сluster для работы с ним. Это позволило безопасно хранить данные пользователей.
Разработка третьей фазы проекта
На этом этапе наша команда приступила к сбору логов и мониторингу. Мы запустили приватный репозиторий Docker-контейнеров и сконфигурировали Harbor для хранения всех докер-образов в России. Теперь все мощности клиента находятся на российских серверах. Для системы логирования была настроена Kibana, которая позволяла управлять правами доступа через email. Также была настроена система сбора логов EFK (Elasticsearch Fluent-bit Kibana) для сбора метрик. Настроен алертинг также и для PostgreSQL, RabbitMQ. В настоящий момент идет миграция с одного дата-центра на другой, с обновлением версий.
Особенности системы логирования
Оптимизация доступа и индивидуальные настройки просмотра
Права доступа предоставляют минимальные возможности входа и просмотра всех логов, а также дополнительные опции для настройки просмотра определенных категорий. Пользователь может индивидуализировать опыт, выбирая категории логов в соответствии с потребностями и задачами.
Гибкий контроль за логами
В логах отображается реальное время вывода (stdout / stderr) из приложений с указанием места запуска приложения. Логи включают в себя информацию от сервисов и баз данных, таких как SMTP (postfix), RabbitMQ, MongoDB и других. Пользователь имеет возможность выбирать, какие логи приложения или сервиса просматривать и откуда (pod, cluster и т.д.).
Настраиваемый срок хранения логов
Логи автоматически сохраняются в течении 14 дней, при этом предоставляется гибкость увеличения срока их хранения в зависимости от свободного дискового пространства.
Особенности системы мониторинга
Контроль за контейнерами и серверами
Мониторинг всех ресурсных параметров контейнеров, виртуальных и физических серверов, включая доступную и общую оперативную память (RAM), загрузку и утилизацию CPU, а также доступное дисковое пространство.
Мониторинг на уровне операционной системы
Контроль значимых параметров для нормальной работы программного комплекса на уровне операционной системы, таких как количество открытых/доступных дескрипторов файлов и другие параметры.
Мониторинг времени ответа и пропускной способности
Мониторинг пропускной способности и времени ответа приложений с возможностью анализа различных функций времени, включая среднее значение и перцентили. Время обработки запросов берется из ответов веб-сервера, включая время, затраченное на подключение к приложениям и получение ответов от них.
На третьей стадии проекта наша команда приступила к сбору логов и мониторингу. Мы запустили приватный репозиторий Docker-контейнеров и сконфигурировали Harbor для хранения всех докер-образов в России. Теперь все мощности клиента находятся на российских серверах.
Сейчас идет миграция с одного дата-центра на другой, с обновлением версий.
Результаты
- Наши специалисты произвели успешную миграцию 15 микросервисов.
- Количество компаний-клиентов с момента переезда на облако в РФ увеличилось в 6 раз до 150 тысяч.
- В результате миграции пришло 300 тысяч новых пользователей.
- В итоге количество пользователей за последние два года увеличилось до 2.2 млн в месяц.
Блог
ArchDays 2023. Что было интересного и что поменялось с 2019 года
В конце октября 2023 года я посетил конференцию по архитектуре IT-решений ArchDays в Москве...
Эффективное управление рисками с помощью машинного обучения
С развитием финансовых технологий (ФинТех) и переходом к цифровым платежам, кибербезопасность стала одним из наиболее...
Кибербезопасность в Финтехе: технологии защиты от угроз
С развитием финансовых технологий (ФинТех) и переходом к цифровым платежам, кибербезопасность стала одним из наиболее важных аспектов в сфере финансовых услуг...