IT 이모저모

Cloudflare가 "Cloudflare Workers '를 출시

exien 2018. 3. 19. 15:20

CDN 업체의 Cloudflare은 회사가 제공하는 글로벌 콘텐츠 전송 네트워크 (CDN)의 가장자리에서 개발자가 JavaScript 코드를 배치하여 수행 할 수있는 새로운 기능 "Cloudflare Workers '의 일반 제공을 시작했다고 발표했다 .

Cloudflare Workers

Cloudflare Workers를 사용하면 개발자는 네트워크의 반대편에있는 클라우드가 아닌 이용자에게 가장 가까운 CDN의 가장자리에 위치한 Cloudflare의 데이터 센터 내에서 JavaScript 코드를 실행 할 수 있습니다.

이를 통해 클라이언트에 대해 매우 빠른 응답을 반환 할 수 광범위하게 분산 된 높은 중복을 가진 분산 시스템을 구축 할 수 있습니다.

이 회사는 일본을 포함한 전세계 127 데이터 센터를 확장하고 있습니다.

Cloudflare 데이터 센터

"클라우드의 꿈"Cloudflare Workers에서 수

Cloudflare Workers가 제공하는 코드가 사용자의 가까운 위치에서 자동으로 실행되는 환경 이야말로 "클라우드 컴퓨팅의 꿈」이다이 회사는 Cloudflare Workers 발표 기사 에서 다음과 같이 쓰고 있습니다.

We believe the true dream of cloud computing is that your code lives in the network itself. Your code does not run in "us-west-4"or "South Central Asia (Mumbai)", it runs everywhere.

우리가 믿는 것은 클라우드 컴퓨팅의 진정한 꿈은 당신이 쓴 코드가 네트워크 자체에서 활동하는 것이다. 그것은 결코 코드가 "us-west-4」나 ​​「남쪽 중앙 아시아 (뭄바이)"에서 실행되는 것이 아니라, 어디에서나 실행되는 일이다.

Cloudflare Workers를 이용하면, 예를 들면 다음과 같은 것이 가능하게된다고 설명되어 있습니다.

  • 다른 유형의 요청에 따라 다른 원 서버에 요청을 라우팅하는
  • HTML 템플릿 배포를 가장자리로하고, 원 서버의 대역폭 비용을 절감
  • 캐시 콘텐츠에 대한 액세스 제어 적용
  • 일부 사용자를 준비 서버로 리디렉션
  • 전혀 다른 두 개의 백엔드간에 A / B 테스트를 실현
  • Web API에 전적으로 의존하는 서버 레스 응용 프로그램의 실현
  • 응용 프로그램 사용자 정의 보안 필터를 만들고 불필요한 트래픽을 차단하는
  • 요청 재 작성 캐시 적중률 향상
  • 자신의로드 밸런싱 및 페일 오버 로직의 구현
  • 빠른 수정에 의한 운영 서버와 애플리케이션의 업데이트 생략
  • 브라우저에 독립적 분석 데이터 수집

JavaScript 엔진 V8과 Service Worker

Cloudflare Workers의 JavaScript 실행 환경으로 제공되는 것이 Chrome 브라우저와 Node.js의 JavaScript 엔진으로 사용되고있다 "V8"라고 Service Worker의 API 군입니다. 회사에 따르면, 에지에서 JavaScript 코드는 1 마이크로 초 이내에 실행이 시작되는 것. 또한 실행 환경은 Node.js를 사용하지 않는다고 설명되어 있습니다.

Service Worker는 HTML5의 새로운 기능으로 책정 된 것으로, 원래는 Web 브라우저에 구현되어 백그라운드에서 실행되는 이른바 프로그래밍 가능한 로컬 프록시입니다. 라우팅 및 응답 및 캐싱 등을 조작하여 오프라인에서 동작하는 Web 어플리케이션을 실현하는 데 중요한 기능을 제공합니다.

Service Worker는 현재 주요 Web 브라우저 등의 구현이 진행되고 있습니다. 그리고 Service Worker 등이 제공하는 오프라인 기능 등을 갖춘 'Progressive Web Application "(PWA)라는 새로운 종류의 Web 어플리케이션의 보급으로 발전하려고하고 있습니다.

왜 Service Worker를 구현했는지?

원래 Web 브라우저에 구현하는 것이 상정 된 Service Worker를 왜 Cloudflare는 CDN의 가장자리에 구현하려고 한 것입니까?

지난해 9 월 Cloudflare Workers의 베타 버전을 발표하면서 자사의 블로그 게시물 " Introducing Cloudflare Workers '에 따르면,이 회사는 Cloudflare Workers의 구상 단계에서는 Service Worker의 구현은 생각하지 않고, JavaScript 실행 환경 및 자체 후크 기능을 제공하는 것을 생각했습니다.

We all start from the assumption that we 'd provide two main "hooks"where the developer could insert a callback : a request hook and a response hook. The request hook callback could modify the request, and the response hook callback modify the response. Then we think about the cache, and we say : ah, some hooks should run pre-cache and some post-cache. So now we have four hooks. Generally, it was assumed these hooks would be pure non-blocking functions.

우리는 원래 개발자가 콜백을 임베드 같은 두 개의 메인 "후크"를 제공하려고 생각하고있었습니다. 요청 후크 및 응답 후크입니다. 요청 후크 콜백 요청을 변경할 수 응답 후크 콜백은 응답을 변경할 수 있습니다. 남아는 캐시를 어떻게할지 만 미리 캐시 및 사후 캐시의 고리가 있으면 좋을 것입니다. 이제 4 개의 후크되고, 이들은 단순하고 비 차단 기능이 될 것이 었습니다. 
Introducing Cloudflare Workers '에서

그런데 이런 생각은 그 미팅에서 Servce Worker의 상정하고있는 사례와 흡사하다는 것을 지적 되었기 때문에 자신 구현이 아닌 표준 사양이다 Service Worker를 구현하는 방향으로 변경되었다는 것입니다 .

Cloudflare Workers는 무료로 사용할 수있는 " Cloudflare Workers Playground」가 준비되어 누구나 시도 할 수있게되어 있습니다.