Cloudflare 작업자

Cloudflare의 CDN에서 호스팅하는 빠른 서버리스 기능

에지 네트워크의 서버리스 기능

Cloudflare에는 "서비스로서의 백엔드"를 제공하는 클라우드 기반 제품의 전체 제품군이 있으며 Cloudflare 작업자는이 제품군의 중요한 부분입니다. Cloudflare 작업자는 V8 엔진으로 구동되는 Node.js 환경에서 호스팅되는 Javascript (또는 선호하는 경우 Typescript)로 작성된 서버리스 함수입니다. 로컬에서 작성하고 "wrangler"-CLI를 통해 배포하거나 클라우드에서 직접 개발할 수 있습니다.

// 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")
}

여기에서 처음으로 "서버리스 기능"을 들으 셨다면 여기에 간단한 설명이 있습니다. 서버리스 기능은 말 그대로 서비스의 비즈니스 로직을 캡슐화하고 클라우드에서 호스팅되는 기능입니다. 가장 큰 장점은 서버를 직접 호스팅, 패치 및 유지 관리하는 데 1 초의 시간을 낭비 할 필요가 없다는 것입니다. 함수를 "업로드"하기 만하면 몇 분 안에 전 세계에서 사용할 수 있습니다.

Cloudflare는 전 세계에 많은 엔드 포인트가있는 매우 큰 콘텐츠 전송 네트워크를 제어하기 때문에 특히 제품의 속도를 촉진합니다. 물론이 CDN은 Cloudflare 작업자에게도 활용됩니다.

백엔드를 전 세계에 배포하는 방법

Cloudflare 작업자를 배포 할 때마다 전 세계 여러 위치에서 공유되고 업데이트됩니다. 이를 통해 Cloudflare는 수신 요청을 항상 가장 가까운 엔드 포인트로 라우팅하여 서버리스 기능을 호출하여 네트워크 지연을 몇 밀리 초로 줄일 수 있습니다. Cloudflare가 수행하는이 라우팅은 요청시 투명합니다. 라우팅 및 균형로드는 백그라운드에서 자동으로 수행됩니다.

Cloudflare Worker 아키텍처의 토폴로지를 더 잘 이해하기 위해 다음은 높은 수준에서 낮은 수준으로 분류 한 것입니다.

언급했듯이 Cloudflare에는 전 세계 여러 위치에있는 많은 서버로 구성된 CDN이 있습니다.
단일 위치 자체는 들어오는 요청을 처리하는 여러 서버로 구성됩니다.
단일 서버를 확대하면이 컴퓨터가 Javascript V8 엔진으로 구동되는 소위 "Workers 런타임"을 실행하는 것을 볼 수 있습니다.
마지막으로 서버리스 함수는이 런타임 내에서 하나의 "격리"일뿐입니다. 단일 런타임은 수천 개의 기능을 동시에 호스팅 할 수 있습니다.

특히 중요한 정보 : 배포하는 각 Cloudflare 작업자에는 다른 모든 프로세스와 격리 된 자체 메모리가 있습니다. 이렇게하면 데이터가 실제로 인스턴스에서만 액세스 할 수 있습니다.

Cloudflare 작업자를 사용하는 경우와 사용하지 않는 경우

Cloudflare 작업자는 매우 흥미롭고 다른 제공 업체의 서버리스 기능을 사용하는 기존 앱이있는 경우에도 시도해 볼 가치가 있습니다. 그러나 이것은 또한 Cloudflare의 제품이 채택하기 더 어려운 주된 이유를 지적 할 수 있습니다. Vercel과 결합 된 Next.js 또는 Google의 Firebase와 같은 많은 서비스도 이러한 솔루션을 제공합니다. 현재 해당 제품을 사용하고 있다면 Cloudflare로 전환하는 것은 의미가 없습니다.

하지만 새 프로젝트를 시작하는 경우 Cloudflare 작업자를 백엔드로 사용하는 것이 좋습니다. 그들의 사용은 사용 사례 측면에서 사실상 무제한입니다. 또한 Cloudflare는 귀하의 요구 사항에 맞는 다양한 기타 서비스를 제공합니다.

제안

관련된

부록

언어