Pull to refresh

Что такое FEaaS (Front-End-as-a-Service)

Преамбула

Примерно год назад я задумался о вопросе смены работы. На тот момент я занимал позицию Senior Software Developer в крупной Enterprise-oriented компании, и примерно 80% своего времени проводил "формошлепствуя" однообразные страницы, компоненты и пр. Ничего интересного и особо нового. Начав шерстить рынок вакансий в поисках чего-то ближе к Team/Tech Leading я наткнулся на вакансию Solution Architect в компанию, занимающуюся разработкой FEaaS.

До этого я никогда не сталкивался с этим понятием, и первое что "взбрело" в голову - "Ребята пилят FE под заказ, или сделали какую-то абстракцию из которой можно напилить быстро свой FE". В лучшем случае - звучало как очередной framework поверх других framework-ов, в худшем - как банальный site builder. Но интерес взял верх.

Отправив резюме - я быстро получил ответ с предложением назначить технический звонок с Solution Architect-ом, который уже работает в компании. При подготовке к собеседование я попытался найти информацию о том, что же такое этот ваш FEaaS/FaaS. Но ничего толкового не гуглилось.

Фабула

На деле - все оказалось куда интереснее. Итак, определение которое используется самой компанией-разработчиком FEaaS:

The Frontend Service is the service responsible for displaying the right content on the different target devices and systems (Smartphone, Desktop-Browser, Display at the Point-of-Sales, Wearable like Smartwatch, …) quickly and optimally for the respective display.


The content can come from different source systems: a classic from a Content Management System (CMS), from an eCommerce solution, but also from sources such as Enterprise Resource Planning (ERP) systems or CRMs (Customer Relationship Management) as well as many more (see table “Everything as a Service”) are possible.

In the Frontend-as-a-Service, these sources are combined into Atomic design building blocks. These building blocks can come from different source systems, for example, a specific article from eCommerce and a supplementary text from the CMS. In a partner portal, for example, it could be certain information about the partner and his leads from the CRM and additional information, for example, about the partner’s sales, from the ERP system.

Источник

Если кратко и "своими словами" - FEaaS предоставляет вам гибкий PaaS для создания собственных компонентов и быстрого/легкого комбинирования этих компонентов в сайты.

Немного детальнее

При написании Front-End части сайта/приложения - вы обязательно столкнетесь с такими темами

  • Настройка bundling-а(webpack, gulp, grunt)

  • Настройка "framework-box" (настройка и подключение всех обязательных библиотек для создания полноценного приложения, и процесс "подружить их друг с другом")

  • Оптимизация asset-ов (минификация кода, стилей, картинок, подключение CDN)

  • CI/CD

  • Application Hoisting (собственно Deployment на какой-то сервер)

  • Настройка PWA

  • Настройка роутинга

  • Создание "шаблонных компонентов" для страниц

Идея FEaaS в том, что-бы решить все эти задачи вместо разработчика (ведь подход к их решению похож от случая к случаю), и позволить девелоперам сконцентрироваться на написании компонентов и реализации "бизнес-логики" FE составляющей приложения. При этом сама "прослойка" служит исключительно "отображающим" элементом и не хранит данных, не обрабатывает "серверную логику".

FEaaS является частью "Headless Movement", т.е. подхода при котором для каждой части системы выбирается best-of-breed вендор и вся система строится из таких нескольких вендоров. Разработчикам на стороне бизнеса остается создавать реюзабельные компоненты на FE и "коннекторы" к другим частям системы. Это сильно экономит время и перекладывает часть ответственности за стабильность работы элементов системы на вендоров (которые в свою очередь гарантируют всякие SLA и стандарты качества).

В свою очередь, вендоры FEaaS как правило предоставляют и собственные "коннекторы" ко многим популярным Headless-CMS, BaaS, CRM, ERP и пр. частям системы. И все что остается делать разработчикам - создавать красивый Front-End.

Послесловие

Front-End-as-a-Service появился относительно недавно, и еще не получил такого распространения как те же BaaS/PaaS и прочие. Да и сам по себе является по факту комбинацией PaaS, SaaS и всевозможных других вариаций *-as-a-Service.

Из основных преимуществ для бизнеса

  • Time-to-market speed

  • Экономия ресурсов (финансовых и человеческих)

  • Минимизация рисков отказа системы

На данный момент - этот вид *-as-s-Service получил распространение в eCommerce, но и для других направлений бизнеса этот вид продукта предоставляет серьезный потенциал для быстрого роста

Если статья понравится читателям - в следующей напишу про существующих вендоров этого вида программного продукта, их основные преимущества и недостатки.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.