ZeroVM ảo hóa cái gì?


12

Tôi có một chút rắc rối quấn lấy đầu ZeroVM .

Hãy nói rằng tôi muốn chạy Wordpress. Một tùy chọn là thuê một máy chủ ảo được lưu trữ chạy VMWare, Virtualbox, Xen, CoreOS hoặc một cái gì đó tương tự. Trong trường hợp đó, những gì đang được ảo hóa là máy chủ và phần cứng của nó. Khi máy chủ ảo được cung cấp, tôi có thể SSH tới nó, khởi động và dừng dịch vụ, khởi động lại máy, v.v.

Những thứ tôi đọc được trên mạng nói rằng ZeroVM ảo hóa ứng dụng, nhưng tôi không hiểu điều đó có nghĩa là gì. ZeroVM có cung cấp một container tương tự Docker không không?

Tiếp tục ví dụ của tôi ở trên, tôi sẽ sử dụng ZeroVM để chạy Wordpress như thế nào? Những lợi ích sẽ làm như vậy cung cấp?

Hãy mở rộng ví dụ Wordpress của tôi sang môi trường lưu trữ được chia sẻ.

Trang chủ ZeroVM cho biết:

Mỗi yêu cầu đối với Ứng dụng ZeroVM hoặc zapp, dẫn đến việc sinh ra một cá thể độc lập. Mỗi trường hợp được cách ly và bảo mật, kéo dài dưới 5 mili giây và bị hủy sau khi hoàn thành yêu cầu. Tốc độ của ZeroVM đến từ mỗi phiên bản ảo hóa chỉ những gì được yêu cầu để chạy một quy trình duy nhất.

Điều này có nghĩa là mỗi yêu cầu đối với ứng dụng ZeroVM sẽ tạo ra một quy trình mới? Điều gì xảy ra nếu bạn đang chạy nhiều ứng dụng ZeroVM trên máy chủ? Làm thế nào các yêu cầu sẽ được chuyển đến ứng dụng chính xác?

Câu trả lời:


9

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.


4

Có vẻ là cạnh chảy máu. Rackspace đang tiến hành đào tại LXC vì 'không an toàn' khi so sánh, nhưng cho đến khi các trang trắng xuất hiện về chủ đề này, tôi sẽ giữ phán quyết.

  • ZeroVM Cung cấp một container tương tự như Docker?

From: Info World "Một số so sánh rõ ràng có thể có giữa ZeroVM và một dự án như Docker, nhưng ý định hơi khác một chút. Docker nói về việc đóng gói để triển khai qua nhiều môi trường khác nhau. ZeroVM nói về cách cung cấp các ứng dụng được ảo hóa một cách nhẹ nhàng trong một môi trường nhất định, nơi một giải pháp VM đầy đủ sẽ quá mức và không thực sự cần thiết. "

  • Làm cách nào để sử dụng ZeroVM để chạy Wordpress?

Có lẽ bạn sẽ cần apache để được biên dịch cho ZeroVM. Tôi không chắc chắn bao nhiêu cơ sở mã Wordpress sẽ phá vỡ trong các điều kiện như vậy.

  • Những lợi ích là gì?

Bộ phận tiếp thị của Rackspace sẽ đưa ra trường hợp tốt nhất cho việc này: Tại đây

  • Tôi sẽ phải đối mặt với những thách thức nào? (Đã thêm vì lợi ích của độc giả tương lai)

Phần mềm / nền tảng đang bị chảy máu nên tất cả các thử nghiệm và sự khác biệt liên quan đến việc chạy phần mềm cạnh chảy máu đều được áp dụng. (Bao gồm thiếu một cơ sở người dùng lớn để hỗ trợ). Nó cũng là một " Nền tảng " mới . Các nhà phát triển phần mềm đang làm quen với việc xử lý các nền tảng ảo hóa ... nhưng đây là một loại ảo hóa hoàn toàn mới ở trên và ngoài phần cứng (VMWare. OracleVM, HyperV) và ảo hóa hạt nhân (OpenVZ) .. Đừng ngạc nhiên nếu không có gì hoạt động như mong đợi trong trò chơi này.


2

Tiếp tục ví dụ của tôi ở trên, tôi sẽ sử dụng ZeroVM để chạy Wordpress như thế nào? Những lợi ích sẽ làm như vậy cung cấp?

ZeroVM về cơ bản là một nền tảng để xây dựng PaaS'es. Do đó, câu hỏi trên có rất ít ý nghĩa trong "thế giới ZeroVM". Nhưng hãy giả sử rằng ai đó đã cài đặt cơ sở hạ tầng ZeroVM cho bạn (sẽ gọi nó là "Nhà cung cấp"). Sau đó, bạn có thể tạo PaaS hoặc SaaS của riêng bạn trên cơ sở hạ tầng đó. Trong trường hợp của WordPress: Nhà cung cấp cung cấp cho bạn khả năng chạy bất kỳ mã nào trên cơ sở hạ tầng của Nhà cung cấp, bạn có thể chạy WordPress, khi mã của bạn đang chạy - bạn phải trả tiền cho nó. Khi mã của bạn không chạy - bạn không trả tiền. Tức là khi ai đó mở một trang wordpress bạn sẽ trả tiền cho yêu cầu, sau khi phản hồi được gửi đến người dùng - bạn ngừng thanh toán bất cứ điều gì. Hơn thế nữa, vì mỗi phiên bản ZeroVM sẽ phục vụ một yêu cầu, về cơ bản trang web WordPress của bạn chỉ cần phục vụ một trang cho một người dùng. Và sau đó tôi sẽ lập luận rằng bạn không thực sự cần "WordPress" vì WordPress ngay bây giờ là giao diện PHP cho cơ sở dữ liệu MySQL và trong trường hợp có một người dùng và một yêu cầu bạn không cần bất kỳ cơ sở dữ liệu tập trung nào. Và như thế.

Điều này có nghĩa là mỗi yêu cầu đối với ứng dụng ZeroVM sẽ tạo ra một quy trình mới?

Có và không. Phụ thuộc vào cách bạn muốn sử dụng nó. Nếu mỗi yêu cầu là một ứng dụng hoàn toàn khác nhau với cơ sở mã hoàn toàn khác nhau - thì có, bạn sẽ cần một quy trình hoàn toàn mới. Nhưng nếu mỗi yêu cầu là một cuộc gọi đến ứng dụng web PHP hoặc WSGI, thì ZeroVM có thể hoạt động như một "daemon" phục vụ các yêu cầu nhanh hơn nhiều bằng cách tiết kiệm thời gian thiết lập của nền tảng (ví dụ: thiết lập hệ thống tập tin + python + wsgi trong trường hợp ứng dụng WSGI ).

Làm thế nào các yêu cầu sẽ được chuyển đến ứng dụng chính xác?

Ngay bây giờ cơ sở hạ tầng được tích hợp vào kho đối tượng Swift . Yêu cầu đối tượng Swift sẽ kích hoạt thực thi một đoạn mã cụ thể. Hoặc POST đến URL cụ thể sẽ kích hoạt việc thực hiện tải trọng yêu cầu POST. Tất nhiên, bất kỳ loại tích hợp nào khác đều có thể, ví dụ như vào máy chủ web hoặc hàng đợi phân tán.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.