← Справочные архитектуры / reference-architecture / diagrams / serverless
Бессерверные глобальные API
Введение
Serverless API, это современный подход к созданию и развёртыванию масштабируемых и надёжных программных интерфейсов (API) без необходимости управлять традиционной серверной инфраструктурой. Такие API предназначены для обработки входящих запросов от пользователей или других систем, выполнения нужной логики или операций и возврата ответа, причём разработчику не требуется выделять серверы или управлять ими.
В основе serverless API лежит концепция serverless-вычислений, при которой разработчики сосредотачиваются исключительно на написании кода бизнес-логики, не задумываясь о выделении серверов, масштабировании и обслуживании. Это обеспечивает большую гибкость и ускоряет вывод API-приложений на рынок.
Разработчики определяют конечные точки API и соответствующую логику или функциональность с помощью функций или микросервисов, которые затем развёртываются на serverless-платформе. Платформа выполняет эти функции в ответ на входящие запросы.
Кроме того, бессерверные API часто легко интегрируются с другими облачными сервисами, такими как сервисы аутентификации и авторизации, базы данных и событийно-ориентированные архитектуры, что позволяет разработчикам создавать сложные, масштабируемые и отказоустойчивые приложения при минимальных операционных затратах.
В большинстве бессерверных облачных решений код выполняется в единственном регионе. Это означает, что любой запрос из любой точки мира должен пройти через интернет, чтобы достичь этого единственного места. Ответ на запрос к API также должен вернуться пользователю по тому же маршруту через интернет.

Cloudflare придерживается иного подхода, ориентированного прежде всего на глобальное развертывание. Глобально распределенная архитектура снижает задержки и обеспечивает высокую доступность для пользователей, которые обращаются к API из разных точек мира. Чтобы действительно выиграть в производительности, распределенным должен быть не только вычислительный слой, но в идеале и сам слой данных. Добиться этого позволяют такие решения, как кэширование и глобальная репликация.

В целом бессерверные API с глобальным развёртыванием предлагают экономически эффективный, масштабируемый и гибкий подход к созданию современных приложений и сервисов, позволяя организациям сосредоточиться на пользе для своих пользователей, не отвлекаясь на сложности управления инфраструктурой.
Бессерверные глобальные API
Это пример архитектуры бессерверного API на Cloudflare, призванный показать, как могут взаимодействовать между собой разные продукты для вычислений и работы с данными.
- Запрос клиента: Отправка запроса на конечную точку API.
- API Shield/Router: Обработка входящего запроса с помощью Workers, проверить его валидность и при необходимости выполнить логику аутентификации. Затем передать (возможно, преобразованный и (или) дополненный) вызов API отдельным Workers с помощью Service Bindings. Это обеспечивает разделение ответственности.
- Данные с преимущественным чтением: Чтение из KV для обслуживания преимущественно читаемых, статических данных. Это могут быть конфигурационные данные или сведения о продуктах. Выполняйте запись по мере необходимости, сохраняя ограничения в виду.
- Реляционные данные: Запрос к D1 для работы с реляционными данными. Это могут быть данные пользователей, данные о продуктах или другие данные.
- Внешние данные: Запрос к внешним базам данных с помощью Hyperdrive. Там, где это применимо, используйте кеширование для повышения производительности. Это особенно полезно, если миграция данных не входит в рамки внедрения.