Wednesday, October 28, 2009

Toàn cảnh về cloud computing

Trong mấy tháng gần đây, có sự bùng nổ về đầu tư cho cloud computing và các hạ tầng liên quan. Các đầu tư lớn cho thấy nhu cầu ảo hóa các tài nguyên trong “đám mây”. Năm vừa qua chứng kiến nhiều dịch vụ mới (như hình 4)



Vai trò Linux và mã nguồn mở trong “đám mây”

Software-as-a-Service

SaaS là khả năng tiếp cận phần mềm trên Intenet như một dịch vụ. Cách tiếp cận trước đây của SaaS là ASP (Nhà cung cấp dịch vụ ứng dụng). Các ASP cung cấp các thuê bao đối với phần mềm được lưu trữ và phân phối trên mạng. ASP tính phí theo theo thời gian sử dụng. Theo cách này ,bạn không phải mua phần mềm mà chỉ thuê nó khi cần.

Góc độ khác về SaaS là việc sử dụng phần mềm chạy từ xa trên mạng. Phần mềm này có thể ở dạng Web services (các dịch vụ dùng bởi ứng dụng cục bộ) hay các ứng dụng từ xa mà có thể theo dõi kết quả thông qua trình duyệt web. Một ví dụ đó là Google Apps. Còn việc chạy ứng dụng từ xa thường dựa trên các application server (là một software framework cung cấp các API – như quản lý giao dịch hay truy cập CSDL). Lấy ví dụ như Red Hat JBoss Application Server, Apache Geronimo, và IBM® WebSphere® Application Server.


Platform-as-a-Service

PaaS có thể mô tả như là một nền tảng được ảo hóa toàn bộ gồm một hay nhiều Server (ảo hóa trên một tập các server vật lý), các hệ điều hành và các ứng dụng chuyên biệt (như là Apache và MySQL cho ứng dụng web). Trong một vài trường hợp, các nền tảng này có thể được định nghĩa và chọn trước. Trong trường hợp còn lại, bạn có thể cung cấp file hình ảnh máy ảo (VM image) chứa tất cả các ứng dụng theo yêu cầu người dùng.

Một ví dụ thú vị của PaaS là Google App Engine. App Engine là một dịch vụ cho phép bạn triển khai ứng dụng web của mình trên kiến trúc rất khả mở của Google. App Engine cung cấp một sandbox cho ứng dụng Python của bạn (các ngôn ngữ khác sẽ hỗ trợ sau) như là các API Python để lưu trữ và quản lý dữ liệu (dùng Google Query Language) bên cạnh các hỗ trợ về xác thực người dùng, thao tác hình ảnh và gửi email.

Một ví dụ khác về PaaS là 10gen, nó vừa là một nền tảng “đám mây” vừa là một gói phần mềm nguồn mở cho phép bạn download để tạo ra “đám mây” của riêng mình. Software stack của nó cũng giống như App Engine nhưng cũng có vài điểm khác : hỗ trợ các ngôn ngữ Java,Python, Ruby. Nền tảng của nó cũng dùng khái niệm sandbox để cô lập các ứng dụng và cung cấp một môi trường đáng tin cậy trên nhiều máy tính (sử dụng Linux).


Infrastructure-as-a-Service

IaaS là việc phân phối hạ tầng máy tính như một dịch vụ. Tầng này khác với PaaS ở chỗ : phần cứng ảo được cung cấp không kèm theo software stack. Thay vào đó, người dùng tự đưa ra VM image của mình. IaaS là dạng “thô” nhất của “computing as a service”. Nhà cung cấp IaaS thương mại nối tiếng nhất là Amazon Elastic Compute Cloud (EC2). Trong EC2 , bạn có thể chỉ định máy ảo (VM) đặc biệt của mình và triển khai các ứng dụng trên đó hay là cung cấp VM iamge của bạn và chạy nó trên server. Bạn chỉ phải trả tiền cho thời gian tính toán, dung lượng lưu trữ và băng thông mạng.

Dự án Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) là một bản thực thi mã nguồn mở của EC2, trong đó tương thích về giao diện với dịch vụ thương mại. Giống như EC2, Eucalyptus dựa trên Linux với Xen dùng cho ảo hóa hệ điều hành. Eucalyptus được phát triển tại đại học California cho mục đích nghiên cứu cloud computing. Bạn có thể download về hay thử nghiệm nó thông qua Eucalyptus Public Cloud (với một số hạn chế).

Một thực thi khác theo kiểu của EC2 là nền tảng tính toán đám mây Enomalism (cũng là nguồn mở). Enomalism dựa trên Linux với hỗ trợ cho cả Xen và Kernel Virtual Machine (KVM). Nhưng không giống các giải pháp IaaS thuần túy khác, Enomalism cung cấp một software stack dựa trên TurboGears Web application framework và Python.

Các phát triển “đám mây” khác

Nói thêm một vài gói nguồn mở dựa trên Linux khác. Hadoop là một Java™ software framework nguồn mở tương tự như PaaS nhưng tập trung vào thao tác các tập dữ liệu lớn trên các server nối mạng với nhau (lấy ý tưởng từ Google MapReduce cho phép xử lý song song trên các tập dữ liệu lớn). Như thế thì nó sẽ tìm được các ứng dụng trong tìm kiếm và quảng cáo. Hadoop cũng cung cấp các dự án con phỏng theo các ứng dụng của Google. Ví dụ Hbase đưa ra chức năng giống như CSDL Google BigTable và Hadoop Distributed File System (HDFS) đưa ra chức năng giống như Google File System (GFS)


Các vấn đề và thử thách

Các vấn đề của tính toán “đám mây” trở nên rõ ràng khi mà tính riêng tư và bảo mật là 2 trong số những vấn đề quan trọng nhất. Tính riêng tư có thể dựa và mã hóa nhưng vẫn cần được chú ý khi chọn dịch vụ tính toán đám mây. Ngay cả e-Commerce cũng bị hoài nghi khi Web bắt đầu phát triển. Trên quy mô toàn cầu, hàng nghìn tỉ đôla của các giao dịch thương mại điện tử diễn ra hằng năm vì thế tính toán “đám mây” hưởng lợi từ mọi công nghệ đã có (như SSL) để khiến cho Web ngày nay trở nên an toàn.

No comments:

Post a Comment