CreatikSoft

От MVP к облачной инфраструктуре: помогаем российскому сервису для совместной работы команд

Artboard 1 copy 3
Отрасль

Корпоративное управление

Команда

4 человека 

calendarCreated with Sketch.
Длительность

3 года

a
Технологии

Kubernetes, RabbitMQ, MongoDB, PostgreSQL, Docker, Nginx 

Российский сервис для совместной работы команд

Постановка задачи

Перед командой Креатик Софт стояла задача перевести все ресурсы клиента на российские мощности и перейти на 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 и т.д.).

Event Calendar

Настраиваемый срок хранения логов

Логи автоматически сохраняются в течении 14 дней, при этом предоставляется гибкость увеличения срока их хранения в зависимости от свободного дискового пространства.

Особенности системы мониторинга

22Created with Sketch.

Контроль за контейнерами и серверами

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

Мониторинг на уровне операционной системы

Контроль значимых параметров для нормальной работы программного комплекса на уровне операционной системы, таких как количество открытых/доступных дескрипторов файлов и другие параметры.

Мониторинг времени ответа и пропускной способности

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

На третьей стадии проекта наша команда приступила к сбору логов и мониторингу. Мы запустили приватный репозиторий Docker-контейнеров и сконфигурировали Harbor для хранения всех докер-образов в России. Теперь все мощности клиента находятся на российских серверах. 

Сейчас идет миграция с одного дата-центра на другой, с обновлением версий.

Результаты

Блог

ArchDays 2023. Что было интересного и что поменялось с 2019 года

ArchDays 2023. Что было интересного и что поменялось с 2019 года

14 января, 2024

В конце октября 2023 года я посетил конференцию по архитектуре IT-решений ArchDays в Москве...

Эффективное управление рисками с помощью машинного обучения

Эффективное управление рисками с помощью машинного обучения

26 декабря, 2023

С развитием финансовых технологий (ФинТех) и переходом к цифровым платежам, кибербезопасность стала одним из наиболее...

Кибербезопасность в Финтехе: технологии защиты от угроз

Кибербезопасность в Финтехе: технологии защиты от угроз

19 декабря, 2023

С развитием финансовых технологий (ФинТех) и переходом к цифровым платежам, кибербезопасность стала одним из наиболее важных аспектов в сфере финансовых услуг...

Экспресс-консультация

1. Наш специалист свяжется с вами в ближайшее время.

2. В рамках консультации уточним необходимую информацию для анализа вашего проекта.

3. Команда аналитиков и разработчиков подготовят оценку по вашему проекту.

Экспресс-консультация