Предпосылки создания КСУП
Разработка началась в 2015 году, когда численность сотрудников Sibedge не превышала 50 человек. Изначально мы выбрали монолитную архитектуру, которая была лишена гибкости в плане разработки, отказоустойчивости, масштабируемости и поддержки.Штат компании стремительно рос, поэтому стало очевидно, что подход к созданию платформы нужно менять. В 2020 году от бизнеса пришёл новый перечень требований к будущей системе, который включал в себя:
- Высокую доступность и отказоустойчивость системы.
- Инструменты для импорта репозиториев и синхронизации технических артефактов.
- Возможность гибкого масштабирования системы.
- Автоматическая синхронизация с внешними системами тайм-трекинга заказчиков, даже тех, которые находятся в закрытом корпоративном контуре.
- Интеграция с системами 1С, Power BI, Zoho, Bitrix и другими.
- Качественное документирование и распределение экспертизы экспертизы внутри команды разработки.
Разработка КСУП
После формирования окончательного видения будущего продукта с учётом потребностей бизнеса и прошлых ошибок, мы приступили к разработке КСУП версии 2.0. Основным изменением стал отказ от монолитной архитектуры. Мы декомпозировали задачи и разнесли их по нескольким изолированным друг от друга микросервисам. В качестве основных технологий были выбраны Python (фреймворк FastAPI) и .NET.Одним из приоритетов разработки стало сокращение времени поставки новых версий продукта. Релизные процессы мы выстроили на платформе Azure DevOps. Гибкость, масштабируемость и отказоустойчивость системы обеспечивалась с помощью оркестратора Kubernetes. Команда состояла из .NET, front-end и Python-разработчиков, DevOps-инженеров, QA-специалистов и руководителя проекта.
Изначально монолитный КСУП был разделён на следующие микросервисы:
API Gateway — движок, через который происходит обмен основными данными между модулями и аутентификация сервисов.
Project Service — обеспечивает мапинг проектов, работу Azure DevOps и кастомизированных элементов, которые работают на этой платформе.
ADO Connect — осуществляет связь сервисов с Azure DevOps
ADO Configurator — предназначен для настройки работы Azure DevOps.
TFS Extension — отвечает за взаимодействие с сервисами TFS.
Import Time — инструмент импорта трудозатрат из внешних систем тайм-трекинга.
Import Repo — модуль импорта репозиториев с проектными артефактами.
Email Notification — сервис, который уведомляет руководителей проектов о том, что нужно согласовать трудозатраты, а инженеров — что им нужно списать трудозатраты.
Данные о трудозатрата сотрудников хранятся в базе PostgreSQL с поддержкой процедурного языка V8. Каждый сервис изолирован от остальных, поэтому если один выходит из строя, остальные продолжат работать. Так мы достигли отказоустойчивости в рамках новой архитектуры. Этот подход также позволяет бесшовно внедрять новые модули в систему, не прерывая её работу.
Изменения в релиз-менеджменте
Бизнесу был нужен отлаженный и контролируемый процесс поставки новых функций и возможностей. Чтобы уменьшить показатель Time to Market, ускорить проверку гипотез и повысить стабильность поставок мы пересмотрели подход к релиз-менеджменту. Вот лишь некоторые нововведения, которые мы внедрили за время разработки КСУП:- Переосмысление ведения задач в трекере и в кодовой базе (GitFlow).
- Definition of Ready и Definition of Done для поставляемых функций.
- Календарь релизных церемоний.
- Версионирование релизов.
- Формализованный план релиза для каждого сервиса в рамках платформы.
- Перевод CI/CD на новые рельсы (IaC, MaC, GitOps).
В будущем мы планируем вовлечь всю команду разработки в культуру DevOps, чтобы каждый участник был вовлечён в процесс и двигался к релизу вместе с остальными. Накопленный внутренний опыт Sibedge будет предлагать в виде сервисов своим партнёрам.
Релиз КСУП
Первая рабочая версия КСУП была запущена в эксплуатацию в сентябре 2022 года. Она позволяет хранить артефакты проектов, интегрироваться с внешними и внутренними сервисами, включает инструменты, с помощью которых руководители проектов достигают поставленных перед ними целей.Ниже перечислены лишь некоторые возможности и преимущества системы в части, продуктовых, маркетинговых и бизнес-метрик.
Бизнес-метрики
- Возможность внесения и согласования трудозатрат.
- Проектное управление (создание, изменение проектов). При создании карточки нового проекта, менеджер автоматически привязывается к нему и получает необходимые права доступа.
- Сотрудники получают уведомления о необходимости списать и согласовать трудозатраты.
- Интеграция с Power BI и формирование отчётности по данным из Azure DevOps.
- Импорт и хранение артефактов разработки с внешних проектов внутри компании, что обеспечивает защиту интеллектуальной собственности.
Продуктовые метрики
- Отчётность по фактическим трудозатратам.
- Оценка приблизительных сроков, которые нужны разработчикам на решение задач.
- Внесение разработчиками трудозатрат во внешнюю систему без необходимости дополнительного списывания часов во внутреннем корпоративном тайм-трекере.
- Бесшовная авторизация — вход в Azure DevOps даёт полный доступ к возможностям платформы.
- Обеспечение SLA и доступность сервисов системы, благодаря отказоустойчивости архитектуры решения.
Маркетинговые метрики
- Интеграция с Zoho. Строим воронку сделок и отправляем их в КСУП.
- Интеграция с Bitrix. Каждый сотрудник видит, в каких проектах он участвует и какие задачи решает.
Будущее КСУП
Работа над КСУП продолжается. Мы собираем обратную связь от разработчиков и руководителей проектов, чтобы сделать систему ещё удобнее и эффективнее. В ближайших планах создание единой системы мониторинга и алертинга работоспособности платформы. Также ведётся работа над инструментом для анализа логов микросервисов.Мы также продолжаем вкладывать ресурсы в Research and Development в части новых технологий, подходов к проектированию сложных систем, использования фреймворков, языков программирования и распространения DevOps-культуры внутри компании. Не исключено, что со временем наш внутренний продукт может перерасти в коммерческий, и тогда мы предложим его нашим партнёрам и клиентам.