Масштабирование сложных web-проектов на Bitrix

В статье расскажем о выгоде для бизнеса и преимуществах для разработки от подхода Progressive Media. Кейсы и 20+ полезных ссылок для специалистов Bitrix.

В начале июня руководитель проектного офиса Progressive Media Татьяна Корчинова выступила на выставке Ecom Expo 24 в деловой программе блока «Back-end и системные интеграции» с темой: «Масштабирование высоконагруженных web-проектов на Bitrix». После выступления мы получили комментарии и вопросы, на которые ответим в статье.

  • Как при разработке заранее предусмотреть дальнейшее масштабирование и развитие e-commerce проекта?
  • Как перейти на микросервисную архитектуру без перезапуска проекта с нуля?
  • Какая выгода для бизнеса и преимущества для разработки от подхода Progressive Media?

t.me/progressivemediabot – в чат-боте презентация, полезные материалы и кейсы по реализации сложных e-commerce проектов.

Почему Bitrix?

Масштабирование сложных web-проектов на Bitrix

Стандартное коробочное решение на основе CMS 1С-Битрикс это быстрый и доступный способ для запуска типового шаблонного проекта.

Если проект активно развивать и поддерживать в пределах стандартной Bitrix MVC архитектуры, периодически выполнять deploy релизов с новым функционалом на dev -> stage -> production окружение, можно заметить, что часто увеличивается сложность выполняемых задач и взаимосвязей в функционале, в разработку вовлекаются новые разработчики, вместе с этим кодовая база разрастается и становится трудно поддерживаемой, бизнес-логика, реализованная в рамках одного компонента, требуется в другом, но немного отличная, начинается копипаст вместо рефакторинга, появляются сторонние интеграции с внешними системами, которые требует подключения сторонних SDK и взаимодействия с API, растет нагрузка на сервер, появляется необходимость в использовании брокера сообщений (очередей), дополнительного слоя репликаций в высокоскоростные In-memory NoSQL представления данных.

Приходит понимание, что для решения насущных проблем необходимо вести документацию, покрывать код тестами, разделять зону ответственности и коммуникацию между DevOps, SecOps, Back-end, Front-end, QA, в связи с чем требуется пересматривать архитектуру проекта и внедрять дополнительные инструментальные средства.

Современные подходы разработки предлагают обширные наборы качественных, производительных, масштабируемых Open Source инструментов, которые при должном опыте можно эффективно интегрировать или подружить с Bitrix, использовать при реализации разного спектра бизнес-задач, получая на выходе оптимальную скорость в работе функционала.

Для кого подходит решение Progressive Media

— В настоящий момент у вас небольшой бизнес, стандартные решения из коробки подходят на 100%, но планируется масштабирование проекта, реализация отдельных сервисов.

— У вас крупный проект на Bitriх, уже стоите на пороге, когда с возросшим количеством различных интеграций и доработок необходимо развивать Package by Feature архитектуру (когда большие куски логики в монолитном Bitrix делим на фичи в виде отдельных пакетов/сервисов), но количество реализованного функционала настолько велико, что писать проект с нуля - задача на долгие годы. Применение подхода позволит проводить плавный переход работающего проекта на новую архитектуру.

Масштабирование сложных web-проектов на Bitrix

Профит для заказчика при использовании решения

— Оптимальная скорость в функционировании проекта, возможность масштабирования.

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

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

— Быстрое внедрение нового функционала, при этом не ломая существующий.

— Гибкость при доработках UI интерфейсов.

— Гибкость при использовании API Back-End для разных клиентов Front-End: Site Application, Mobile Application.

Плюсы для команды разработки при работе с архитектурным решением

— Оптимизированы процессы локальной, контейнерной разработки, покрытия функционала тестами, документирования, автоматизирован Deploy на dev, stage, prod окружения проекта.

— Оптимизированы временные расходы на коммуникацию, проектирование, разработку, рабочие процесс между командами DevOps, SecOps, Back-End, Front-End, QA.

— Минимизированы временные издержки при ротации, подключении новых инженеров и разработчиков в командах DevOps, SecOps, Back-End, Front-End, QA.

— Команды DevOps, SecOps, Back-End, Front-End, QA имеют вариативность в подборе, использовании современных инфраструктурных инструментов для решения задач любой сложности

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

— При разработке модификации функционала или расширении кодовой базы проекта становится возможным выработать стратегию по соблюдению баланса между рефакторингом и легаси кодом.

— Подходы к более точным оценкам трудочасов требуемых на выполнении задач командами DevOps, SecOps, Back-End, Front-End, QA.

— Гибкие современные инфраструктурные средства для резервного копирования и восстановительных работ.

Подход к работе с высоконагруженными проектами

Масштабирование сложных web-проектов на Bitrix

1. Для гибкой работы над UI сайта необходимо отделить Front-End, Back-End слои проекта.

Преимущества:

  • Визуальную составляющую сайта можно изменять с большей вариативностью.
  • Front-End в будущем можно переиспользовать с другим аналогичным API, например, переход на другую CMS.
  • Back-End можно переиспользовать с другим Front-End, например, с Mobile Application, который обращается к общему API.

При разделенном подходе за Front-End отвечает отдельная команда разработчиков, что дает большую гибкость в найме новых сотрудников или ротации разработчиков, т.к работают с привычным стеком технологий.

При современном подходе к разработке Front-End: Site Application, за основу часто выбирают реактивные фреймворки, мы используем Vue.js (+ Nuxt) или React (+ Next.js) на выбор клиента.

На крупных проектах используем FSD архитектуру и API-First (Spec first) подход при разработке Front-End части приложения.

Когда за back-end и front-end отвечают разные команды, появляются проблемы с коммуникацией между ними, основной пул вопросов связан с проектировкой API Endpoint и структурами данных. API-First подход необходим для минимизации временных издержек на планерки, созвоны, старт работ (фронт и бэк реализуются параллельно, когда пилится бизнес-логика, верстка готова), подключения новых разработчиков (передача знаний от разработчика к разработчику).

Также возникает вопрос — где и как вести документацию по API, чтобы разработчики (бэк/фронт) могли совместно ее разрабатывать и корректировать, на помощь приходит Open API спецификация.

2. Для оптимизации работы разработчиков (бэк/фронт), минимизации временных издержек при редактировании файлов схем Open API и агрегирования разных API, встает вопрос автоматизации. На помощь приходят инструменты по автоматической генерации Open API, файлов схем.

Инструмент: OpenAPI Generator

Php пакет: ircote/swagger-php

Также пробуем альтернативу Open API в виде jsight, для простых проектов, синтаксис выглядит проще.

Инструмент: jsight

3. Чтобы реализовать централизованную обработку маршрутов и HTTP запросов поступающих на back-end API проектов необходим функционал по реализации роутинга.

В Open Source решениях и фреймворках, таких как Slim или symfony/routing, достаточно гибкости, функционала, скорость обработки HTTP запросов также выше. В Open Source решениях используется внутри кэширование карты маршрутов + composer пакет, реализованный одним из активных контрибьюторов ядра языка PHP.

До появления Bitrix Routing для работы с маршрутами и реализации API обработчиков со стороны back-end у нас использовался PHP composer-пакет Slim, на нем и остаемся.

Composer PHP пакет: Slim 4

Для реализации обратной совместимости с Bitrix Routing и файлом urlrewrite.php реализован кастомный функционал.

Также имеется аналогичная сборка с полноценным подключением Symfony в Bitrix, маршрутизацией через компонент symfony/routing: разработчику становятся доступны любые bundles и components из экосистемы Symfony.

Примеры проектов, которые реализованы и эффективно работают

restore: — крупнейшая сеть магазинов и сервисных центров техники Apple в России.

Результат работы команды Progressive Media:

Усовершенствование архитектуры делает интернет-магазин простым в использовании и сопровождении, сокращает время на разработку и поддержку проекта. Использование Vue js и Symfony фреймворков позволяет выстроить стандартизированную работу, которую можно автоматизировать.

Motherbear - одна из крупнейших сетей магазинов товаров для будущих мам и детей.

Результат работы команды Progressive Media:

Подход позволил быстро начать получать прибыль, не тратить дополнительные деньги заказчика на разработку дополнительных лендингов и сайтов разработанных на шаблонах, бесшовно расширять и дорабатывать уже готовый проект.

Масштабирование сложных web-проектов на Bitrix

Заключение

Важно оценить бизнес-цели и технические требования перед тем, как выбирать инструмент. Выше мы перечислили плюсы решения Progressive Media, на которые обращают внимание заказчики.

Если вы быстро развивающийся бизнес или у вас крупный проект, с большим количеством интеграций, то сотрудничество с Progressive Media будет оптимальным.

progressivemedia.ru/#feedback - для получения консультации от экспертов Progressive Media.

20+ полезных ссылок для специалистов Bitrix. Статьи:

22
Начать дискуссию