automation

Trình duyệt đám mây hay cục bộ: điều gì thực sự khác biệt

Trình duyệt đám mây và trình duyệt cục bộ khác nhau ở nơi phiên chạy và ai có thể nhìn thấy nó, không phải ở danh sách tính năng. Đây là điều thực sự thay đổi.

Đã cập nhật 6 phút đọc Agilelogin product team

Những điểm chính

  • Sự khác biệt thực sự giữa trình duyệt đám mây và trình duyệt cục bộ nằm ở nơi phiên chạy, không phải bên nào có nhiều tính năng hơn.
  • IP đầu ra, đặc điểm máy và đường mạng của một trình duyệt được lưu trữ thuộc về hạ tầng của nhà cung cấp, không thuộc về người vận hành — đây là một sự thật về ranh giới tin cậy, không phải một giải pháp tình thế.
  • Mỗi chặng giữa agent và trình duyệt được lưu trữ đều cộng thêm độ trễ khứ hồi; trình duyệt cục bộ loại bỏ hoàn toàn chặng đó.
  • Bên vận hành trình duyệt được lưu trữ có thể thấy lưu lượng giữa trình duyệt và mặt phẳng điều khiển của nó; trình duyệt cục bộ không có bên thứ ba nào như vậy.
  • Không có lựa chọn nào “tốt hơn” một cách tuyệt đối — hai kiến trúc trả lời hai câu hỏi khác nhau về việc ai cần thấy điều gì.

Trình duyệt chạy ở đâu, và điều đó thay đổi những gì

“Trình duyệt đám mây” và “trình duyệt cục bộ” mô tả hai nơi khác nhau để cùng một phần mềm thực thi, và vị trí đó chính là toàn bộ câu chuyện. Trình duyệt đám mây chạy trên hạ tầng do nhà cung cấp vận hành — một trung tâm dữ liệu, một cụm container, một nhóm instance headless — và một agent hoặc script tiếp cận nó qua mạng, thường thông qua CDP được công khai dưới dạng một endpoint WebSocket từ xa. Trình duyệt cục bộ chạy trên chính máy của người vận hành, và bất kỳ bề mặt tự động hóa nào nó công khai cũng ở lại trên máy đó.

Vị trí đó quyết định ranh giới tin cậy. Với một trình duyệt được lưu trữ, hạ tầng của nhà cung cấp nằm giữa người vận hành và mọi trang mà trình duyệt tải: nó kết thúc kết nối, có thể ghi lại những gì đi qua nó, và là một bên trong phiên bất kể có ai đọc log đó hay không. Với một trình duyệt cục bộ, hạ tầng duy nhất tham gia vào chuỗi này là chính thiết bị của người vận hành. Không sắp xếp nào tự nhiên an toàn hơn — một cụm được lưu trữ vận hành tốt có thể được cô lập một cách chuyên nghiệp, và một máy cục bộ bảo trì kém có thể là mắt xích yếu hơn — nhưng chúng không phải cùng một ranh giới, và coi hai thứ đó có thể hoán đổi cho nhau chính là nơi sai lầm bắt đầu. Câu hỏi đáng đặt ra trước khi chọn không phải là “cái nào mạnh hơn”, mà là “ngoài người vận hành ra, còn ai cuối cùng có thể nhìn thấy phiên này”.

Độ trễ và tính cục bộ đối với tự động hóa

Tính cục bộ còn kéo theo một hệ quả thứ hai, mang tính cơ học hơn: khoảng cách tốn thời gian. Trình duyệt cục bộ nhận lệnh và thực thi ngay trên cùng một máy, không có bước nhảy mạng nào giữa lệnh và trang. Trình duyệt được lưu trữ cộng thêm ít nhất một lượt khứ hồi — thường là vài lượt, một khi script phát ra một chuỗi lệnh gọi CDP thay vì một yêu cầu đơn lẻ — giữa nơi logic tự động hóa chạy và nơi instance trình duyệt thực sự tồn tại. Với vài hành động lẻ tẻ, độ trễ này gần như vô hình. Nhưng với một quy trình phát ra hàng trăm lệnh nhỏ đến một trang, chờ selector, và phản ứng với những gì tìm thấy, các lượt khứ hồi đó cộng dồn lại, và sự khác biệt giữa “trên chính máy này” và “ở đâu đó trên mạng của nhà cung cấp” trở thành một phần thực sự trong tổng thời gian chạy của quy trình.

Ở quy mô lớn, yếu tố địa lý càng làm điều này rõ hơn, chứ không hề dịu đi. Một instance trình duyệt được lưu trữ được cấp phát ở bất cứ nơi nào nhà cung cấp có năng lực, điều đó không nhất thiết gần người vận hành hay gần các trang mà quy trình cần tiếp cận. Tính cục bộ của trình duyệt cục bộ là cố định và đã biết trước: nó ở đúng nơi máy của người vận hành đã có mặt, đi theo đường mạng mà máy đó đã có sẵn tới trang đích. Vị trí có thể dự đoán trước không đồng nghĩa với luôn nhanh hơn trong mọi trường hợp — một trung tâm dữ liệu có peering tốt vẫn có thể vượt qua một kết nối gia đình — nhưng nó loại bỏ một biến số nữa khi một lượt chạy chậm mà không ai chắc chắn vì sao.

Điều một trình duyệt được lưu trữ nhìn thấy mà trình duyệt cục bộ thì không

Câu hỏi về khả năng nhìn thấy ở phần đầu có một hình dạng cụ thể ngay khi tự động hóa bước vào bức tranh. Nhà cung cấp của một trình duyệt được lưu trữ có thể quan sát — như một sự thật kiến trúc chứ không phải chính sách riêng của một nhà cung cấp cụ thể — lưu lượng giữa instance trình duyệt và bất cứ thứ gì điều khiển nó, cookie và dữ liệu lưu trữ mà phiên tích lũy trong lúc chạy, và danh tính mạng — IP đầu ra, đặc điểm máy — mà mọi trang trình duyệt truy cập đều nhìn thấy. Không điều nào trong số này đòi hỏi ai đó phải hành động thiếu thiện chí; đó đơn giản là ý nghĩa thực tế của việc “hạ tầng của nhà cung cấp nằm ở giữa”. Trình duyệt cục bộ không có bên thứ ba tương đương. Cookie và dữ liệu lưu trữ của nó ở lại trên thiết bị của người vận hành, đầu ra mạng của nó là bất cứ thứ gì người vận hành đã cấu hình sẵn, và không có hạ tầng nhà cung cấp nào nằm giữa trình duyệt và các trang nó truy cập.

Đây cũng là nơi Profile phát huy tác dụng, bất kể trình duyệt chạy ở đâu. Một giao diện tự động hóa điều khiển một trình duyệt cục bộ vẫn cần kỷ luật riêng của nó về việc Profile nào thuộc về phiên nào — tính cục bộ thay đổi việc còn ai khác có thể thấy một phiên, chứ không thay đổi việc bản thân quy trình có cần trạng thái được cô lập, gắn nhãn rõ ràng theo từng agent hay không. Một trình duyệt cục bộ không có cô lập theo Profile vẫn có thể làm rò rỉ cookie của một quy trình vào phiên của quy trình khác; kiến trúc trả lời một câu hỏi khác với câu hỏi mà mô hình cô lập trả lời, và cái này không thay thế được cái kia.

Đây là sự khác biệt kiến trúc, không phải một danh sách tính năng

Thật hấp dẫn khi giải quyết câu hỏi “trình duyệt đám mây hay trình duyệt cục bộ” bằng một bảng so sánh — các hàng cho tốc độ, chi phí, công sức thiết lập — theo cách một cẩm nang mua hàng vẫn làm. Cách khung hình đó đánh giá thấp điều thực sự khác biệt. Chi phí và công sức thiết lập là thuộc tính của cách định giá và đóng gói của một sản phẩm cụ thể, và chúng thay đổi theo từng nhà cung cấp và từng tháng. Nơi phiên chạy, và ngoài người vận hành ra còn ai nhìn thấy nó, không thay đổi theo giá — điều đó được cố định bởi kiến trúc ngay khi trình duyệt được cấp phát ở đâu đó. Đó là sự khác biệt đáng để cân nhắc trước khi chọn: không phải bên nào hiện có danh sách tính năng tốt hơn, mà là trạng thái và lưu lượng của quy trình thực sự sẽ nằm ở đâu, và liệu câu trả lời đó có chấp nhận được đối với những gì quy trình xử lý hay không.

Không kiến trúc nào là lựa chọn mặc định đúng cho mọi công việc. Một quy trình cần chạy liên tục ở quy mô mà một máy đơn lẻ không thể chịu được, không phụ thuộc vào việc một thiết bị cụ thể của người vận hành có đang bật hay không, có lý do thực sự để tìm đến hạ tầng được lưu trữ. Một quy trình được xây dựng xoay quanh các tài khoản và phiên mà người vận hành muốn giữ hoàn toàn tách khỏi hạ tầng của bên thứ ba cũng có lý do thực sự không kém để giữ trình duyệt ở cục bộ. Câu trả lời trung thực cho câu hỏi “đám mây hay cục bộ” là: điều đó phụ thuộc vào việc ai cần nhìn thấy phiên đó — và đây là câu hỏi đáng để trả lời một cách có chủ đích, thay vì mặc định chọn kiến trúc nào từng dễ cấp phát nhất lúc ban đầu.