Рубрики
Uncategorized

Микрофронтальные фронта, приложения на основе ролей, и вы

Все слышали о микросервисах, но никто не говорит о Micro Frontends. Узнайте, как включить безопасный, высоко итерабильный пользовательский интерфейс в ваше следующее приложение. Tagged с дизайном, DevOps, программированием.

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

Они могут масштабироваться независимо, дать командам приложений возможность кодировать в Наиболее подходящий язык Чтобы выполнить работу, и оставить вам небольшой радиус взрыва, если что -то не удалось (то есть все приложение остается в состоянии, если один микросервис не удается).

Все большие орудия тоже делают это. Убер имеет ~ 2200 микросервисов , Netflix имеет Около 700 и Амазонка … Ну, у Amazon много.

Но знаете ли вы, что вы можете применить те же основные принципы к передней части? Микро Не должен применяться только к API -интерфейсам.

Что такое микрофинд?

Micro Frontends следуют тем же понятиям и предлагают те же преимущества, что и микросервисы. Он берет ваш большой монолит пользовательского интерфейса и разбивает его на небольшие, изолированные, независимо итерабируемые куски.

Простая архитектура микрофинга

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

Как вы должны!

Так разве не имеет смысла разделить свой передний конец на куски размером с укус? ДА!

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

Если вы думаете о том, чтобы попасть в непрерывная доставка Я настоятельно рекомендую рассмотреть вопрос о том, чтобы также попасть в микрофинды. Предоставление небольших, постепенных обновлений — это именно то, о чем представляет собой эта архитектура, и с помощью микрофиндов вы позволяете себе это сделать.

Приложения на основе ролей

Если вы решите сделать прыжок в микрофинды, поздравляю ! Вы также открыли себя для шаблона, который спасет вас много головных болей в будущем: Приложения на основе ролей Анкет

Вы спросите, что такое приложение, основанное на роле,?

Применение на основе ролей-это система, состоящая из микрофиндов и API с конкретными ограничениями безопасности.

Давайте возьмем пример.

Вы являетесь создателем форума для энтузиастов сельдерея, Сталкер с стеблем Анкет Архитектурная схема для форума выглядит так:

На вашем форуме у вас есть пользователи с различными наборами определенных разрешений. Каждый набор определенных разрешений известен как роль Анкет У вас есть четыре роли в Сталкер с стеблем :

  • Пользователь — Просмотреть и создавать сообщения
  • Модератор — Просмотреть, редактировать, создавать и удалять сообщения
  • Администратор — Просмотреть, редактировать, создавать и удалять сообщения и управлять модераторами
  • Запрещено — ничего такого

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

Любой, кто имеет соответствующую роль, может получить доступ к этой части приложения. Что еще более важно, любой без Допустимая роль явно отрицается Доступ к микрофинде.

Если ваш API публичный, что это должно быть Эти разрешения также должны применяться на API.

Закрепление микрофронталов

Существует много разных способов добавления безопасности в веб -приложение и поддержку API. С приложениями, основанными на роле, вы должны включить роль где-то в Auth. Будь то отдельный заголовок или закулисный поиск, Вы должны подтвердить, что пользователь имеет разрешение делать то, что он пытается сделать Анкет

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

Вход в систему> Роль пользователя поиска> Пользователь имеет роль? > Несанкционированный/ОК

API сделает что -то подобное, за исключением того, что он не должен быть привязан к событию входа в систему. Пользователь уже будет вошел в систему к тому времени, когда будут выполнены любые вызовы API. Так что убедитесь, что у вас есть идентифицирующая информация о пользователе в токене авторизации. Что -то вроде OAuth 2.0 Предоставляет контекст, необходимый для однозначного идентификации пользователя через JWT (JSON Web Token) .

Добавление Роль Заголовок к вашим запросам API позволит вам легко добавить тесты безопасности в ваше приложение. Тщательные, исчерпывающие тесты безопасности являются обязательными при создании приложения сегодня. Злоусовеченные пользователи, которые попытаются использовать вашу систему, и вам нужна уверенность в том, что вы правильно настроили свои микрофинды и API.

Я предоставил Почтальон Сбор и окружающая среда в My GitHub Repo Это автоматически проверит ваш API для отверстий безопасности. Используйте это, чтобы убедиться, что у вас есть надлежащий микрофинд и API Design Чтобы поддержать ваше приложение.

Доступ к микрофрондам

На самом деле нет правильного или неправильного способа обеспечить доступ к вашему микрофинде. Я забираю это обратно. Есть определенно неправильные пути.

Двумя наиболее распространенными способами предоставить вашим пользователям доступ к микрофрондам, которые через субдомены и Маршруты Анкет

Вы видите оба шаблона по всему Интернету, и это полностью зависит от вас, как вы хотите реализовать.

Если вы увлекаетесь настройкой таблиц маршрутизации DNS, субдомины могут быть вашим новым лучшим другом. Если вы избегаете маршрутизации DNS, как чума, маршруты будут способом. В любом случае вы выбираете, Предоставление вашим пользователям бесшовным опытом — ваша основная цель Анкет

Микро -вывод

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

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

Построить безопасность непосредственно в ваши приложения. Определите роли с известным набором разрешений. Заблокируйте это.

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

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

Оригинал: «https://dev.to/allenheltondev/micro-frontends-role-based-applications-and-you-h1k»