Tuy nhiên, trong giai đoạn suy thoái kinh tế như hiện nay, thì việc ứng dụng một công nghệ hay một dịch vụ CNTT đáp ứng việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ l
Trang 1TÍNH TOÁN LƯỚI
ĐỀ TÀI:
TÌM HIỂU CÔNG NGHỆ CLOUD COMPUTING
Giảng viên hướng dẫn: PGS TS Nguyễn Phi Khứ Học viên thực hiện: Ngô Hải Linh – CH1101019
Phan Khánh Nguyên – CH1101111 Lớp cao học khóa 6
TP Hồ Chí Minh, tháng 07/2013
Trang 2MỤC LỤC
Trang 3mở đầu
Ngày nay công nghệ thông tin phát triển rất nhanh chóng, nắm giữ vai trò quan trọng trong việc thúc đấy sự tăng trưởng kinh tế, với sự ra đời của rất nhiều công nghệ mới, các dịch vụ CNTT đáp ứng nhu cầu của người dùng cũng như là các doanh nghiệp Tuy nhiên, trong giai đoạn suy thoái kinh tế như hiện nay, thì việc ứng dụng một công nghệ hay một dịch vụ CNTT đáp ứng việc quản lý tốt, hiệu quả
dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho doanh nghiệp Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí quản trị, chi phí bảo trì, sửa chữa… Ngoài ra họ còn phải tính toán khả năng
mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu Để giải quyết vấn đề trên chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn Khái niệm “cloud computing” (điện toán đám mây) đã ra đời trong hoàn cảnh
đó và đang dần trở nên quen thuộc đối với các doanh nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ
Vậy “cloud computing” là gì ? Nó có thể giải quyết bài toán trên như thế nào
và có những đặc điểm nổi bật gì ? Chúng ta sẽ đi qua các phần sau để nắm rõ vấn đề này Do khả năng và kiến thức có hạn, nên bài báo cáo còn nhiều sai sót
Em xin chân thành cảm ơn thầy đã giảng dạy và hướng dẫn để hoàn thành bài báo cáo này
Trang 4I Tổng quan về Cloud Computing
1. Khái niệm Cloud Computing
Theo Wikipedia: “Điện toán đám mây (cloud computing) là là môi
trường tính toán dựa trên internet mà ở đó tất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bị khác theo nhu cầu (tương tự như mạng điện)”.
Hình 1: Sơ đồ Điện toán đám mây
Theo Viện tiêu chuẩn và công nghệ quốc gia Bộ Thương mại Mỹ
(NIST): “Điện toán đám mây là một mô hình cho phép truy cập mạng
thuận tiện, theo nhu cầu đến một kho tài nguyên điện toán dùng chung, có thể định cấu hình (ví dụ như mạng, máy chủ, lưu trữ, ứng dụng) có thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ”.
2. Tính chất cơ bản
Theo NIST định nghĩa có 5 tính chất sau:
Trang 5 Tự phục vụ theo nhu cầu (On-demand self-service): người dùng tự chọn khả năng tính toán như máy chủ, lưu trữ mạng, mà không cần
sự tương tác của con người với mỗi nhà cung cấp dịch vụ
Truy xuất diện rộng (Broad network access): có thể truy cập thông qua điện thoại di động, máy tính bảng, máy tính xách tay, và máy trạm
Dùng chung tài nguyên (Resource pooling): nguồn tài nguyên vật lý
và ảo hóa tự động được cấp phát theo nhu cầu của người dùng
Khả năng co giãn (Rapid elasticity): có thể tăng giảm tài nguyên theo nhu cầu
Điều tiết dịch vụ (Measured service): hệ thống đám mây tự động kiểm soát và tối ưu hóa việc sử dụng tài nguyên
3. Mô hình dịch vụ
Cloud computing ra đời để giải quyết các vấn đề sau:
Vấn đề lưu trữ dữ liệu: Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ Các công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp nơi trên thế giới Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của
họ trên các kho lưu trữ trung tâm
Vấn đề về sức mạnh tính toán: có 2 giải pháp chính:
Sử dụng các siêu máy tính (super-computer) để xử lý tính toán
Sử dụng các hệ thống tính toán song song, phân tán, tính toán lưới (grid computing)
Vấn đề về cung cấp tài nguyên, phần mềm: Cung cấp các dịch vụ như SaaS (Software as a Service), PaaS (Platform as a Service), IaaS (Infrastructure
as a Service)
3.1. SaaS - Software as a Service
Là một mô hình triển khai ứng dụng mà ở đó người cung cấp cho phép người dụng sử dụng dịch vụ theo yêu cầu Những nhà cung cấp SaaS có thể
Trang 6lưu trữ ứng dụng trên máy chủ của họ hoặc tải ứng dụng xuống thiết bị khách hàng, vô hiệu hóa nó sau khi kết thúc thời hạn Các chức năng theo yêu cầu có thể được kiểm soát bên trong để chia sẻ bản quyền của một nhà cung cấp ứng dụng thứ ba.
Hình 2: Mô hình dịch vụ Cloud Computing
3.2. PaaS - Platform as a Service
Cung cấp nền tảng tính toán và một tập các giải pháp nhiều lớp Nó hỗ trợ việc triển khai ứng dụng mà không quan tâm đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp phần cứng và phần mềm bên dưới Cung cấp tất cả các tính năng cần thiết để hỗ trợ chu trình sống đầy đủ của việc xây dựng và cung cấp một ứng dụng và dịch vụ web sẵn sàng trên Internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát triển, quản lý tin học, hay người dùng cuối Nó còn được biết đến với một tên khác là cloudware
Cung cấp dịch vụ nền tảng (PaaS) bao gồm những điều kiện cho qui trình thiết kế ứng dụng, phát triển, kiểm thử, triển khai và lưu trữ ứng dụng
có giá trị như là dịch vụ ứng dụng như cộng tác nhóm, sắp xếp và tích hợp
Trang 7dịch vụ web, tích hợp cơ sở dữ liệu, bảo mật, khả năng mở rộng, quản lý trạng thái, phiên bản ứng dụng, các lợi ích cho cộng đồng phát triển và nghiên cứu ứng dụng Những dịch vụ này được chuẩn bị như là một giải pháp tính hợp trên nền web.
3.3. IaaS - Infrastructure as a Service
Người dùng có thể truy cập đến phần cứng của hệ thống mạng máy tính Cung cấp nhiều nguồn tài nguyên như firewall, load balancer, địa chỉ
IP, nhưng hệ điều hành và các ứng dụng sẽ do bạn cài đặt và cập nhật Điều này giúp người dùng linh hoạt hơn trong việc sử dụng tài nguyên của mình IaaS xuất hiện rộng rãi bởi các nhà cung cấp Amazon, Memset, Google, Windows… Một cách giúp quản lý IaaS dễ dàng hơn là phát triển các template cho các dịch vụ đám mây nhằm tạo ra một bản kế hoạch chi tiết để xây dựng hệ thống ready-to-use, và tránh tình trạng di chuyển giữa các đám mây khác nhau
4. Mô hình triển khai
Trang 8Hình 3: Các mô hình triển khai
4.1. Private Cloud
Cơ sở hạ tầng và các dịch vụ được xây dựng để phục vụ cho một tổ chức (doanh nghiệp) duy nhất Điều này giúp cho doanh nghiệp có thể kiểm soát tối đa đối với dữ liệu, bảo mật và chất lượng dịch vụ
4.2. Public Cloud
Các dịch vụ Cloud được nhà cung cấp dịch vụ cung cấp cho mọi người
sử dụng rộng rãi Các dịch vụ được cung cấp và quản lý bởi một nhà cung cấp dịch vụ và các ứng dụng của người dùng đều nằm trên hệ thống Cloud
4.3. Hybrid Cloud
Hybrid Cloud là sự kết hợp của hai hoặc nhiều mô hình triển khai Trong đó doanh nghiệp sẽ “out-source” các chức năng nghiệp vụ và dữ liệu không quan trọng, sử dụng các dịch vụ Public Cloud để giải quyết và xử lý các dữ liệu này Đồng thời, doanh nghiệp sẽ giữ lại các chức năng nghiệp vụ
và dữ liệu tối quan trọng trong tầm kiểm soát (Private Cloud)
5. Kiến trúc Cloud Computing
Trang 9Hình 4: Mô hình kiến trúc Cloud Computing
Cơ sở hạ tầng (Infrastructure): là phần cứng được cung cấp như là các dịch vụ, nghĩa là được chia sẻ và có thể sử dụng lại dễ dàng Các tài nguyên phần cứng được cung cấp theo thời gian, theo nhu cầu cụ thể Loại dịch vụ này giúp cho khách hàng giảm chi phí bảo hành, chi phí sử dụng…
Lưu trữ (Storage): Lưu trữ đám mây là khái niệm tách dữ liệu khỏi quá trình
xử lý và chúng được lưu trữ ở những vị trí từ xa Lưu trữ đám mây cũng bao gồm cả các dịch vụ CSDL, ví dụ như BigTable của Google, SimpleDB của Amazon…
Cloud Runtime: Là dịch vụ phát triển phần mềm ứng dụng và quản lý các nhu cầu phần cứng - phần mềm Ví dụ nền tảng dịch vụ như web framework, web hosting…
Ứng dụng đám mây (Cloud application): là một đề xuất về kiến trúc phần mềm sẵn sàng phục vụ, nhằm loại bỏ việc mua phần mềm, cài đặt, vận hành và duy trì ứng dụng tại máy bàn/thiết bị của người dùng Ứng dụng đám mây loại bỏ được các chi phí để bảo trì và vận hành các chương trình ứng dụng
Hạ tầng khách hàng (Client Infrastructure): là những yêu cầu phần mềm hoặc phần cứng để sử dụng các dịch vụ Cloud trên mạng Thiết bị cung cấp cho khách hàng có thể là trình duyệt, máy tính, thiết bị di động…
II So sánh giữa Grid và Cloud
Phần này tập trung so sánh giữa Grid và Cloud ngang qua nhiều khía cạnh từ kiến trúc, mô hình bảo mật, mô hình thương mại, mô hình lập trình,
ảo hóa, mô hình dữ liệu, mô hình tính toán và ứng dụng Cả hai mô hình tính toán về mặt tổng quát thì giống nhau nhưng trong cụ thể thì có một số điểm khác biệt
1. Mô hình thương mại (Business Model)
Mô hình thương mại truyền thống trong các phần mềm trước đây là hình thức tính phí theo máy tính Trong Cloud mô hình tính phí linh hoạt hơn nhiều, người dùng chỉ cần trả theo nhu cầu sử dụng Ngoài ra Cloud
Trang 10còn hỗ trợ khả năng mở rộng hệ thống mang tính kinh tế, tức là người sử dụng có thể triển khai với hệ thống ngày một lớn hơn với chi phí phù hợp Người dùng trong tương lai chỉ cần một thẻ tín dụng đã có thể truy cập theo nhu cầu đến hàng 100,000 bộ xử lý qua hàng chục trung tâm dữ liệu trải khắp thế giới.
Mô hình thương mại của Grid là hướng đến các dự án nghiên cứu trong môi trường học thuật như các đại học, viện nghiên cứu, phòng thí nghiệm của chính phủ TeraGrid làm một ví dụ điển hình cho hình thức thương mại của Grid, sử dụng hàng chục Grid khác nhau từ các viện nghiên cứu trong cùng một quốc gia Khi một tổ chức nào đó gia nhập vào TeraGrid thì sẽ có thể truy cập đến các Gird khác và đồng thời có thể sử dụng tài nguyên, kết quả thí nghiệm… trên hệ thống Grid này Mô hình này đã được ứng dụng rộng rải nhiều nơi trên thế giới
Có nhiều nỗ lực để xây dựng mô hình kinh tế Grid cho cơ sở hạ tầng Grid toàn cầu, nó hỗ trợ thương mại, chuyển nhượng, cung cấp dịch vụ theo nhu cầu sử dụng, rủi ro và chi phí, sở thích của người dùng…
2. Kiến trúc (Architecture)
Grid tập trung vào việc tích hợp các tài nguyên sẵn có gồm phần cứng,
hệ điều hành, quản lý tài nguyên cục bộ và cở sở hạ tầng an ninh
Để hỗ trợ sự phát triển tổ chức ảo (Virtual Organizations) – một thực thể luận lý có thể nhận ra và chia sẻ các tài nguyên phân tán như trong cùng một tổ chức, Grid đã định nghĩa và cung cấp một tập các giao thức chuẩn, phần mềm trung gian (middleware), bộ công cụ và các dịch vụ được xây dựng trên các giao thức này Những vấn đề chính được quan tâm là khả năng hoạt động liên kết và tính an toàn trên cơ sở hạ tầng Grid vì các tài nguyên đến từ các miền quản trị khác nhau, có cả chính sách sử dụng tài nguyên cục bộ và toàn cục, các nền tảng và cấu hình phần cứng và phần mềm khác nhau
Trang 11Grid cung cấp các giao thức và dịch vụ với 5 lớp khác nhau như hình minh họa sau:
Hình 5: Kiến trúc của Grid và Cloud.
Lớp Fabric: cung cấp truy cập tới các loại tài nguyên khác nhau như tính toán, tài nguyên lưu trữ và mạng, kho mã nguồn…
Lớp Connectivity: định nghĩa các chuẩn giao tiếp thông tin và chứng thực chính cho các giao tác mạng dễ dạng và an toàn hơn
Lớp Resourcce: định nghĩa các giao thức cho việc phát hành, phát minh, chuyển nhượng, giám sát, thanh toán chi phí cho các hoạt động trên các tài nguyên riêng biệt
Lớp Collective: nắm giữ sự tương tác giữa các tài nguyên, dịch vụ thư mục (như MDS) cho phép giám sát và phát hiện ra các tài nguyên tổ chức ảo hóa
Lớp Application: gồm các ứng dụng người dùng được xây dựng trên đỉnh của các giao thức trên và API và hoạt động trong môi trường ảo hóa
Cloud được phát triển để giải quyết những bài toán tính toán mở rộng qua Internet trong đó một số giả thiết là khác biệt so với Grid Cloud được xem như là nguồn tài nguyền tính toán và lưu trữ lớn, được truy cập thông
Trang 12qua các giao thức chuẩn và qua lớp trừu tượng Cloud được xây dựng trên các giao thức sẵn có như Web Services (WSDL, SOAP) và một số công nghệ Web 2.0 như REST, RSS, AJAX Thực tế, Cloud được hiện thi trên những công nghệ Grid đã tồn tại hàng thập niên của cộng đồng Grid.
Có nhiều phiên bản định nghĩa kiến trúc Cloud Nhưng để so sánh với kiến trúc Grid nên chúng ta hướng vào kiến trúc 4 lớp sau (xem hình 5):
Lớp Fabric: chứa các tài nguyên phần cứng như tài nguyên tính toán, tài nguyên lưu trữ và tài nguyên mạng
Lớp Unified Resource: chứa các tài nguyên được trừu tượng hóa (ảo hóa) để kết nối với lớp trên và với người dùng cuối như tài nguyên được tích hợp (hệ thống tập tin, hệ cơ sở dữ liệu…)
Lớp Platform: thêm vào các công cụ chuyên dụng, phần mềm trung gian và dịch vụ ở trên lớp Unified Resource
Lớp Application: chứa các ứng dụng chạy trên Cloud
Kiến trúc của Cloud hướng đến ba mô hình dịch vụ sau: Software as a Service – SaaS, Platform as a Service – PaaS, Infrastructure as a Service – IaaS
3. Quản lý tài nguyên
Quản lý tài nguyên là vấn đề quyết định khả năng hoạt động của hệ thống và nó không thể thiếu trong các hệ thống lớn như Grid và Cloud Trong phần này, chúng ta đề cập đến những thách thức chính mà cả Grid và Cloud phải đối mặt để thấy được điểm tương đồng và khác biệt trong hai
mô hình này
3.1 Mô hình tính toán (Compute Model)
Hầu hết các Grid sử dụng mô hình tính toán batch-scheduled cùng với một bộ quản lý tài nguyên cục bộ như PBS, Condor, SGE để quản lý tài nguyên tại các vị trí của Grid, và người dùng gửi các batch job (thông qua
Trang 13GRAM) để yêu cầu một số tài nguyên Nhiều Grid buộc các batch job nhận dạng người dùng và chứng nhận công việc nào sẽ được thực thi nhằm mục đích bảo mật, số bộ xử lý cần, và thời gian cấp phát Chẳng hạn trong trường hợp một chương trình cần 100 bộ xử lý và thực thi trong 60 phút, nó phải đợi đến khi hệ thống có đủ 100 bộ xử lý và rảnh trong 60 phút Mô hình tính toán trong Cloud hoàn toàn khác, tất cả người dùng được sử dụng tài nguyên cùng lúc, đồng thời vẫn đảm bảo được chất lượng dịch vụ cho người dùng Đây cũng là một trong những thách thức của Cloud về khả năng mở rộng khi số lượng người dùng lớn.
3.2 Mô hình dữ liệu (Data Model)
Trong khi một số người mạnh dạn khẳng định Internet Computing tương lai sẽ tập trung vào Cloud Computing Cloud sẽ chủ yếu cung cấp các dịch vụ như lưu trữ, tính toán, và tất cả các loại tài nguyên khác Chúng tôi hình dung rằng Internet Computing thế hệ tiếp theo sẽ đi theo mô hình tam giác thể hiện trong hình 6
Vai trò của Cloud Computing không cần đề cập tiếp, nhưng tầm quan trọng của Client Computing thì không thể bỏ qua vì một vài lý do sau:
Về bảo mật, người dùng sẽ không muốn chạy các ứng dụng quan trọng trên Cloud và gửi các dữ liệu nhạy cảm để xử lý và lưu trữ trên Cloud
Người dùng muốn hoàn thành công việc ngay cả khi Internet và Cloud bị chậm hay rớt mạng
Công nghệ đa nhân (multi-core technology) cũng mang đến cho người dùng nhiều hệ thống con mạnh mẽ trong tương lai
Trang 14Hình 6: Mô hình tam giác của Internet Computing thế hệ tiếp theo.
Cộng đồng Grid quan tâm tới tầm quan trọng của dữ liệu cách đây một thập kỷ trước Data Grid đã được thiết kế dành riêng cho các ứng dụng chuyên về dữ liệu, với khái niệm dữ liệu ảo hóa giữ vai trò then chốt Dữ liệu ảo hóa nắm giữ mối quan hệ giữa dữ liệu, chương trình và tính toán và quy định các kiểu trừu tượng
3.3 Vị trí dữ liệu (Data locality)
Một thách thức lớn cho bài toán mở rộng ứng dụng để hiệu quả hơn là
vị trí của dữ liệu với các tài nguyên sẵn có - việc di chuyển dữ liệu liên tục
ở xa về các bộ xử lý gây nghẽn cổ chai Quá trình nhập xuất (I/O) dữ liệu từ
xa có khác biệt lớn với I/O trên dữ liệu cục bộ và gây ảnh hưởng trực tiếp đến hiệu năng của hệ thống Để đạt được khả năng mở rộng tốt ở quy mô Internet cho Cloud và Grid, dữ liệu được phân tán trên nhiều máy tính và quá trình tính toán phải thực thi ở nơi tốt nhất để chi phí truyền thông tin là tối thiểu Đây là hướng được Cloud quan tâm giải quyết Quá trình xử lý dữ liệu được sắp xếp lưu trữ dữ liệu: khi cần xử lý một tập tin, job scheduler sẽ gọi dịch vụ storage metadata để lấy nút chính ứng với mỗi chunk, sau đó lập lịch xử lý trên nút đó, vì vậy vấn đề “data locality” sẽ được giải quyết một cách hiệu quả