20P by neo 2일전 | ★ favorite | 댓글 2개
  • Kernel은 개발자가 브라우저 자동화 코드를 별도 인프라 고민 없이 바로 배포하고, 대규모로 확장할 수 있게 해주는 서버리스 플랫폼
  • 설정이나 파이프라인 구축 없이, 로컬 개발과 거의 동일한 속도로 코드를 배포하고 실행할 수 있음
  • 샌드박스 환경에서 사용할 수 있는 Chrome 브라우저를 제공하며, 작성한 에이전트를 자동으로 API로 변환, 어디서든 호출 가능
  • Playwright, Puppeteer 등 Chrome DevTools Protocol 기반 프레임워크와의 연동을 지원하며, 원격 GUI(라이브 뷰) 로 실시간 모니터링 및 제어가 가능함
  • Unikraft unikernel 환경 지원으로 초고속 재시작, 스냅샷 복원, 리소스 최소화 등 고성능 특화 기능 제공
  • Docker 이미지Unikraft unikernel 두 가지 배포 방식을 지원, 다양한 클라우드/컨테이너 환경에서 활용 가능함
  • 모든 코드는 격리된 가상 머신에서 안전하게 실행되며, 실시간 관찰 및 디버깅 도구 제공

What's Kernel?

  • Kernel은 샌드박스된, 바로 사용할 수 있는 Chrome 브라우저 환경을 제공하며, 이 저장소는 Kernel의 호스팅 서비스를 위한 기반 코드임
  • Playwright, Puppeteer 등 Chrome DevTools 기반 브라우저 프레임워크에서 쉽게 연결 가능

Why use Kernel?

  • 로컬에서 프로덕션까지 수 초 내 배포
    • 별도의 설정이나 프로덕션 파이프라인 없이, bun run dev와 거의 같은 시간에 코드 배포 및 실행 가능
  • 모든 에이전트를 API로 전환
    • 플랫폼에 올린 모든 에이전트가 자동으로 API로 노출되어, 외부에서 호출 가능
  • 병렬 확장성
    • 수천 개 브라우저 인스턴스를 필요할 때마다 즉시 실행 및 확장 가능
  • 격리 및 관찰성 강화
    • 코드가 격리된 VM에서 실행되어 보안성 높고, 모니터링 및 디버깅 도구 제공
  • 예측 가능한 간단한 요금제
    • 사전 인프라 정의 없이, 사용한 리소스만큼만 비용 발생

주요 기능

  • 통합 브라우저 환경 : 클라우드 상에서 브라우저를 즉시 생성·제어, 워크로드 자동화에 최적화
  • 샌드박스 Chrome 브라우저를 DevTools 기반 자동화 프레임워크에서 연결 사용 가능
    • 9222 포트를 통해 Playwright, Puppeteer 등과 연동
    • CDP WebSocket 엔드포인트 획득 후 원격 클라이언트에서 연결
    • 연결 해제/재연결 가능
  • 세션 상태 유지 : 쿠키, 인증 토큰, 히스토리 등 브라우저 세션을 호출 간에도 지속 관리
  • 초고속 재시작(standby mode) : 브라우저 인스턴스를 20ms 이하로 즉시 재시작
  • 원격 GUI(라이브 뷰 스트리밍) 로 브라우저 화면을 실시간으로 확인 및 제어 가능함
    • noVNC: VNC 기반, 읽기/쓰기 지원, WebRTC 비활성화 필요
    • WebRTC: 실시간, 읽기/쓰기, 창 크기 조정, 복사/붙여넣기, 고속 성능, ENABLE_WEBRTC=true 필요
    • 오디오 스트리밍은 미지원, 읽기 전용 모드는 환경 변수로 설정 가능
  • 브라우저 세션 비디오 리플레이 : 과거 세션을 다시 보며 디버깅 및 분석 가능 (지원예정)

구현 및 배포

  • Docker 컨테이너 사용

    • headful Chromium을 Docker 컨테이너에서 실행 가능
    • cd images/chromium-headful 후, 빌드 및 실행 스크립트 제공
    • 환경변수로 WebRTC 활성화 및 기타 설정 가능
  • Unikraft Unikernel 사용

    • Unikraft unikernel 기반 실행 시, Docker 기반보다 더 빠른 시작 및 절전 모드 제공
    • 네트워크 트래픽이 없으면 자동으로 standby 모드 진입, 상태 스냅샷/복원 지원
    • Cold start 20ms 미만, 세션 상태(쿠키, 파일, 브라우저 설정 등) 유지 및 복원 가능
    • 8GB 이상의 메모리 필요
  • 배포 시 참고사항

    • WebRTC 기반 스트리밍 활성화 시 TURN 서버 필요
    • unikernel 배포 시 공개 URL이 발급되어 누구나 접근 가능하므로 민감 작업에 사용 금지, 사용 후 인스턴스 삭제 필요

커널을 이기고 구글 1페이지에 나올 자신이 있나봅니다.

이름 이름부터 글러먹었…