Đăng ký Đăng nhập
Trang chủ Xây dựng, thử nghiệm giải pháp tìm kiếm theo yêu cầu người dùng, sử dụng cloud c...

Tài liệu Xây dựng, thử nghiệm giải pháp tìm kiếm theo yêu cầu người dùng, sử dụng cloud computing và thuật toán mapreduce

.PDF
78
104
58

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ....................................... HOÀNG ANH TUẤN XÂY DỰNG THỬ NGHIỆM GIẢI PHÁP TÌM KIẾM THEO YÊU CẦU NGƯỜI DÙNG, SỬ DỤNG ĐIỆN TOÁN ĐÁM MÂY VÀ THUẬT TOÁN MAPREDUCE LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN : PGS.TS. HUỲNH QUYẾT THẮNG HÀ NỘI – 2010 MỤC LỤC MỤC LỤC ................................................................................................................2 DANH MỤC HÌNH VẼ...................................................................................................5 DANH MỤC BẢNG BIỂU .............................................................................................6 CHƯƠNG 1 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY, GIẢI THUẬT MAPREDUCE, HỆ THỐNG TÌM KIẾM .......................................................................7 1.1 Sự phát triển của các mô hình tính toán ............................................................7 1.2 Tối ưu hóa của quá trình xử lý dữ liệu lớn, giải thuật MAPREDUCE ứng dụng cho các nguồn dữ liệu cực lớn (TB, PB). ............................................................9 1.3 Bài toán tìm kiếm theo yêu cầu người sử dụng (Object searching by request) .. .........................................................................................................................10 1.4 Nhiệm vụ trong luận văn .................................................................................11 CHƯƠNG 2 2.1 ĐIỆN TOÁN ĐÁM MÂY VÀ GIẢI THUẬT MAPREDUCE...........13 Khái niệm về Điện toán đám mây...................................................................13 2.1.1 Lịch sử Cloud computing.........................................................................14 2.1.2 Các đặc tính chính của Cloud Computing ...............................................15 2.2 Các nhánh chính của điện toán đám mây........................................................15 2.2.1 Phần mềm hoạt động như một dịch vụ (SaaS - Software as a Service)...16 2.2.2 Nền tảng như một dịch vụ (PaaS - Platform as a Service) ......................17 2.2.3 Hạ tầng hoạt động như một dịch vụ (IaaS – Infrastructure as a Service) 17 2.3 Các hệ thống Cloud Computing tiêu biểu .......................................................18 2.3.1 Google App Engine..................................................................................18 2.3.2 Microsoft Azune ......................................................................................19 2.3.3 Amazon Elastic Compute Cloud (EC2)...................................................20 2.3.4 Amazon Simple Storage Service (S3) .....................................................21 2.4 Ứng dụng Cloud Computing trong tìm kiếm thông tin...................................22 2 2.5 Lịch sử phát triển Mapreduce..........................................................................23 2.6 Kỹ thuật lập trình MapReduce ........................................................................25 2.6.1 Map Function ...........................................................................................26 2.6.2 Reduce Function ......................................................................................27 2.7 Một số ứng dụng tiêu biểu MapReduce ..........................................................28 2.7.1 Hệ thống Sort Data của Yahoo, Google ..................................................29 2.7.2 Ứng dụng xử lý dữ liệu log......................................................................31 2.8 Kết chương ......................................................................................................32 CHƯƠNG 3 BÀI TOÁN TÌM KIẾM THEO YÊU CẦU NGƯỜI SỬ DỤNG VÀ ĐỀ XUẤT GIẢI PHÁP DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY VÀ GIẢI THUẬT MAPREDUCE ..............................................................................................................34 3.1 Bài toán tìm kiếm dữ liệu ................................................................................34 3.1.1 Lịch sử máy tìm kiếm ..............................................................................35 3.1.2 Phân loại máy tìm kiếm trên Internet.......................................................37 3.1.3 Mô hình của máy tìm kiếm ......................................................................39 3.2 Thuật toán tìm kiếm ........................................................................................40 3.2.1 Bài toán thu thập, bóc tách dữ liệu (Crawl, parse data)...........................40 3.2.2 Bài toán đánh chỉ mục dữ liệu (Index data).............................................45 3.2.3 Thuật toán tìm kiếm theo độ tương quan (relevance)..............................47 3.3 Các giải pháp xây dựng máy tìm kiếm............................................................49 3.4 Giải pháp tìm kiếm sử dụng thuật toán MapReduce trên nền điện toán đám mây .........................................................................................................................52 3.4.1 Sử dụng MapReduce và điện toán đám mây trong việc thu thập, bóc tách dữ liệu ..................................................................................................................52 3.4.2 Sử dụng MapReduce và điện toán đám mây trong bài toán đánh chỉ mục . ..................................................................................................................54 3 3.4.3 Sử dụng điện toán đám mây trong việc thiết kế module tìm kiếm phân tán ..................................................................................................................56 3.5 Kết chương ......................................................................................................58 CHƯƠNG 4 XÂY DỰNG HỆ THỐNG TÌM KIẾM VÀ THỬ NGHIỆM THỰC TẾ ..............................................................................................................60 4.1 Bài toán tìm kiếm tin tức.................................................................................60 4.2 Xây dựng hệ thống tìm kiếm tin tức theo độ tương quan về nội dung, thời gian. .........................................................................................................................60 4.2.1 Tổng quan về mô hình hệ thống tìm kiếm ...............................................60 4.2.2 Các thành phần của hệ thống ...................................................................61 4.3 Đánh giá kết quả, các hướng cải tiến ..............................................................65 4.3.1 Các kết quả đạt được................................................................................65 4.3.2 Tổng kết luận văn.....................................................................................70 TÀI LIỆU THAM KHẢO..............................................................................................75 4 DANH MỤC HÌNH VẼ Hình 1.1-1: định luật Moore [42].....................................................................................7 Hình 2.1-1: Mô hình điện toán đám mây [46] ...............................................................14 Hình 2.2-1: Các lớp của điện toán đám mây..................................................................16 Hình 2.3-1: Giao diện sử dụng EC2 [19] .......................................................................20 Hình 2.3-2: Giao diện sử dụng Amazon S3 [20] ...........................................................22 Hình 2.6-1: Mô hình MapReduce ..................................................................................26 Hình 2.6-2: Quá trình xử lý MapReduce .......................................................................28 Hình 3.1-1: Số lượng URL trên thế giới [21] ................................................................35 Hình 3.1-2: Thị phần của các máy tìm kiếm tháng 9 năm 2010 [53] ............................36 Hình 3.1-3: Mô hình máy tìm kiếm ...............................................................................40 Hình 3.2-1: Inverted index .............................................................................................47 Hình 3.4-1: Hệ thống tìm kiếm phân tán .......................................................................58 Hình 4.2-1: Tổ chức hệ thống ........................................................................................61 Hình 4.2-2: Tổ chức module máy tìm kiếm...................................................................64 Hình 4.3-1: Tổng số trang web trong hệ thống ..............................................................67 Hình 4.3-2: Tốc dộ thu thập trang web và đánh chỉ mục...............................................68 5 DANH MỤC BẢNG BIỂU Bảng 2.7-1: Kết quả sắp xếp dữ liệu của Yahoo! [17]...................................................30 Bảng 3.1-1: Số lượng trang web đã được đánh chỉ mục................................................37 Bảng 4.3-1: Số lượng máy trong các cluster..................................................................66 Bảng 4.3-2: Kết quả tìm kiếm ........................................................................................70 6 CHƯƠNG 1 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY, GIẢI THUẬT MAPREDUCE, HỆ THỐNG TÌM KIẾM 1.1 Sự phát triển của các mô hình tính toán Mô hình tính toán các hệ thống phát triển qua nhiều thời kỳ, ngày càng hiện đại hơn, phát triển cả về chiều rộng (mở rộng về không gian tính toán, thêm các tài nguyên), chiều sâu (cải tiến các thuật toán (từ lập trình cấp thấp, lập trình cấp cao, tính toán song song, tính toán hiệu năng cao,….). Phần cứng ngày càng phát triển nhanh, theo định luật Moore [41] :”Số lượng transitor trên mỗi đơn vị inch vuông sẽ tăng gấp đôi sau mỗi hai năm”. Việc tốc độ các hệ thống tính toán ngày càng được phát triển nhanh, giá thành ngày càng rẻ hơn giúp chúng ta rút ngắn thời gian tính toán cho các đơn vị dữ liệu lớn. Hình 1.1-1: định luật Moore [42] 7 Cùng với việc phát triển của phần cứng, các mô hình lập trình cũng được phát triển với tốc độ chóng mặt. Ban đầu chỉ là các phương pháp lập trình theo bìa đục lỗ, sau đó phát triển lên thành mô hình lập trình theo ngôn ngữ cấp cao, vào thập niên 1950, 1960, xuất hiện nhiều ngôn ngữ lập trình cấp cao như FORTRAN, LISP, COBOL,…. Từ những năm 1990, kỷ nguyên của Internet bắt đầu, các mô hình lập trình ngày càng phát triển, bao gồm nhiều phương pháp lập trình mới như: lập trình hướng sự kiện, lập trình hướng đối tượng, lập trình logic, lập trình hàm, lập trình đồng thời,…. Không chỉ lập trình trên máy tính cá nhân đơn lẻ, nhiều mô hình lập trình đã hướng đến môi trường phân tán, song song, giúp người sử dụng có thể triển khai môi trường lập trình trên nhiều máy tính. Mục đích của các mô hình lập trình này giúp giải quyết các bài toán dữ liệu lớn, các nhu cầu thực tế của người dùng. Thử tưởng tượng, nếu không có những mô hình lập trình này, chúng ta sẽ không có những ứng dụng trực tuyến khổng lồ như Google, Facebook hay Yahoo, không thể phát triển những ứng dụng trên Internet như Gmail, Google docs, các hệ thống chia sẻ file, ảnh,… Cùng với sự phát triển nhanh chóng của Internet, các hệ thống tính toán lớn được xây dựng dựa trên sự phát triển về hạ tầng phần cứng và cấu trúc phần mềm trong các chương trình điều khiển. Mỗi ngày, Google phải xử lý hơn 20 Petabytes dữ liệu, còn Facebook là khoảng 80-90 Terabytes dữ liệu, với Yahoo là 3 Petabytes. Với những con số khổng lồ như thế nếu không có đầy đủ hệ thống phần cứng và phần mềm hỗ trợ chúng ta sẽ không thể giải quyết được. Việc phát triển các hệ thống tính toán mới, dựa trên nền tảng phân tán là đòi hỏi cấp thiết của quá trình giải quyết các vấn đề về tính toán. Hiện nay một trong những mô hình được quan tâm phát triển nhiều nhất là điện toán đám mây [1]. Nó vừa giúp giải quyết bài toán về phần cứng khi tối ưu hóa, cung cấp các giải pháp về phần cứng như máy chủ, hệ thống lưu trữ, các nền tảng tính toán, đến các hệ thống phần mềm như khung lập trình đều trở thành dịch vụ. Điện toán đám mây là mô hình phát triển của các hệ thống trong tương lai, giúp chúng ta giải quyết các vấn đề về mặt hạ tầng, dịch vụ, cung cấp những giải pháp tối ưu cho các hệ thống 8 thương mại, phục vụ nhiều người dùng, theo nhiều quy mô từ bé đến lớn, từ đơn giản đến phức tạp, từ phục vụ mục đích riêng tư, đến mục đích công cộng. 1.2 Tối ưu hóa của quá trình xử lý dữ liệu lớn, giải thuật MAPREDUCE ứng dụng cho các nguồn dữ liệu cực lớn (TB, PB). Các ứng dụng lớn trên Internet như hệ thống của Google, Yahoo!, Facebook đều cần phải lưu trữ, xử lý và tương tác với lượng dữ liệu cực kỳ lớn. Lưu trữ có thể giải quyết được khi được cung cấp đủ thiết bị phần cứng và có thuật toán lưu trữ tốt. Việc lưu trữ không đơn thuần chỉ là lưu trữ lên thiết bị lưu trữ như ổ cứng nói chung, mà còn phụ thuộc rất nhiều vào quá trình xử lý. Với lượng dữ liệu khổng lồ, chúng ta phải lựa chọn các phương pháp lưu trữ phân tán, tạo thành các hệ thống file phân tán và có cơ chế quản lý chúng. Khi đã lưu trữ được dữ liệu, chúng ta cần một hệ thống xử lý đủ nhanh cho lượng dữ liệu đó. Một trong những giải thuật được nhắc đến nhiều nhất trong những năm gần đây phục vụ cho việc xử lý lượng dữ liệu lớn là MapReduce [8]. Những ưu điểm của giải thuật MapReduce được ứng dụng giải quyết các bài toán dữ liệu lớn: - MapReduce là một giải thuật, được viết lại thành khung lập trình, hỗ trợ lập trình phân tán một cách nhanh chóng. Giải thuật MapReduce dễ dàng triển khai trên nhiều máy, việc thêm một máy vào để chạy giải thuật rất đơn giản, chỉ thông qua các file cấu hình. - MapReduce có thể đọc và xử lý được hầu hết các dữ liệu cơ bản, như các giải thuật khác, nó có cơ chế để chia nhỏ khối dữ liệu lớn thành các khối dữ liệu nhỏ hơn, chia cho các tác vụ thực hiện và tổng hợp kết quả. - MapReduce quản lý các tác vụ chạy song song trên các máy, một máy có thể chạy nhiều tác vụ, một công việc được chia làm nhiều tác vụ, chia cho mỗi máy theo khả năng. Nó có khả năng tổng hợp các kết quả chạy trên các máy khác nhau tạo ra kết quả cuối cùng đưa lại cho người dùng. 9 - MapReduce xử lý dữ liệu theo cặp giá trị key/value nên có khả năng xử lý nhanh các bài toán cơ bản. Với những ưu điểm của giải thuật MapReduce như trên, chúng ta có thể xây dựng nhiều ứng dụng thông dụng như [43]: - Các bài toán thống kê: thống kê log, xử lý log, thống kê số lượng, thống kê thời tiết,… - Các bài toán về khai phá dữ liệu, hệ thống giới thiệu (recommendation engines) - Các bài toán về phân tích dữ liệu, xử lý gian lận - Bài toán về xác định mục tiêu đối tượng quảng cáo, phân phối quảng cáo đến đúng đối tượng, với số lượng đúng mức. - Bài toán về chất lượng tìm kiếm. Tất cả các bài toán cần xử lý dữ liệu nói chung, đặc biệt là các bài toán dữ liệu lớn đều có thể sử dụng thuật toán MapReduce. 1.3 Bài toán tìm kiếm theo yêu cầu người sử dụng (Object searching by request) Bài toán tìm kiếm dữ liệu đã tồn tại một thời gian khá lâu. Khi dữ liệu ít, không có nhiều thì bài toán là khá đơn giản, có thể được thực hiện bằng vài lệnh của hệ điều hành (hệ điều hành Linux). Tuy nhiên khi dữ liệu lớn lên, tăng trưởng theo từng ngày, từng giờ, mức độ cập nhật thông tin ngày càng tăng lên thì vấn đề tìm kiếm chính xác theo yêu cầu của người dùng càng khó khăn. Những khó khăn chính của bài toán tìm kiếm [44]: - Khả năng bao phủ nội dung: hệ thống tìm kiếm có khả năng bao phủ được những nội dung người dùng cần thiết chưa? Với lượng dữ liệu khổng lồ trên Internet, có chiến thuật hay giải thuật nào để có thể bao phủ được hết số lượng nội dung trên đó? - Khả năng cập nhật nội dung: tương tự như vấn đề bao phủ, thời gian cập nhật nội dung mới sẽ là bao lâu, có đủ cung cấp nội dung mới cho người dùng hay không? 10 - Trang thiết bị hoạt động: hệ thống máy móc để hoạt động, lưu trữ dữ liệu, băng thông mạng, các hạ tầng khác. - Thuật toán tìm kiếm, lưu trữ dữ liệu: làm sao để tìm kiếm và cung cấp nội dung đúng như người dùng mong muốn? - Thời gian tìm kiếm: thời gian tìm kiếm phải thỏa mãn người dùng, không được phép quá lâu, thông thường sẽ phải nhỏ hơn 1 giây. Tại Việt Nam, theo thống kê của VNNIC đến tháng 9 năm 2010 có hơn 25 triệu người sử dụng Internet [30], nhu cầu tìm kiếm và sử dụng các dịch vụ trực tuyến là rất lớn. Các công cụ tìm kiếm trên thế giới như Google, Yahoo, Bing đã đáp ứng được phần nào nhu cầu sử dụng của những người sử dụng ở Việt Nam. Tuy nhiên khó khăn lớn nhất của các công cụ tìm kiếm đó là khả năng “hiểu” tiếng Việt, văn hóa Việt Nam. Khi một người Việt Nam tìm kiếm, họ muốn kết quả tìm kiếm được phải thỏa mãn yêu cầu của họ và mang phong cách Việt Nam và phải “hiểu” được nhu cầu của người dùng Việt Nam. Đó là một thách thức lớn, nhưng cũng là một cơ hội lớn cho việc phát triển hệ thống tìm kiếm thuần Việt ở Việt Nam. Với tất cả những khó khăn và thách thức đó, chúng ta sẽ chọn giải pháp để xây dựng và giải quyết những khó khăn đó. Một trong những phương pháp là xây dựng hệ thống tìm kiếm dựa trên điện toán đám mây và giải thuật MapReduce. Việc sử dụng điện toán đám mây, giúp cung cấp nền tảng hệ thống tốt nhất trong phạm vi giới hạn về khả năng quản lý, tài chính để xây dựng ứng dụng. Sử dụng thuật toán MapReduce giúp giải quyết những vướng mắc về kỹ thuật, giải pháp trong việc xây dựng bài toán tìm kiếm theo yêu cầu người sử dụng. 1.4 Nhiệm vụ trong luận văn Trong luận văn này, tôi tập trung vào nghiên cứu ba phần chính: 11 - Khái niệm về điện toán đám mây, cách thức xây dựng ứng dụng trên mô hình điện toán đám mây. Cách thức vận hành một hệ thống trên môi trường điện toán đám mây. - Giải thuật MapReduce, cách thức sử dụng và ứng dụng giải thuật trong các bài toán xử lý dữ liệu, ứng dụng giải thuật MapReduce trong bài toán xây dựng máy tìm kiếm. - Phương pháp xây dựng máy tìm kiếm: cách thức xây dựng các thành phần của máy tìm kiếm, hệ thống thu thập nội dung, hệ thống đánh chỉ mục dữ liệu và hệ thống tìm kiếm theo yêu cầu người dùng. Trong các chương tiếp theo, chúng ta sẽ nghiên cứu các thành phần cấu thành nên hệ thống bao gồm hai phần chính là điện toán đám mây và giải thuật MapReduce để xây dựng nên một hệ thống tìm kiếm hiệu quả. 12 CHƯƠNG 2 ĐIỆN TOÁN ĐÁM MÂY VÀ GIẢI THUẬT MAPREDUCE 2.1 Khái niệm về Điện toán đám mây Điện toán đám mây là một trong những thuật ngữ được nhắc đến nhiều nhất trong thời gian qua. Điện toán đám mây là mô hình điện toán sử dụng các công nghệ về máy tính và phát triển dựa vào mạng Internet. Nó là cơ sở để phát triển các ứng dụng hướng dịch vụ, cung cấp các dịch vụ cho khách hàng thông qua một hạ tầng dịch vụ chung. Theo hệ thống định nghĩa về điện toán đám mây [45], có 3 định nghĩa về điện toán đám mây: - Định nghĩa một: việc lưu trữ và truy cập các ứng dụng và dữ liệu máy tính thường thông qua một trình duyệt Web thay vì chạy các phần mềm cài đặt trên máy tính văn phòng cá nhân hoặc máy chủ. - Định nghĩa hai: điện toán dựa trên Internet, trong đó các thông tin, nguồn lực công nghệ thông tin (CNTT) và ứng dụng phần mềm được cung cấp cho các máy tính và các thiết bị di động theo yêu cầu. - Định nghĩa ba: Sử dụng Internet để truy cập các ứng dụng dựa trên Web, các dịch vụ Web và cơ sở hạ tầng như một dịch vụ. Như vậy theo các định nghĩa, điện toán đám mây là việc ảo hóa (virtualized) các tài nguyên điện toán và các ứng dụng trên đó. Theo các định nghĩa đó, mô hình điện toán đám mây có các đặc trưng chính: - Cho phép sử dụng dịch vụ theo yêu cầu (on-deaman serivce). - Cung cấp khả năng truy cập dịch vụ rộng rãi từ các thiết bị đầu cuối như máy tính để bàn, máy tính xách tay, thiết bị di động. - Tài nguyên tính toán động, phục vụ cho nhiều người sử dụng, năng lực tính toán mềm dẻo, đáp ứng nhanh các nhu cầu sử dụng từ thấp đến cao. 13 - Ngoài ra việc sử dụng điện toán đám mây, người sử dụng và nhà cung cấp dịch vụ có thể quản lý, theo dõi việc sử dụng các tài nguyên, giúp nhà cung cấp tối ưu hóa tài nguyên, giúp người sử dụng chỉ phải trả số tiền dựa vào tài nguyên đã sử dụng. Hình 2.1-1: Mô hình điện toán đám mây [46] 2.1.1 Lịch sử Cloud computing Những khái niệm đầu tiên về điện toán đám mây được đưa ra từ những năm 1960 khi John McCarthy cha đẻ của thuật ngữ “Trí tuệ nhân tạo” phát biểu rằng “một ngày nào đó có thể tính toán sẽ được tổ chức lại như là một tiện ích công cộng”. Thuật ngữ “đám mây” được vay mượn từ ngành viễn thông, khi cung cấp mạng riêng ảo (VPN – Virtual Private Networking). Amazon đóng vai trò quan trọng trong việc xây dựng điện toán đám mây bằng cách hiện đại hóa trung tâm dữ liệu sau bong bóng dot-com. Amazon cung cấp điện toán đám mây cho khách hàng, dịch vụ AWS – Amazon Web Service [3] vào năm 2006. Trong năm 2007, Google, IBM và một số trường đại học cũng bắt tay vào một dự án nghiên cứu quy mô lớn điện toán đám mây. Eucalyptus [4] trở thành dự án mã mở đầu tiên triển khai điện toán đám mây riêng tư và mạng máy tính. Google cung cấp 14 giải pháp Google App Engine [51], ở đó Google đã cung cấp sẵn hệ thống hạ tầng điện toán đám mây, người lập trình chỉ cần viết ứng dụng của mình lên đó. 2.1.2 Các đặc tính chính của Cloud Computing Điện toán đám mây mang lại những đặc tính quan trọng, tiện lợi, dễ sử dụng hơn những mô hình tính toán khác. Những đặc tính chính của điện toán đám mây: - Khả năng mở rộng theo yêu cầu dịch vụ: điện toán đám mây cung cấp các tài nguyên, dịch vụ cho người dùng theo yêu cầu. Các tài nguyên được mở rộng trên nhiều trung tâm dữ liệu, có thể tập trung hoặc phân tán. - Độc lập về không gian và thiết bị: người dùng có thể truy cập, sử dụng tài nguyên hệ thống ở mọi lúc, mọi nơi thông qua trình duyệt web, bằng nhiều thiết bị, có thể là máy tính cá nhân hay thiết bị di động. Chỉ cần kết nối Internet, người dùng có thể kết nối ở bất kỳ nơi nào. - Linh hoạt: người sử dụng có thể sử dụng nhanh chóng, không tốn kém các nguồn tài nguyên. Người dùng có thể được đảm bảo chất lượng dịch vụ về phần cứng, hiệu suất, băng thông, dung lượng bộ nhớ. - Hệ thống tập trung tự động: tất cả các cơ sở hạ tầng đều được tập trung tại các địa điểm với chi phí thấp hơn, dễ dàng quản lý, bảo trì hơn khi các dịch vụ được tập trung, không cài phân tán trên các máy người sử dụng. - Giá thành: việc sử dụng điện toán đám mây, giúp người dùng không phải đầu tư toàn bộ chi phí về hạ tầng, thiết bị. Ngoài ra không cần thuê thêm chi phí nhân lực bảo trì, bảo dưỡng hệ thống máy móc. Không bị lãng phí hệ thống khi không cần dùng trong một thời gian, chỉ phải trả tiền cho thời gian sử dụng hệ thống. 2.2 Các nhánh chính của điện toán đám mây Điện toán đám mây được chia làm 4 lớp chính: 15 Hình 2.2-1: Các lớp của điện toán đám mây Chúng ta sẽ nghiên cứu từng lớp của điện toán đám mây. 2.2.1 Phần mềm hoạt động như một dịch vụ (SaaS - Software as a Service) Phần mềm hoạt động như một dịch vụ là lớp trên cùng của điện toán đám mây. Đây là tập hợp các ứng dụng cung cấp cho người dùng theo yêu cầu, nó được cài đặt và chạy trong các hệ thống đám mây, được quản trị, quản lý bởi những nhà cung cấp. Mục đích của hệ thống là giúp người dùng có thể sử dụng ứng dụng ở mọi lúc, mọi nơi bằng bất kỳ loại thiết bị tương thích nào. Việc truy cập các ứng dụng chủ yếu qua Internet và phần mềm như là một dịch vụ, phục vụ người dùng khi có yêu cầu. Người dùng có thể sử dụng các dịch vụ để sử dụng các ứng dụng ở những địa điểm khác nhau, không nhất thiết phải cài đặt lên thiết bị của họ (máy tính cá nhân,…). Thông thường người sử dụng chỉ phải sử dụng trình duyệt Web để truy cập các ứng dụng này. Một trong những ưu điểm lớn nhất của tính năng này là phục vụ tập trung. Tất cả ứng dụng đều được lưu trữ và xử lý ở phía đám mây, khách hàng chỉ sử dụng những công cụ đơn giản để truy cập. Việc này giúp khách hàng dễ dàng sử dụng, không cần thiết phải cài đặt các ứng dụng lên thiết bị, giúp người quản trị, quản lý ứng dụng dễ dàng quản lý, bảo trì, nâng cấp, cải tiến ứng dung. Ngoài ra, ứng dụng cũng cung cấp những dịch vụ đo lường, giúp người dùng chỉ phải trả tiền cho thời gian sử dụng ứng 16 dụng, không như những phần mềm được cài đặt trên thiết bị, phải trả tiền cho toàn bộ quá trình từ cài đặt kể cả lúc không sử dụng. Một trong những ứng dụng tiêu biểu nhất là Google Apps [18]. Khách hàng có thể sử dụng những công cụ phục vụ công việc thông qua nền web như: email, hệ thống văn phòng như Word, Spreadsheets, Presentation,…. 2.2.2 Nền tảng như một dịch vụ (PaaS - Platform as a Service) Nền tảng như một dịch vụ là việc cung cấp nền tảng tính toán như một dịch vụ. Nó cung cấp một môi trường thực thi phần mềm mà các dịch vụ ứng dụng có thể chạy trên đó. PaaS cung cấp điều kiện triển khai ứng dụng mà không cần các chi phí và phức tạp trong việc mua và quản lý phần cứng, phần mềm cơ bản. Nó cung cấp tất cả các phương tiện cần thiết để hỗ trợ việc xây dựng, phát triển các ứng dụng từ đầu đến lúc hoàn thành. Nền tảng như một dịch vụ cung cấp những đặc điểm chính: - Cung cấp các dịch vụ cho quá trình phát triển, kiểm thử, triển khai, đưa dịch vụ, duy trì các ứng dụng trong cùng một môi trường phát triển tích hợp. - Các công cụ tạo giao diện người dùng dựa trên nền Web - Cung cấp kiến trúc phục vụ cho nhiều người sử dụng. - Tích hợp với Web Service và CSDL. - Hỗ trợ cho sự phát triển đội ngũ cộng tác. Hai ứng dụng tiêu biểu của PaaS là Google App Engine và Microsoft Azure. Google App Engine cung cấp môi trường phát triển cho những nhà phát triển trên hai ngôn ngữ chính là Java và Python. Microsoft Azure cung cấp môi trường phát triển cho .NET framework, hỗ trợ các ngôn ngữ .NET, ngoài ra cũng hỗ trợ PHP, Java và Ruby. 2.2.3 Hạ tầng hoạt động như một dịch vụ (IaaS – Infrastructure as a Service) Cơ sở hạ tầng như một dịch vụ có thể hiểu đơn giản đó là phần cứng như là một dịch vụ. Thay vì phải xây dựng các hệ thống server lớn (farm, data center), các công ty 17 nhỏ có thể trả tiền để sử dụng cơ sở hạ tầng được cung cấp bởi các doanh nghiệp chuyên nghiệp. Các công ty như Google, Microsoft, IBM và Amazon đang cung cấp những dịch vụ đó. Khả năng mở rộng của phần cứng máy tính và mạng máy tính kết nối cao là những thành phần cơ bản của IaaS hiệu quả. Cơ sở hạ tầng như một dịch vụ có thể chia làm hai loại: - Tính toán như một dịch vụ (Computation as a Service – CaaS), trong đó các máy chủ dựa trên máy ảo được thuê, và tính phí theo giờ sử dụng, công suất máy chủ yếu là CPU, dung lượng bộ nhớ RAM, các tính năng của máy ảo, hệ điều hành và các phần mềm được triển khai. - Dữ liệu như một dịch vụ (Storage as a Server – SaaS), trong đó không gian lưu trữ dữ liệu không giới hạn được sử dụng để lưu trữ các loại dữ liệu của người dùng, và chi phí được tính trên tổng dung lượng lưu trữ và truyền tải dữ liệu (tính theo GB). Hai ứng dụng tiêu biểu của IaaS là Amazon EC2 và Amazon S3. Amazon EC2 là CaaS và Amazon S3 là SaaS [19] [20]. 2.3 Các hệ thống Cloud Computing tiêu biểu 2.3.1 Google App Engine Google App Engine được cung cấp bởi Google, là một môi trường phát triển, triển khai ứng dụng Web trên các trung tâm dữ liệu do Google quản lý. Google App Engine đề xuất phương pháp phát triển và triển khai nhanh, quản trị đơn giản, không cần quan tâm đến các vấn đề phần cứng, dễ dàng mở rộng. Khi sử dụng Google App Engine, rất dễ dàng để xây dựng ứng dụng, dễ dàng bảo trì, mở rộng theo sự tăng trưởng của lưu lượng người sử dụng và lượng dữ liệu cần lưu trữ. Khi sử dụng Google App Engine, người sử dụng không cần quan tâm đến các server, chỉ cần đưa ứng dụng lên rồi hoạt động để phục vụ những đối tượng khách hàng của mình. Google App Engine là ứng dụng PaaS, hỗ trợ hai ngôn ngữ lập trình chính là Python và Java, ngoài ra cũng hỗ trợ người dùng sử dụng BigTable và GFS – Google File System. 18 Những ưu điểm lớn nhất của Google App Engine: - Quản lý tập trung: người sử dụng chỉ cần quan tâm đến ứng dụng của mình, không cần phải quan tâm đến các hệ thống khác như server, đường truyền mạng. - Độ tin cậy và khả năng hỗ trợ: hỗ trợ trực tuyến, 99,9% thời gian trên mạng. - Bảo mật mặc định: chỉ những người dùng trong khu vực Google App mới có thể truy cập vào ứng dụng theo mặc định - Giá thành rẻ: mỗi ứng dụng giá trung bình 8$ để sử dụng cho mỗi người dùng, và tối đa 1000$ một tháng, chỉ phải trả tiền khi sử dụng. Mỗi người sử dụng được miễn phí 500MB lưu trữ và 5M pageviews trong một tháng. Ngoài ra Google App Engine còn hỗ trợ những công nghệ mở rộng như GFS và BigTable. 2.3.2 Microsoft Azune Dịch vụ Microsoft Azure cung cấp nền tảng ứng dụng trên môi trường đám mây cho phép những ứng dụng được đưa lên và chạy ở trung tâm dữ liệu của Microsoft. Dịch vụ Microsoft Azure cung cấp một hệ điều hành đám mây là Microsoft Azure, và mọi ứng dụng đều chạy trên hệ điều hành đám mây này. Microsoft Azure cũng là một ứng dụng PaaS, nó cho phép phát triển, quản lý và đưa các ứng dụng lên. Microsoft Azure bao gồm 3 thành phần chính: Compute, Storage và Fabric. - Compute cung cấp môi trường tính toán với Web Role và Worker Role. - Storage tập trung vào việc cung cấp khả năng mở rộng lưu trữ (Blobs, Tables, Queues, Drives) cho yêu cầu mở rộng lớn. - Fabric cung cấp mô hình ứng dụng ở mức độ cao, cho việc quản lý thông minh quy trình phát triển ứng dụng hoàn chỉnh bao gồm: phát triển, giám sát hệ thống, nâng cấp và bỏ kích hoạt. Hiện tại các dịch vụ của Microsoft Azure đang chạy trên nền .NET framework, có hỗ trợ PHP. Ngoài ra nó cũng có thể tích hợp với 2 SDK cơ bản: Java SDK cho AppFabric và Ruby SDK cho AppFabric, nên cho phép các lập trình viên Java và Ruby tích hợp với AppFabric. 19 2.3.3 Amazon Elastic Compute Cloud (EC2) Amazon đã cung cấp một giải pháp phổ thông và toàn diện cho điện toán đám mây, có tên là Amazon Elastic Compute Cloud – EC2 [19]. Giải pháp này được công bố vào ngày 25 tháng 8 năm 2006. EC2 là dịch vụ CaaS. Ngày nay EC2 cung cấp đầy đủ khả năng kiểm soát các tài nguyên máy tính của khách hàng, một máy chủ mới có thể thiết lập và khởi động trong vài phút và khả năng mở rộng nhanh chóng thông qua giao diện Web đơn giản. EC2 cung cấp nhiều tính năng hữu ích cho khách hàng, giá thành không quá đắt, khả năng triển khai ở nhiều địa điểm, hệ thống địa chỉ IP mềm dẻo, kết nối với hệ thống hạ tầng hiện tại của khách hàng thông qua VPN, giám sát các dịch vụ bằng Amazon CloudWatch, và cân bằng tải mềm dẻo. EC2 đã được triển khai chính xác và nó trở thành chuẩn mực của điện toán đám mây. EC2 cung cấp các instance theo những cấu hình cơ bản: theo hệ điều hành Linux-Window, theo cấu hình máy Small-Large-Extra Large và bổ sung thêm các cấu hình yêu cầu về RAM, CPUs. Tất cả giá sử dụng máy được tính theo giờ và theo khu vực đặt máy. Hình 2.3-1: Giao diện sử dụng EC2 [19] 20
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất