24 điểm bởi GN⁺ 2025-08-01 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Kernel là một nền tảng serverless giúp nhà phát triển triển khai ngay mã tự động hóa trình duyệt mà không cần phải bận tâm đến hạ tầng riêng, đồng thời có thể mở rộng ở quy mô lớn
  • Không cần thiết lập hay xây dựng pipeline, có thể triển khai và chạy mã với tốc độ gần như tương đương phát triển cục bộ
  • Cung cấp trình duyệt Chrome có thể dùng trong môi trường sandbox, đồng thời tự động chuyển các agent đã viết thành API để có thể gọi từ bất cứ đâu
  • Hỗ trợ tích hợp với các framework dựa trên Chrome DevTools Protocol như Playwright, Puppeteer, đồng thời cho phép giám sát và điều khiển theo thời gian thực bằng GUI từ xa (live view)
  • Hỗ trợ môi trường Unikraft unikernel để cung cấp các tính năng tối ưu hiệu năng như khởi động lại siêu nhanh, khôi phục snapshot, giảm thiểu tài nguyên
  • Hỗ trợ hai phương thức triển khai là Docker imageUnikraft unikernel, có thể sử dụng trong nhiều môi trường cloud/container khác nhau
  • Toàn bộ mã được chạy an toàn trong máy ảo cách ly, đồng thời cung cấp công cụ quan sát và gỡ lỗi theo thời gian thực

What's Kernel?

  • Kernel cung cấp một môi trường Chrome sandbox sẵn sàng để sử dụng, và repository này là mã nền tảng cho dịch vụ hosting của Kernel
  • Có thể dễ dàng kết nối từ các framework trình duyệt dựa trên Chrome DevTools như Playwright, Puppeteer

Why use Kernel?

  • Triển khai từ local lên production chỉ trong vài giây
    • Không cần thiết lập riêng hay pipeline production, có thể triển khai và chạy mã trong thời gian gần tương đương bun run dev
  • Chuyển mọi agent thành API
    • Tất cả agent được đưa lên nền tảng đều tự động được expose thành API để có thể gọi từ bên ngoài
  • Khả năng mở rộng song song
    • Có thể khởi chạy và mở rộng ngay lập tức hàng nghìn instance trình duyệt khi cần
  • Tăng cường cách ly và khả năng quan sát
    • Mã chạy trong VM cách ly nên bảo mật cao hơn, đồng thời có sẵn công cụ giám sát và gỡ lỗi
  • Mô hình giá đơn giản, dễ dự đoán
    • Không cần định nghĩa trước hạ tầng, chỉ phát sinh chi phí theo đúng lượng tài nguyên đã dùng

Các tính năng chính

  • Môi trường trình duyệt tích hợp: tạo và điều khiển trình duyệt ngay trên cloud, tối ưu cho tự động hóa workload
  • Có thể kết nối và sử dụng trình duyệt Chrome sandbox từ các framework tự động hóa dựa trên DevTools
    • Tích hợp với Playwright, Puppeteer... qua cổng 9222
    • Lấy CDP WebSocket endpoint rồi kết nối từ client từ xa
    • Có thể ngắt kết nối/kết nối lại
  • Duy trì trạng thái phiên: giữ liên tục phiên trình duyệt như cookie, token xác thực, lịch sử... ngay cả giữa các lần gọi
  • Khởi động lại siêu nhanh (standby mode): khởi động lại ngay instance trình duyệt trong dưới 20ms
  • Có thể kiểm tra và điều khiển màn hình trình duyệt theo thời gian thực bằng GUI từ xa (live view streaming)
    • noVNC: dựa trên VNC, hỗ trợ đọc/ghi, cần tắt WebRTC
    • WebRTC: thời gian thực, đọc/ghi, đổi kích thước cửa sổ, sao chép/dán, hiệu năng cao, cần ENABLE_WEBRTC=true
    • Không hỗ trợ streaming âm thanh, chế độ chỉ đọc có thể được thiết lập bằng biến môi trường
  • Video replay của phiên trình duyệt: có thể xem lại các phiên trước để gỡ lỗi và phân tích (sắp hỗ trợ)

Triển khai và phát hành

  • Sử dụng Docker container

    • Có thể chạy Chromium giao diện đầy đủ trong Docker container
    • Sau cd images/chromium-headful, có sẵn script build và chạy
    • Có thể bật WebRTC và các thiết lập khác bằng biến môi trường
  • Sử dụng Unikraft Unikernel

    • Khi chạy trên nền unikernel của Unikraft, cung cấp khởi động nhanh hơn và standby mode tốt hơn so với nền Docker
    • Nếu không có lưu lượng mạng, hệ thống tự động chuyển sang standby mode và hỗ trợ snapshot/khôi phục trạng thái
    • Cold start dưới 20ms, có thể duy trì và khôi phục trạng thái phiên (cookie, file, cài đặt trình duyệt...)
    • Yêu cầu bộ nhớ từ 8GB trở lên
  • Lưu ý khi triển khai

    • Cần TURN server khi bật streaming dựa trên WebRTC
    • Khi triển khai unikernel, một URL công khai sẽ được cấp và ai cũng có thể truy cập, vì vậy không dùng cho tác vụ nhạy cảm và cần xóa instance sau khi sử dụng

Chưa có bình luận nào.

Chưa có bình luận nào.