← Справочные архитектуры / reference-architecture / diagrams / serverless
Fullstack-приложения
Full-stack веб-приложения объединяют фронтенд- и бэкенд-технологии, обеспечивая целостный и динамичный пользовательский опыт. Такие приложения опираются на широкий технологический стек: пользовательские интерфейсы, серверные сервисы, базы данных, интеграции и, все чаще, функции на основе искусственного интеллекта, что позволяет им работать слаженно и надежно масштабироваться.
На frontend разработчики обычно используют HTML, CSS и JavaScript, часто вместе с фреймворками React, Next.js или Angular. Эти инструменты обеспечивают структуру и интерактивность, необходимые современным пользовательским интерфейсам, и помогают управлять состоянием, отображать динамический контент, персонализировать опыт пользователей и оптимизировать производительность на разных устройствах.
На backend серверный код выполняет такие задачи, как обработка запросов, выполнение бизнес-логики, аутентификация пользователей, интеграция ИИ-моделей и взаимодействие с базами данных. Разработчики создают эти сервисы на языках JavaScript, Python или Java, используя фреймворки, которые упрощают маршрутизацию, работу с middleware и создание API.
Базы данных играют критически важную роль в стеке технологий, обеспечивая хранение и получение данных приложений. Реляционные базы данных, такие как MySQL, PostgreSQL и SQLite, управляют структурированными данными и обеспечивают их целостность, а NoSQL-решения, такие как MongoDB или Cassandra, обеспечивают гибкость при работе с неструктурированными или крупномасштабными наборами данных.
Современная fullstack-разработка всё активнее задействует внешние сервисы, API, готовые компоненты и возможности ИИ. Такой подход снижает необходимость создавать сложные функции с нуля, например модерацию контента, персональные рекомендации и семантический поиск. Благодаря этому команды разработки могут создавать приложения быстрее и эффективнее.
Developer Platform от Cloudflare объединяет все эти возможности в единой, глобально распределенной среде, предоставляя разработчикам все необходимое для создания, развертывания и масштабирования современных fullstack-приложений с минимальными затратами на эксплуатацию.
Платформа Cloudflare предлагает не просто отдельные сервисы. Она предлагает компонуемая экосистема, что позволяет командам быстро создавать мощные приложения, легко масштабироваться и быстрее внедрять инновации без затрат на управление инфраструктурой.
Диаграмма full-stack приложения
В этом разделе на практическом примере показано, как эти сервисы сочетаются друг с другом в реальной архитектуре fullstack приложения.
1. Клиент
Отправляет запросы на сервер. Это можно сделать через браузер на компьютере или мобильном устройстве либо через нативное или мобильное приложение.
2. Безопасность
Обработка входящих запросов для обеспечения безопасности приложения. Сюда входит шифрование трафика с использованием SSL/TLS, предлагая Защита от DDoS, отфильтровывая вредоносный трафик через межсетевой экран веб-приложений (WAF), меры защиты от автоматизированных ботов, а также API Shield чтобы выявлять и устранять уязвимости вашего API. В зависимости от конфигурации запросы можно блокировать, регистрировать в журнале или пропускать на основании самых разных параметров. Разумные полностью управляемые конфигурации и настройки по умолчанию позволяют сократить поверхность атаки практически без дополнительных издержек.
3. Производительность
Обслуживайте статические запросы с глобальный кеш (CDN). Это снижает задержку и потребление ресурсов, поскольку запросы обслуживаются из кэша, а не требуют обращения к сервисам хранения, медиа или вычислений. Используйте Argo Smart Routing чтобы направлять запросы по наиболее эффективному сетевому маршруту, избегая перегрузок.
4. Вычисления
Обработка динамических запросов с помощью бессерверных вычислений с использованием Workers. Это может включать аутентификацию, маршрутизацию, промежуточное ПО, взаимодействие с базами данных и обслуживание API. Кроме того, Ресурсы Workers можно использовать для обслуживания фреймворков клиентского или серверного рендеринга, таких как React, Next.js или Angular. Используйте Workers for Platforms чтобы разрешить пользователям развёртывать собственный код на вашей платформе или дать им возможность развёртывать свой код напрямую. Для нагрузок с сохранением состояния Durable Objects обеспечивают вычисления с сохранением состояния и низкой задержкой, выполняя логику рядом с местом хранения данных объекта, что обеспечивает координацию, сохранность данных и обмен данными в реальном времени на периферии сети.
Для нагрузок, которым требуется гибкость традиционной контейнеризации, Containers позволяет запускать существующие Docker-совместимые приложения в глобальной сети Cloudflare. Containers предназначен для приложений, которым требуется больше ресурсов, чем предоставляет стандартный Worker.
5. Данные и хранилище
Добавляйте состояние в приложения, сохраняя и получая данные. Сюда входит R2 для объектного хранилища, D1 для реляционных данных, KV для данных с высокой интенсивностью чтения и Durable Objects для строго согласованного хранения данных. руководство по вариантам хранения может помочь оценить, какой вариант хранения данных подходит для конкретного сценария использования.
6. Контент и медиа в реальном времени
Создавайте бессерверные приложения для видео, аудио и данных, работающие в реальном времени, с помощью Realtime. Отдавайте оптимизированные изображения из Изображения и видео по запросу, а также прямые трансляции от Stream.
7. AI
С Workers AI, разработчики могут запускать популярные модели с открытым исходным кодом для таких задач, как генерация текста, анализ изображений и модерация контента, работающие на серверных GPU. Vectorize это глобально распределенная векторная база данных для поиска по сходству, персонализации и рекомендательных функций. Агенты дополнительно расширяют возможности AI. Cloudflare предлагает Agents SDK, который позволяет создавать и развёртывать AI-агентов, способных выполнять задачи, взаимодействовать в реальном времени, вызывать модели, управлять состоянием, запускать workflow, обращаться к данным и интегрировать действия с участием человека (human-in-the-loop).
8. Оркестрация и абстракция
Queues обеспечивают надёжный асинхронный обмен сообщениями, позволяя разделить сервисы и справляться со всплесками трафика. Workflows оркеструют сложные процессы, объединяющие API, сервисы и согласования с участием людей, абстрагируя управление инфраструктурой и состоянием. Pipelines позволяют получать большие объемы данных в реальном времени без необходимости управлять какой-либо инфраструктурой.
9. Cloudflare Observability
Отправляйте логи всех служб с помощью Logpush, получайте аналитику с помощью Workers Logs прямо в панели управления Cloudflare, собирать собственные метрики из Workers с помощью Workers Analytics Engine, или наблюдать за AI-приложениями и управлять ими с помощью AI Gateway.
10. Внешние журналы и аналитика
Интегрируйте решения Cloudflare для observability с уже используемыми у вас сторонними решениями. Logpush поддерживает множество места назначения для хранения и дальнейшего анализа. Кроме того, аналитику Cloudflare можно интегрируется с аналитическими решениями. GraphQL Analytics API обеспечивает гибкие запросы и интеграции.
11. Инструменты и предоставление ресурсов
Определение и управление ресурсами и конфигурацией с помощью сторонних инструментов и фреймворков, таких как Terraform и Pulumi, интерфейс командной строки (CLI) платформы Cloudflare Developer Platform Wrangler, или Cloudflare API. Все эти инструменты можно использовать как для ручного развертывания, так и в автоматизированном виде в составе CI/CD-конвейеров.
12. Интеграции с внешними сервисами
Developer Platform от Cloudflare создана для бесперебойной интеграция с внешними сервисами. Независимо от того, идет ли речь о подключении к сторонним API, базам данных, SaaS-платформам или облачным провайдерам, разработчики могут легко отправлять исходящие запросы из Workers, запускать рабочие процессы на основе внешних событий и безопасно обмениваться данными между системами.