Рабочие Cloudflare

Быстрые бессерверные функции, размещенные в CDN Cloudflare

Бессерверные функции в пограничной сети

Cloudflare предлагает целый набор облачных продуктов, предлагающих «серверную часть как услугу», и Cloudflare Workers - важная часть этого набора. Cloudflare Workers - это бессерверные функции, написанные на Javascript (или, желательно, на Typescript), которые размещаются в среде Node.js на базе движка V8. Вы можете написать их локально и развернуть через CLI «wrangler» или разработать непосредственно в облаке.

// This is a minimal example for a
// serverless function hosed by
// Cloudflare. You define this code
// in a JS-file and upload it via the
// 'wrangler'-CLI.

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  return new Response("Hello world")
}

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

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

Как распространить ваш бэкэнд по всему миру

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

Чтобы лучше понять топологию архитектуры Cloudflare Worker, вот разбивка с высокого на низкий уровень:

Как уже упоминалось, у Cloudflare есть CDN, состоящая из множества серверов в разных точках земного шара.
Одно место состоит из множества серверов, обрабатывающих входящие запросы.
Увеличивая масштаб одного сервера, мы видим, что на этой машине работает так называемая «рабочая среда выполнения», которая работает на движке Javascript V8.
Наконец, ваша бессерверная функция - всего лишь один из «изоляторов» внутри этой среды выполнения; одна среда выполнения может одновременно выполнять тысячи функций

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

Когда использовать Cloudflare Workers, а когда нет

Cloudflare Workers звучат очень увлекательно, и их определенно стоит попробовать, даже если у вас уже есть приложения, которые используют бессерверные функции от других поставщиков. Тем не менее, это может также указать на основную причину, по которой продукт Cloudflare сложнее принять: многие сервисы, такие как Next.js в сочетании с Vercel или Firebase от Google, также предлагают такие решения. Если вы в настоящее время пользуетесь их продуктами, переход на Cloudflare не имеет особого смысла.

Но если вы начинаете новый проект, стоит подумать об использовании Cloudflare Workers в качестве бэкэнда. Их использование практически не ограничено с точки зрения вариантов использования. Кроме того, Cloudflare предлагает широкий спектр других услуг, которые могут соответствовать вашим требованиям.

Предложения

Связанные

Приложение

Языки