Что такое API Gateway: 10 главных функций и роль в архитектуре микросервисов [полный гайд]

Микросервисная архитектура уже давно стала нормой для IT-продуктов. И одну из центральных ролей в таком подходе занимает API Gateway. В этой статье разберём, что такое API Gateway, зачем он нужен в микросервисной архитектуре, какие 10 ключевых функций он выполняет, и является ли он потенциальной точкой отказа в системе. Внутри вы найдёте много картинок и примеров схем архитектуры, чтобы объяснения были максимально понятными. Материал будет полезен системным аналитикам, начинающим архитекторам, разработчикам и тестировщикам, особенно при подготовке к собеседованиям в продуктовые компании. Оглавление: Что такое API Gateway 10 главных функций API Gateway Виды API Gateway API Gateway - центральная точка отказа Примеры схем архитектуры с API Gateway в нотации C4 (и не только) Заключение и полезные ссылки

https://habr.com/ru/articles/967830/

#api_gateway #архитектура_системы #системный_анализ #системный_аналитик #api_шлюзы #c4_модель #backend #architecture_design #проектирование_архитектуры

Что такое API Gateway: 10 главных функций и роль в архитектуре микросервисов [полный гайд]

В современных IT-продуктах микросервисная архитектура уже давно норма, и одну из центральных ролей в таком подходе занимает API Gateway. В этой статье разберём, что такое API Gateway , зачем он нужен...

Хабр

[Перевод] Почему случается оверинжиниринг

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и вдобавок с половиной функций CNCF. В теории выглядит впечатляюще. В реальности же это машина Руба Голдберга, решающая задачи, которых у команды на самом деле нет. В качестве противоположного примера возьмём Levels.fyi . Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами. Всем нам свойственно подхватывать синдром главного героя. Рано или поздно архитектура в большей мере становится не решением текущих задач, а защитой от потенциальных будущих проблем. Кажется, что каждый новый проект должен начинаться с полного набора распределённых систем, вне зависимости от того, разрастётся ли приложение до масштабов, достаточных, чтобы оправдать их необходимость. Разумеется, при этом команды начинают тонуть в сложности, затратах на облачные услуги и низкой скорости выпуска релизов.

https://habr.com/ru/companies/ruvds/articles/957276/?utm_source=habrahabr&utm_medium=rss&utm_campaign=957276

#микросервисы #монолиты #проектирование_архитектуры #сложность_систем #ruvds_переводы

Почему случается оверинжиниринг

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и...

Хабр

[Перевод] Почему случается оверинжиниринг

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и вдобавок с половиной функций CNCF. В теории выглядит впечатляюще. В реальности же это машина Руба Голдберга, решающая задачи, которых у команды на самом деле нет. В качестве противоположного примера возьмём Levels.fyi . Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами. Всем нам свойственно подхватывать синдром главного героя. Рано или поздно архитектура в большей мере становится не решением текущих задач, а защитой от потенциальных будущих проблем. Кажется, что каждый новый проект должен начинаться с полного набора распределённых систем, вне зависимости от того, разрастётся ли приложение до масштабов, достаточных, чтобы оправдать их необходимость. Разумеется, при этом команды начинают тонуть в сложности, затратах на облачные услуги и низкой скорости выпуска релизов.

https://habr.com/ru/companies/ruvds/articles/957276/

#микросервисы #монолиты #проектирование_архитектуры #сложность_систем #ruvds_переводы

Почему случается оверинжиниринг

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и...

Хабр

Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах

Ситуация, знакомая многим: разрабатываем сервис, пилим в нём фичи, развиваем продукт… но постепенно всё выходит из под контроля. Кодовая база разрастается, зависимости становятся сложнее. Команда разработчиков тратит больше времени на распутывание существующих проблем, чем на создание новой функциональности. Хорошая новость: распутать спагетти-код можно по-разному, и иногда срабатывают не самые очевидные способы. В нашем случае помогла комбинация действий: не просто выделение части кода в отдельные микросервисы, но и параллельная реализация архитектурного подхода DDD Lite (в связке с принципами чистой архитектуры). О том, как в рамках кейса мы избавились от спагетти-зависимостей, поделили сервис на чёткие слои, упростили поддержку и масштабирование кода, — рассказываем под катом. Плюс делимся рекомендациями: кому и при каких сценариях связка «DDD Lite + микросервисы» может пригодиться.

https://habr.com/ru/companies/sravni/articles/896894/

#nestjs #DDDlite #domain_driven_design #луковая_архитектура #typescript #onion_architecture #проектирование_архитектуры #микросервисы

Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах

Ситуация, знакомая многим: разрабатываем сервис, пилим в нём фичи, развиваем продукт… но постепенно всё выходит из под контроля. Кодовая база разрастается, зависимости становятся сложнее. Команда...

Хабр

Нотация моделирования архитектуры С4 — примеры диаграмм и инструменты

Если возникает вопрос об описании архитектуры системы, то есть несколько основных решений где и как это сделать. Среди популярных нотаций для визуализации схемы архитектуры можно выбрать C4, разработанную Саймоном Брауном. В этой статье я хочу показать практический пример применения нотации C4, который вы сможете использовать как ориентир в своей работе, а также инструменты для её создания. Статья полезна для системных аналитиков, архитекторов, разработчиков, менеджеров проектов и тех, кто участвует в создании и принятии решений по организации архитектуры проекта.

https://habr.com/ru/articles/778726/

#архитектура_системы #c4_модель #системный_анализ #проектирование_архитектуры #моделирование_систем #нотации #c4 #backend #architecture_design

Нотация моделирования архитектуры С4 — примеры диаграмм и инструменты

Если возникает вопрос об описании архитектуры системы, то есть несколько основных решений где и как это сделать. Популярные нотации для визуализации схем архитектуры: C4, ArchiMate, SysML, 4+1, AADL....

Хабр