RSS

Комментарии

PostgreSQL поддерживает более широкий спектр современных типов данных, включая массивы, hstore (хранилище типа “ключ-значение”) и JSONB (бинарный JSON), которые обеспечивают более гибкие и эффективные возможности хранения данных. С другой стороны, MySQL имеет ограниченный набор типов данных и ориентирован на более простые веб-приложения.
Язык для нас действительно, не так важен. Здесь ориентировались на компетенции разработчиков, которых можно было задействовать под развитие системы без выделения дополнительных ресурсов
Язык для нас действительно, не так важен. Здесь ориентировались на компетенции разработчиков, которых можно было задействовать под развитие системы без выделения дополнительных ресурсов
Язык для нас действительно, не так важен. Здесь ориентировались на компетенции разработчиков, которых можно было задействовать под развитие системы без выделения дополнительных ресурсов
Язык для нас действительно, не так важен. Здесь ориентировались на компетенции разработчиков, которых можно было задействовать под развитие системы без выделения дополнительных ресурсов
Почему был выбран язык платформы .net core, а не php или Java? Для разработки headless язык платформы не так важен.
Почему был выбран язык платформы .net core, а не php или Java? Для разработки headless язык платформы не так важен.
Почему был выбран язык платформы .net core, а не php или Java? Для разработки headless язык платформы не так важен.
Почему был выбран язык платформы .net core, а не php или Java? Для разработки headless язык платформы не так важен.
Как было написано в комментарии, на текущий момент в экосистеме МТС применяются различные инструменты для управления контентом. Возникла потребность в оптимизации и унификации текущих подходов к управлению контентом и передаче данных витринам. Развитие данной CMS требует привлечения внешней экспертизы, а также было интересно сравнить функциональность и удобство использования с другими решениями, поэтому начали заниматься исследованием рынка.
Как было написано в комментарии, на текущий момент в экосистеме МТС применяются различные инструменты для управления контентом. Возникла потребность в оптимизации и унификации текущих подходов к управлению контентом и передаче данных витринам. Развитие данной CMS требует привлечения внешней экспертизы, а также было интересно сравнить функциональность и удобство использования с другими решениями, поэтому начали заниматься исследованием рынка.
Как было написано в комментарии, на текущий момент в экосистеме МТС применяются различные инструменты для управления контентом. Возникла потребность в оптимизации и унификации текущих подходов к управлению контентом и передаче данных витринам. Развитие данной CMS требует привлечения внешней экспертизы, а также было интересно сравнить функциональность и удобство использования с другими решениями, поэтому начали заниматься исследованием рынка.
Как было написано в комментарии, на текущий момент в экосистеме МТС применяются различные инструменты для управления контентом. Возникла потребность в оптимизации и унификации текущих подходов к управлению контентом и передаче данных витринам. Развитие данной CMS требует привлечения внешней экспертизы, а также было интересно сравнить функциональность и удобство использования с другими решениями, поэтому начали заниматься исследованием рынка.
А как же вот эта CSM quantumart, которая у вас уже используется? Она всем вашим требованиям удовлетворяет.
А как же вот эта CSM quantumart, которая у вас уже используется? Она всем вашим требованиям удовлетворяет.
А как же вот эта CSM quantumart, которая у вас уже используется? Она всем вашим требованиям удовлетворяет.
А как же вот эта CSM quantumart, которая у вас уже используется? Она всем вашим требованиям удовлетворяет.
Задача вносила корректировку к требованиям. В первую очередь нам были интересны решения, которые позволяют работать не с простым контентом (как, например, статьи на сайте), а со сложной иерархичной структурой данных, связанными сущностями, вложенными компонентами и т. д.

2. Требования и критерии выбора

При выборе CMS учитывались общие требования к функциональности, возможности кастомизации и специфические потребности команды, обусловленные используемым ИТ-ландшафтом.

Основные критерии выбора:

— Open Source решение и лицензии без дополнительных ограничений, в том числе на использование в коммерческих целях — возможность кастомизации под потребности компании, использование в составе других продуктов;
— Headless CMS — ключевое внимание на управление данными, уровень представления реализуется внешними витринами и зависит от их специфики и потребностей;
— максимально близкое команде продукта по стеку — backend предпочтительно C#, СУБД MongoDB и PostgreSQL;
— поддержка GraphQL API — у нас активно внедряется данный подход межсистемного взаимодействия, поддержка GraphQL API упростит интеграцию решения в общий ИТ-ландшафт;
— возможность создавать свою модель данных — постоянно запускаются новые продукты, у каждой группы продуктов свои особенности и атрибутивный состав, поэтому важно иметь гибкие возможности по моделированию;
— поддержка SSO (Single sign-on) — данный механизм является стандартом в компании, позволяет пользователю не тратить время на авторизацию в каждой системе;
— работа с мультимедийным контентом: управление изображениями в различных разрешениях, видео контентом, бинарными документами и т. п.;
— наличие локализации — для перевода контента на различные языки;
— наличие версионирования контента — для отслеживания истории изменений и возможности отката к прошлым версиям;
— возможность управления workflow — управлением возможными статусами у сущностей, включая поддержку отложенной публикации контента;
— удобство использования;
— импорт контента из внешних источников — для упрощения процесса миграции на новую систему;
— производительность ~2000 RPS;
— информирование внешних систем об изменении данных;
— возможность генерации API по созданной модели — для сокращения трудозатрат на разработку;
— ролевая модель пользователей и API — для разграничения прав доступа к управлению контентом;
— мультитенантность — возможность управления контентом в одной CMS для нескольких команд, где у каждой из них свое пространство.

3. Классы CMS

Традиционные CMS

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

Типичные представители: WordPress, Joomla, Drupal.

Headless CMS

Предоставляет UI для управления моделью данных, UI для управлениям самими данными и основное — API реализующее набор CRUD операций на данными.

Именно через API происходит потребление этих данных внешними витринами и каналами.

Выделяют следующие типы решений:

— API Driven — используют СУБД для хранения данных (может использовать объектное хранилище для бинарных файлов);
— Git-based — используют Git репозиторий для хранения контента, как правило подходят для для простых задач, с небольшой частотой изменений.

Некоторые решения не предоставляет UI для управления моделями, модель описывается программным кодом.

4. Ситуация на рынке Headless CMS

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

Бэкенд при данном подходе существует отдельно от фронта, что дает возможность использовать один бэкенд для хранения и передачи контента для отображения на всех вышеуказанных витринах данных. Это позволяет централизовать ведение данных по продуктам, а задачу их отображения и верстки оставить на стороне витрины. Потенциально мы даем необходимую гибкость продуктовым командам.

На рынке сейчас представлено большое количество Headless CMS. Когда мы делали выбор, какие из систем хотим «пощупать» (установить и попробовать смоделировать данные на примере нескольких продуктов), в первую очередь обращали внимание на популярность системы.

Поэтому первой начали рассматривать Strapi, которая является лидером на рынке и занимает первые места в многочисленных обзорах. В процессе столкнулись с серьезными багами и ограничениями, необходимостью глобальной доработки (включая бэкенд и модель СУБД). Несмотря на то, что в нашей команде есть JS-разработчики, трудно было переключить их от бизнес-задач к полноценной доработке бэка системы для продолжения пилота.

Мы решили посмотреть альтернативные Headless CMS на стеке .NET C#. При этом уже понимали, какие возможности нужны в первую очередь и на чем нужно сфокусироваться:

— поддержка использования компонент данных (набор элементов разных типов);
— массивы компонент;
— различные типы связи;
— набор UI контроллов для удобного наполнения данными.

Под наши запросы подошли Squidex и Orchard Core.

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

Отпал ряд решений, которые не предоставляют UI для управления моделью, и модель задается прямо в коде.
Задача вносила корректировку к требованиям. В первую очередь нам были интересны решения, которые позволяют работать не с простым контентом (как, например, статьи на сайте), а со сложной иерархичной структурой данных, связанными сущностями, вложенными компонентами и т. д.

2. Требования и критерии выбора

При выборе CMS учитывались общие требования к функциональности, возможности кастомизации и специфические потребности команды, обусловленные используемым ИТ-ландшафтом.

Основные критерии выбора:

— Open Source решение и лицензии без дополнительных ограничений, в том числе на использование в коммерческих целях — возможность кастомизации под потребности компании, использование в составе других продуктов;
— Headless CMS — ключевое внимание на управление данными, уровень представления реализуется внешними витринами и зависит от их специфики и потребностей;
— максимально близкое команде продукта по стеку — backend предпочтительно C#, СУБД MongoDB и PostgreSQL;
— поддержка GraphQL API — у нас активно внедряется данный подход межсистемного взаимодействия, поддержка GraphQL API упростит интеграцию решения в общий ИТ-ландшафт;
— возможность создавать свою модель данных — постоянно запускаются новые продукты, у каждой группы продуктов свои особенности и атрибутивный состав, поэтому важно иметь гибкие возможности по моделированию;
— поддержка SSO (Single sign-on) — данный механизм является стандартом в компании, позволяет пользователю не тратить время на авторизацию в каждой системе;
— работа с мультимедийным контентом: управление изображениями в различных разрешениях, видео контентом, бинарными документами и т. п.;
— наличие локализации — для перевода контента на различные языки;
— наличие версионирования контента — для отслеживания истории изменений и возможности отката к прошлым версиям;
— возможность управления workflow — управлением возможными статусами у сущностей, включая поддержку отложенной публикации контента;
— удобство использования;
— импорт контента из внешних источников — для упрощения процесса миграции на новую систему;
— производительность ~2000 RPS;
— информирование внешних систем об изменении данных;
— возможность генерации API по созданной модели — для сокращения трудозатрат на разработку;
— ролевая модель пользователей и API — для разграничения прав доступа к управлению контентом;
— мультитенантность — возможность управления контентом в одной CMS для нескольких команд, где у каждой из них свое пространство.

3. Классы CMS

Традиционные CMS

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

Типичные представители: WordPress, Joomla, Drupal.

Headless CMS

Предоставляет UI для управления моделью данных, UI для управлениям самими данными и основное — API реализующее набор CRUD операций на данными.

Именно через API происходит потребление этих данных внешними витринами и каналами.

Выделяют следующие типы решений:

— API Driven — используют СУБД для хранения данных (может использовать объектное хранилище для бинарных файлов);
— Git-based — используют Git репозиторий для хранения контента, как правило подходят для для простых задач, с небольшой частотой изменений.

Некоторые решения не предоставляет UI для управления моделями, модель описывается программным кодом.

4. Ситуация на рынке Headless CMS

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

Бэкенд при данном подходе существует отдельно от фронта, что дает возможность использовать один бэкенд для хранения и передачи контента для отображения на всех вышеуказанных витринах данных. Это позволяет централизовать ведение данных по продуктам, а задачу их отображения и верстки оставить на стороне витрины. Потенциально мы даем необходимую гибкость продуктовым командам.

На рынке сейчас представлено большое количество Headless CMS. Когда мы делали выбор, какие из систем хотим «пощупать» (установить и попробовать смоделировать данные на примере нескольких продуктов), в первую очередь обращали внимание на популярность системы.

Поэтому первой начали рассматривать Strapi, которая является лидером на рынке и занимает первые места в многочисленных обзорах. В процессе столкнулись с серьезными багами и ограничениями, необходимостью глобальной доработки (включая бэкенд и модель СУБД). Несмотря на то, что в нашей команде есть JS-разработчики, трудно было переключить их от бизнес-задач к полноценной доработке бэка системы для продолжения пилота.

Мы решили посмотреть альтернативные Headless CMS на стеке .NET C#. При этом уже понимали, какие возможности нужны в первую очередь и на чем нужно сфокусироваться:

— поддержка использования компонент данных (набор элементов разных типов);
— массивы компонент;
— различные типы связи;
— набор UI контроллов для удобного наполнения данными.

Под наши запросы подошли Squidex и Orchard Core.

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

Отпал ряд решений, которые не предоставляют UI для управления моделью, и модель задается прямо в коде.
Задача вносила корректировку к требованиям. В первую очередь нам были интересны решения, которые позволяют работать не с простым контентом (как, например, статьи на сайте), а со сложной иерархичной структурой данных, связанными сущностями, вложенными компонентами и т. д.

2. Требования и критерии выбора

При выборе CMS учитывались общие требования к функциональности, возможности кастомизации и специфические потребности команды, обусловленные используемым ИТ-ландшафтом.

Основные критерии выбора:

— Open Source решение и лицензии без дополнительных ограничений, в том числе на использование в коммерческих целях — возможность кастомизации под потребности компании, использование в составе других продуктов;
— Headless CMS — ключевое внимание на управление данными, уровень представления реализуется внешними витринами и зависит от их специфики и потребностей;
— максимально близкое команде продукта по стеку — backend предпочтительно C#, СУБД MongoDB и PostgreSQL;
— поддержка GraphQL API — у нас активно внедряется данный подход межсистемного взаимодействия, поддержка GraphQL API упростит интеграцию решения в общий ИТ-ландшафт;
— возможность создавать свою модель данных — постоянно запускаются новые продукты, у каждой группы продуктов свои особенности и атрибутивный состав, поэтому важно иметь гибкие возможности по моделированию;
— поддержка SSO (Single sign-on) — данный механизм является стандартом в компании, позволяет пользователю не тратить время на авторизацию в каждой системе;
— работа с мультимедийным контентом: управление изображениями в различных разрешениях, видео контентом, бинарными документами и т. п.;
— наличие локализации — для перевода контента на различные языки;
— наличие версионирования контента — для отслеживания истории изменений и возможности отката к прошлым версиям;
— возможность управления workflow — управлением возможными статусами у сущностей, включая поддержку отложенной публикации контента;
— удобство использования;
— импорт контента из внешних источников — для упрощения процесса миграции на новую систему;
— производительность ~2000 RPS;
— информирование внешних систем об изменении данных;
— возможность генерации API по созданной модели — для сокращения трудозатрат на разработку;
— ролевая модель пользователей и API — для разграничения прав доступа к управлению контентом;
— мультитенантность — возможность управления контентом в одной CMS для нескольких команд, где у каждой из них свое пространство.

3. Классы CMS

Традиционные CMS

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

Типичные представители: WordPress, Joomla, Drupal.

Headless CMS

Предоставляет UI для управления моделью данных, UI для управлениям самими данными и основное — API реализующее набор CRUD операций на данными.

Именно через API происходит потребление этих данных внешними витринами и каналами.

Выделяют следующие типы решений:

— API Driven — используют СУБД для хранения данных (может использовать объектное хранилище для бинарных файлов);
— Git-based — используют Git репозиторий для хранения контента, как правило подходят для для простых задач, с небольшой частотой изменений.

Некоторые решения не предоставляет UI для управления моделями, модель описывается программным кодом.

4. Ситуация на рынке Headless CMS

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

Бэкенд при данном подходе существует отдельно от фронта, что дает возможность использовать один бэкенд для хранения и передачи контента для отображения на всех вышеуказанных витринах данных. Это позволяет централизовать ведение данных по продуктам, а задачу их отображения и верстки оставить на стороне витрины. Потенциально мы даем необходимую гибкость продуктовым командам.

На рынке сейчас представлено большое количество Headless CMS. Когда мы делали выбор, какие из систем хотим «пощупать» (установить и попробовать смоделировать данные на примере нескольких продуктов), в первую очередь обращали внимание на популярность системы.

Поэтому первой начали рассматривать Strapi, которая является лидером на рынке и занимает первые места в многочисленных обзорах. В процессе столкнулись с серьезными багами и ограничениями, необходимостью глобальной доработки (включая бэкенд и модель СУБД). Несмотря на то, что в нашей команде есть JS-разработчики, трудно было переключить их от бизнес-задач к полноценной доработке бэка системы для продолжения пилота.

Мы решили посмотреть альтернативные Headless CMS на стеке .NET C#. При этом уже понимали, какие возможности нужны в первую очередь и на чем нужно сфокусироваться:

— поддержка использования компонент данных (набор элементов разных типов);
— массивы компонент;
— различные типы связи;
— набор UI контроллов для удобного наполнения данными.

Под наши запросы подошли Squidex и Orchard Core.

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

Отпал ряд решений, которые не предоставляют UI для управления моделью, и модель задается прямо в коде.