Cloudflare Python Workers, 콜드 스타트 시간 2.4배 단축!
by DD
5개월 전
조회수 27
Cloudflare Python Workers는 Pyodide를 통해 다양한 패키지 지원 및 uv 기반 개발 환경을 제공함
메모리 스냅샷 기술을 활용하여 AWS Lambda 대비 2.4배 빠른 콜드 스타트 성능을 달성함
pywrangler를 통해 패키지 설치 및 배포를 간소화하고, FastAPI 등 다양한 프레임워크 지원
메모리 스냅샷을 활용한 콜드 스타트 개선
Cloudflare는 WebAssembly 기반 Pyodide를 사용하여 메모리 스냅샷을 구현했다. 구체적으로, Worker 배포 시 최상위 스코프를 실행하고 메모리 상태를 저장한다. 따라서 새로운 요청 시 스냅샷을 복원하여 콜드 스타트 시간을 획기적으로 줄였다.
uv 기반 패키지 관리 및 배포
Cloudflare는 uv를 선택하여 Python 패키지 관리 경험을 개선했다. pywrangler는 `pyproject.toml`을 읽고, uv를 통해 종속성을 설치한다. 결과적으로, 개발자는 `pywrangler dev` 및 `pywrangler deploy` 명령어로 로컬 테스트와 배포를 간편하게 수행할 수 있다.
WebAssembly 런타임의 기술적 도전
WebAssembly 환경에서 메모리 스냅샷은 몇 가지 기술적 도전을 수반한다. 함수 포인터 테이블과 JavaScript 객체 참조를 정확하게 복원해야 한다. 따라서, Cloudflare는 동적 라이브러리 로딩 순서를 기록하고, JavaScript 객체 접근 방식을 제한하는 방식으로 문제를 해결했다.