Tuesday, July 17, 2007

Virtual Appliance

Từ gần 1 tháng qua, data center chỗ tôi làm việc thực hiện một cuộc cách mạng nhung vĩ đại: di chuyển hầu hết các application/service sang chạy trên hệ thống máy ảo. Thật ra, ngay từ khi bắt đầu xây dựng hệ thống, các sếp đã có ý định sử dụng máy ảo để tiết kiệm chi phí bằng cách tận dụng tối đa sức mạnh của các máy chủ. Tuy nhiên vì nhiều lý do khác nhau, dự án máy ảo không được ưu tiên bằng các dự án khác, cho nên mãi đến hôm nay chúng tôi mới triển khai dự án này. Và chúng tôi thật sự tiếc đã không triển khai nó sớm hơn, bởi lẽ trước mắt công nghệ máy ảo đã cứu cho chúng tôi nhiều bàn thua trông thấy:
  • Có đủ server cho tất cả các nhóm developer. Trước đây, muốn có một server để thử nghiệm một ứng dụng gì đó chẳng hạn, bạn phải đặt hàng trước cả tháng, còn bây giờ chỉ cần thông báo cho nhóm sysadmin biết, một hai ngày là họ đã giao hàng rồi. Quá đã!
  • Không cần phải mua thêm rack, không cần phải xây dựng thêm một data center khác, không cần phải nâng cấp hệ thống làm lạnh liên tục và không cần phải lo tiền điện mỗi tháng còn cao hơn tiền lương của tất cả nhân viên cộng lại.
  • Có thể an tâm rằng đám CPU/RAM/HDD được làm việc đúng với công suất của chúng, không lo chúng ngồi chơi xơi nước trong khi người phải làm việc cực lực ngày đêm.
Tôi bắt đầu dành thời gian nghiên cứu (dưới góc độ một người sử dụng) về công nghệ máy ảo. Trong hàng lô lốc các lợi ích mà công nghệ máy ảo đem lại, tôi chú ý đến ý tưởng virtual appliance, một cách sử dụng máy ảo như là các software appliance Trời ạh, sao tôi không nghĩ đến chuyện này nhỉ? Số là tôi đã tự tay thiết kế và xây dựng khá nhiều software appliance nhưng trước giờ tôi chỉ nghĩ đến chuyện sản xuất hardware appliance. Đúng là dở hơi bơi ngửa, tôi thậm chí phát hành các phiên bản máy ảo VMWare của AsasKiosk Appliance nhưng lại không hề nghĩ đến chuyện sử dụng chúng.

Nói một cách ngắn gọn, virtual appliance thường bao gồm một phiên bản vừa đủ của một hệ điều hành (thường là Linux hay *BSD) được cấu hình để chạy một application duy nhất theo kiểu appliance dưới dạng một máy ảo (thường là VMWare hay Xen). Tận dụng công nghệ máy ảo và thừa hưởng tính chất của một appliance, virtual appliance đem lại rất nhiều lợi ích nổi bật:
  • Mỗi application bây giờ tách biệt với nhau. Một thằng chết hay bị hack sẽ không ảnh hưởng đến những thằng còn lại.
  • Tương tự như việc sử dụng hardware appliance, hệ điều hành trong virtual appliance sẽ trở nên trong suốt, điều duy nhất mà bạn phải quan tâm là application chạy trên đó.
  • Cập nhật, sao lưu, phục hồi hay mọi thao tác quản trị khác sẽ được tự động hóa. Chỉ cần vài cái click chuột, appliance của bạn sẽ được up2date. Bạn không còn phải quan tâm hay lo lắng về software dependency nữa.
  • Nếu bạn là một nhà sản xuất phần mềm, virtual appliance sẽ giúp bạn phân phối phần mềm mà không phải lo lắng đến việc tích hợp chúng vào hệ thống của khách hàng. Phần mềm của bạn sẽ tự động chạy ở mọi nơi trên mọi hệ thống khác nhau.
Còn nhiều lắm những lợi ích khác, bạn hãy tự khám phá chúng bằng cách triển khai virtual appliance! Bản thân tôi tin rằng virtual appliance chắc chắn là xu hướng chính trong việc xây dựng hệ thống thông tin của tất cả các doanh nghiệp trên toàn thế giới. Hãy thử dạo một vòng quanh chợ virtual appliance, bạn sẽ thấy rằng người ta đã chuyển đổi hầu hết, nếu không muốn nói là tất cả, các application có trên Internet thành virtual appliance. Bản thân tôi trung bình mất khoảng 1 tuần để chuyển đổi các application mà tôi muốn thành virtual appliance. Sắp tới tôi sẽ mở một trang dự án trên blog này để đưa thêm thông tin về các virtual appliance mà tôi đã xây dựng trong thời gian vừa qua.

-Thái

7 comments:

Anonymous said...

Chào Thái,
Liên quan đến bài viết này tôi có một câu hỏi.
Trong trường hợp máy ảo bị crash gây ra mất toàn bộ dữ liệu thì phải xử lý như thế nào?

Anonymous said...

Chào Thái,
Đọc bài viết của Thái thấy "Virtual Appliance" được Thái nói là rất hiệu quả, các bác bỏ quá cho nhớ, em cũng chưa hiểu cái "Virtual Appliance" là cái gì???? Có phải cũng giống như mình cài một cái máy ảo VMW trên Windows chẳng hạn rùi deploy ứng dụng vào đó không???? hay là sao nhỉ??

Thái giải thích giúp mình với nha!

thaidn said...

Chào bạn,

Liên quan đến bài viết này tôi có một câu hỏi. Trong trường hợp máy ảo bị crash gây ra mất toàn bộ dữ liệu thì phải xử lý như thế nào?

Cách xử lí cũng tương tự như máy thật thôi bạn àh, backup, backup và backup.


Đọc bài viết của Thái thấy "Virtual Appliance" được Thái nói là rất hiệu quả, các bác bỏ quá cho nhớ, em cũng chưa hiểu cái "Virtual Appliance" là cái gì???? Có phải cũng giống như mình cài một cái máy ảo VMW trên Windows chẳng hạn rùi deploy ứng dụng vào đó không???? hay là sao nhỉ??


Xin lỗi vì mình đã viết không rõ. Trước tiên bạn thử đọc lại khái niệm trên Wikipedia rồi nếu có chỗ nào còn thắc mắc bạn cứ gửi lên đây mình sẽ cố gắng trả lời.

-Thái

Anonymous said...

Chào Thái.Mình đã đọc bài của Thái và chỉ mới hình dung về viễn cảnh nền tin học được Virtual hóa nhưng chưa hình dung được hết khả năng ứng dụng của môi trường ảo hóa này.Có sự khác biệt gì với môi trường thực chăng.Và nếu có thì có thể so sánh các Virtual appliance nếu xây dựngtrong môi trường thực được không nhỉ?

Chi phí liệu có phát sinh gì không?Thay vì chạy trên nhiều server giờ chỉ chạy trên 1 PC là đủ

Thân mến
NTH
Cám ơn bạn đã viết bài này

Anonymous said...

Chào Thái,
tôi muốn thử tìm hiểu asas, nhưng khi connect vào IP của asas (cổng 4000) bằng web browser thì chẳng thấy gì cả, không biết tôi có làm thiếu bước nào không (cấu hình network qua DHCP, nhưng default gateway thì được add sau khi asas đã khởi động)

Cám ơn

Anonymous said...

thực ra công nghệ này có từ lâu rồi, và hiện thời giải pháp backup này vẫn rất hay và hiệu quả, không tốn kém
bên http://www.ictvietnam.net cũng có rất nhiều bài nói về cái này

Anonymous said...

Bài viết của bạn rất bổ ích,tôi chỉ mới làm quen với máy ảo thôi nhưng tôi cũng nghĩ như bạn: Ảo hoá sẽ là xu hướng mạnh trong tương lai. Nó sẽ mang lại những giá trị không ảo chút nào như: phục vụ nhu cầu học tập, phát triển phần mềm và tiết kiệm chi phí phần cứng,...