Câu hỏi hay! Tôi làm việc trong nhóm ZeroVM và hy vọng tôi có thể giúp làm sáng tỏ mọi thứ!
ZeroVM có cung cấp một container tương tự Docker không?
Không thật sự lắm. Docker sử dụng LXC và các tính năng hạt nhân khác để cung cấp môi trường hộp cát. ZeroVM chạy hoàn toàn bằng userspace và Hố cát cho một đơn ứng dụng.
Tóm lại, ZeroVM hoạt động bằng cách xác nhận hợp lệ đầu tiên ứng dụng sẽ được chạy và sau đó chỉ cần thực thi nó. Khi được thực thi, ứng dụng chạy về cơ bản không có thêm chi phí - không có máy ảo đằng sau nó.
Để xác thực một ứng dụng, nó phải được biên dịch chéo thành một dạng mã máy x86 đặc biệt. Biểu mẫu đặc biệt này có thuộc tính đẹp mà nó có thể được xác minh tĩnh là "an toàn". Trong số những thứ khác, "an toàn" có nghĩa là mã sẽ không chuyển đến các địa chỉ bên ngoài một phân đoạn bộ nhớ nhất định do ZeroVM cung cấp. Chương trình cũng không thể gọi các cuộc gọi hệ thống bình thường, nó chỉ có thể gọi một giao diện tòa nhà rất hẹp do ZeroVM cung cấp. Xác thực này được lấy từ dự án Máy khách gốc của Google .
Làm cách nào để sử dụng ZeroVM để chạy Wordpress? Những lợi ích sẽ làm như vậy cung cấp?
Về nguyên tắc, bạn có thể biên dịch chéo chương trình C là trình thông dịch PHP. ZeroVM sau đó có thể khởi động trình thông dịch PHP trong hộp cát và cung cấp cho nó các tệp PHP tạo nên WordPress. ZeroVM cung cấp một hệ thống tệp trong bộ nhớ chỉ đọc và điều này có thể được sử dụng để đọc cơ sở dữ liệu SQLite từ đó. Điều đó sẽ cung cấp cho bạn một trang web WordPress chỉ đọc - không thú vị lắm :-)
Tuy nhiên, như tôi thấy, đây không phải là trường hợp sử dụng chính cho ZerovM. Các ứng dụng nặng cơ sở dữ liệu hiện tại cần phải được viết lại để sử dụng với ZeroVM. ZeroVM có nghĩa là nhiều hơn cho các hệ thống có khả năng mở rộng ồ ạt, nơi bạn muốn xử lý song song nhiều mục dữ liệu.
Hãy tưởng tượng bạn có 1.000.000 email mà bạn cần tìm kiếm thông qua. Các thư được lưu trữ trong một bộ lưu trữ khối như OpenStack Swift hoặc Amazon S3 . Điều này có nghĩa là các tệp vật lý được lưu trữ trên một số máy chủ lưu trữ. Theo truyền thống, bạn sẽ cần phải kéo tất cả thư xuống một số nút tính toán để tìm kiếm chúng. Với ZeroVM và sự tích hợp của nó với Swift , bạn có thể gửi mã đến dữ liệu . Điều này là có thể bởi vì mã nhỏ (một vài megabyte) so với hình ảnh máy ảo cồng kềnh và vì nó an toàn để thực thi mã không tin cậy trong hộp cát ZeroVM.
Vì vậy, ZeroVM có nghĩa là cho các kiến trúc có khả năng mở rộng cao, trong đó mỗi yêu cầu hoạt động trên các phần dữ liệu khác nhau.
Đối với một trang web WordPress, điều này có thể có nghĩa là một người nên lưu trữ mỗi bài đăng blog trong một phần dữ liệu riêng biệt và có một cá thể ZeroVM chuyên dụng chịu trách nhiệm cho mỗi bài đăng. Hiện tại, hệ thống tệp chỉ đọc, nhưng có kế hoạch làm cho nó đọc và ghi đối tượng ZeroVM chịu trách nhiệm cho một bài đăng trên blog nhất định sau đó có thể xử lý những thứ như bình luận. Bạn sẽ cần một bộ cân bằng tải ở phía trước có khả năng định tuyến lưu lượng thích hợp. Kết quả là một kiến trúc rất khác so với WordPress hiện tại, nhưng là một kiến trúc có khả năng mở rộng hơn. Trên thực tế việc thực hiện điều này hiện đang để lại như một bài tập cho người đọc.