Điện toán đám mây (Thuật ngữ tiếng Anh: Cloud Computing, hay còn biết đến với tên gọi “Điện toán máy chủ ảo”) là mô hình máy tính dựa trên nền tảng phát triển của Internet.
Điện toán đám mây là sự nâng cấp từ mô hình máy chủ mainframe sang mô hình cleint-server. Cụ thể, người dùng sẽ không còn phải có các kiến thức về chuyên mục để điều khiển các công nghệ, máy móc và cơ sở hạ tầng, mà các chuyên gia trong “đám mây” của các hãng cung cấp sẽ giúp thực hiện điều đó.
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó. Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
31 trang |
Chia sẻ: tuandn | Lượt xem: 7019 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu về điện toán đám mây, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỀ CƯƠNG:
ĐỀ TÀI : TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM MÂY
I.ĐIỆN TOÁN ĐÁM MÂY.
1.1. Khái niệm.
1.2.Các đặc điểm của điện toán đám mây
1.3 Ưu và nhược của mô hình "Điện toán đám mây"
1.4.Sự cần thiết của điện toán đám mây.
II.HOẠT ĐỘNG CỦA ĐIỆN TOÁN ĐÁM MÂY.
2.1.Kiến trúc của ứng dụng điện toán đám mây.
2.2.Kiến trúc của máy chủ.
2.3.Map Reduce.
2.4.Hadoop.
III. ĐIỆN TOÁN ĐÁM MÂY – XU HƯỚNG CÔNG NGHỆ MỚI TẠI VIỆT NAM.
IV. ĐIỆN TOÁN ĐÁM MÂY CỦA MICROSOFT.
V. TỔNG KẾT.
I. ĐIỆN TOÁN ĐÁM MÂY
1.1. Khái niệm.
Điện toán đám mây (Thuật ngữ tiếng Anh: Cloud Computing, hay còn biết đến với tên gọi “Điện toán máy chủ ảo”) là mô hình máy tính dựa trên nền tảng phát triển của Internet.
Điện toán đám mây là sự nâng cấp từ mô hình máy chủ mainframe sang mô hình cleint-server. Cụ thể, người dùng sẽ không còn phải có các kiến thức về chuyên mục để điều khiển các công nghệ, máy móc và cơ sở hạ tầng, mà các chuyên gia trong “đám mây” của các hãng cung cấp sẽ giúp thực hiện điều đó.
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó. Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
Ví dụ nếu một website được chứa trên một máy chủ, người dùng phải lựa chọn hệ điều hành để cài đặt (Linux/Windows/Mac), tiến hành các thiết lập để máy chủ và website có thể hoạt động. Tuy nhiên, nếu trang web được chứa trên “đám mây”, người dùng sẽ không cần phải thực hiện thêm bất cứ điều gì khác. Điều này cũng đảm bảo yếu tố đầu tư về phần cũng được giảm tải ở mức tối đa.
Sơ đồ điện toán đám mây, với các dịch vụ được cung cấp nằm bên trong “đám mây” được truy cập từ các máy tính ở bên ngoài.
Tài nguyên, dữ liệu, phần mềm và các thông tin liên quan đều được chứa trên các server (chính là các “đám mây”).
Nói một cách đơn giản nhất “ứng dụng điện toán đám mây” chính là những ứng dụng trực tuyến trên Internet. Trình duyệt là nơi ứng dụng hiện hữu và vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp ứng dụng đó.
1.2.Các đặc điểm của điện toán đám mây.
Điện toán đám mây có những đặc điểm chính sau đây:
Tránh phí tổn cho khách hàng.
Độc lập thiết bị và vị trí: cho phép khách hàng truy cập hệ thống từ bất kỳ nơinào hoặc bằng bất kỳ thiết bị gì.
Nhiều người sử dụng: giúp chia sẻ tài nguyên và giá thành, cho phép tập trunghóa cơ sở hạ tầng, tận dụng hiệu quả các hệ thống.
Phân phối theo nhu cầu sử dụng
Quản lý được hiệu suất
Tin cậy
Khả năng mở rộng.
Cải thiện tài nguyên.
Khả năng duy trì.
1.3 Ưu và nhược của mô hình "Điện toán đám mây":
1.3.1. Ưu điểm: Những ưu điểm và thế mạnh dưới đây đã góp phần giúp "điện toán đám mây" trở thành mô hình điện toán được áp dụng rộng rãi trên toàn thế giới.
a. Tốc độ xử lý nhanh, cung cấp cho người dùng những dịch vụ nhanh chóng và giá thành rẻ dựa trên nền tảng cơ sở hạ tầng tập trung (đám mây).
b. Chi phí đầu tư ban đầu về cơ sở hạ tầng, máy móc và nguồn nhân lựa của người sử dụng điện toán đám mây được giảm đến mức thấp nhất.
c. Không còn phụ thuộc vào thiết bị và vị trí địa lý, cho phép người dùng truy cập và sử dụng hệ thống thông qua trình duyệt web ở bất kỳ đâu và trên bất kỳ thiết bị nào mà họ sử dụng (chẳng hạn là PC hoặc là điện thoại di động…)
d. Chia sẻ tài nguyên và chi phí trên một địa bàn rộng lớn, mang lại các loại ích cho người dùng như:
• Tập trung cơ sở hạ tầng tại một vị trí giúp người dùng không tốn nhiều giá thành đầu tư về trang thiết bị.
• Công suất xử lý nhanh hơn do tài nguyên được tập trung. Ngoài ra, người dùng không cần phải đầu tư về nguồn nhân lực quản lý hệ thống.
• Khả năng khai thác và hiệu suất được cài thiện hơn 10-20% so với hệ thống máy tính cá nhân thông thường.
e. Với độ tin cậy cao, không chỉ giành cho người dùng phổ thông, điện toán đám mây phù hợp với các yêu cầu cao và liên tục của các công ty kinh doanh và các nghiên cứu khoa học. Tuy nhiên, một vài dịch vụ lớn của điện toán đám mây đôi khi rơi vào trạng thái quá tải, khiến hoạt động bị ngưng trệ. Khi rơi vào trạng thái này, người dùng không có khả năng để xử lý các sự cố mà phải nhờ vào các chuyên gia từ đám mây tiến hành xử lý.
f. Khả năng mở rộng được, giúp cải thiện chất lượng các dịch vụ được cung cấp trên “đám mây”.
g. Khả năng bảo mật được cài thiện do sự tập trung về dữ liệu.
h. Các ứng dụng của điện toán đám mây dễ dàng để sửa chữa hơn bởi lẽ chúng không được cìa đặt cố định trên một má tính nào. Chúng cũng dễ dàng hỗ trợ và cài thiện về tính năng.
i. Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống kê trên từng khách hàng và ứng dụng, theo từng ngày, từng tuần, từng tháng. Điều này đảm bảo cho việc định lượng giá cả của mỗi dịch vụ do điện toán đám mây cung cấp để người dùng có thể lựa chọn phù hợp.
1.3.2. Nhược điểm: Tuy nhiên, mô hình điện toán này vẫn còn mắc phải một số nhược điểm sau:
a. Tính riêng tư:
Các thông tin người dùng và dữ liệu được chứa trên điện toán đám mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì một mục đích nào khác?
b. Tính sẵn dùng:
Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người dùng không thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?
c. Mất dữ liệu:
Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân. Điều này sẽ mất nhiều thời gian. Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người dùng bị mất và không thể phục hồi được.
Dữ liệu chứa trên các "đám mây" sẽ phải giao phó toàn bộ"số phận" cho "đám mây
d. Tính di động của dữ liệu và quyền sở hữu:
Một câu hỏi đặt ra, liệu người dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cáp từ đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt động.
e. Khả năng bảo mật:
Vấn đề tập trung dữ liệu trên các “đám mây” là cách thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sử dụng dịch vụ của điện toán đám mây. Bởi lẽ một khi các đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng. Tuy nhiên, đây không thực sự là vấn đề của riêng “điện toán đám mây”, bởi lẽ tấn công đánh cắp dữ liệu là vấn đề gặp phải trên bất kỳ môi trường nào, ngay cả trên các máy tính cá nhân.
1.4 Sự cần thiết của điện toán đám mây.
Điện toán đám mây có khả năng sẽ mở ra những giá trị vĩ đại cho các nguồn lực ngoài (Outsourcing) của ngành CNTT và làm thay đổi bộ mặt của ngành dịch vụ CNTT truyền thống.
Dưới đây sẽ là những gì ngành công nghiệp Outsourcing đang phản ứng tương tác với sự phát triển của điện toán đám mây.
Các hợp đồng dịch vụ Outsourcing truyền thống luôn mang những nội dung khá rõ ràng với các máy chủ, các trung tâm dữ liệu, mạng lưới, các chỉ tiêu kỹ thuật, hiệu suất công việc và dòng mã sản phẩm. Sự xuất hiện của điện toán đám mây lại đang làm thay đổi tất cả những điều đó nhờ sự xuất hiện của các dịch vụ CNTT năng động như một cơ sở cần thiết cho những viễn cảnh công nghệ dành cho doanh nghiệp.
Nhờ các dịch vụ đám mây điện toán, nhiều đơn vị CNTT sẵn lòng đi trước một bước hơn trong việc tạo ra các tùy biến: Chúng giúp các hãng CNTT dần loại bỏ được những chi phí vốn khá tốn kém từ cơ sở hạ tầng đến các phần mềm tiếp cận khách hàng và những vấn đề trung gian khác. Và hệ quả là, điện toán đám mây đang làm thay đổi hoàn toàn bộ mặt của các dịch vụ CNTT truyền thống.
Susan Tan, giám đốc dịch vụ CNTT và nghiên cứu nguồn lực của Gartner cho rằng: “Điện toán đám mây là bước chuyển cơ bản của các công ty trong việc chi tiền và tiếp cận các dịch vụ CNTT”. Trên thực tế, Gartner dự đoán cho đến năm 2012, 20% công việc kinh doanh sẽ là ảo và không có bất kỳ tài sản CNTT nào. Đây sẽ là người thay đổi cuộc chơi dành cho các nhà sản xuất dịch vụ Outsourcing, từ các nhà cung cấp và tư vấn dịch vụ “onshore” đến dịch vụ thuê ngoài, các nhà tích hợp hệ thống đến các nhà sản xuất mới riêng biệt, nhằm làm cuộc chơi tốt hơn hoặc xấu đi.
Phil Fersht, sáng lập viên của công ty tư vấn dịch vụ thuê ngoài Horses for Sources cho rằng:“Nếu điện toán đám mây chỉ là một ngành khai thác các cơ sở hạ tầng đắt đỏ, rắc rối và không thân thiện với môi trường trong đó, Amazon và các công ty khác phân phối các năng lượng điện toán, thì điện toán đám mây đơn giản chỉ là ngành cung cấp các ích lợi về cơ sở hạ tầng. Tuy nhiên, nếu để các dữ liệu và trình ứng dụng được lưu giữ bên ngoài đám mây, người sử dụng liệu có cần phải tự mình quản lý chúng nữa không? Người sử dụng có thật sự cần phải đạt được các lợi ích cạnh tranh đi cùng với việc thực hiện các hợp đồng bảo hiểm? Hay đã đến lúc tìm kiếm các nhà cung cấp dịch vụ có chức năng quản lý trình ứng dụng, cơ sở hạ tầng có liên quan và thực hiện các giao dịch chưa?”
Fersht gọi các dịch vụ đám mây là nền tảng cho các giải pháp nguồn dành cho doanh nghiệp thế hệ kế tiếp. Ông tin rằng các dịch vụ đám mây sẽ làm cho quá trình phân phối truyền thống của các dịch vụ CNTT hiệu quả hơn và tiết kiệm chi phí hơn. “Chúng cũng giúp tạo ra một cơ cấu phân phối cho các dịch vụ gia công thực sự. Thế hệ dịch vụ thuê ngoài mới này có khả năng mở ra những giá trị to lớn cho khách hàng”
II. HOẠT ĐỘNG CỦA ĐIỆN TOÁN ĐÁM MÂY
2.1. Kiến trúc của ứng dụng điện toán đám mây.
Chúng ta biết rằng điện toán đám mây là một tổ hợp tính toán dựa trên các thiết bị hạ tầng phần cứng trong một đám mây của nhà cung cấp dịch vụ. Hạ tầng phần cứng bao gồm các sản phẩm máy chủ chứa dữ liệu nhỏ được kết nối lại với nhau như một hệ thống phục vụ cho việc lưu trữ và xử lý dữ liệu và các ứng dụng tính toán trên các tài nguyên khác. Điện toán đám mây gọi một ứng dụng chạy trên máy chủ ảo như là nó đang chạy tại chỗ trên hạ tầng phần cứng phân tán trong đám mây. Những máy chủ ảo được tạo ra theo những cách mà ở đó những thỏa thuận dịch vụ (SLA) khác nhau và sự tin cậy đều được đảm bảo. Có thể có nhiều thực thể khác nhau của cùng một máy chủ ảo truy cập vào những phần sẵn sàng của cơ sở hạ tầng phần cứng. Điều này đảm bảo rằng có nhiều bản sao của các ứng dụng, để khi xảy ra lỗi chúng sẵn sàng khắc phục. Máy chủ ảo phân tán quá trình xử lý vào cơ sở hạ tầng phần cứng và sau khi quá trình tính toán được hoàn thành chúng sẽ trả về kết quả. Quá trình này cần có một phần mềm hoặc hệ điều hành xử lý công việc quản lý hệ thống phân tán, giống như kỹ thuật tính toán lưới, giúp quản lý các yêu cầu khác nhau đến máy chủ ảo. Cơ chế này sẽ đảm bảo việc tạo ra nhiều bản sao và cả việc bảo vệ sự thống nhất dữ liệu được lưu trên cơ sở hạ tầng. Đồng thời hệ điều hành đó cũng có thể tự điều chỉnh như là khi gặp quá tải các tiến trình, phân chia xử lý để hoàn thành đáp ứng yêu cầu. Hệ thống quản lý công việc như vậy được che dấu với người dùng, hay nói các khác là ẩn với người dùng. Sự độc lập với người dùng thể hiện ở chỗ nó xử lý và trả về kết quả đạt được, chứ không cần phải quan trọng nó ở đâu và nó thực hiện điều đó bằng cách nào. Người dùng trả tiền trên lưu lượng sử dụng hệ thống, như đã nói dịch vụ được tính bằng chu kỳ của CPU hoặc byte. Thực tế số tiền mà khách hàng phải trả thường được tính dựa vào lưu lượng dùng CPU trên một giờ hoặc số Gb dữ liệu di chuyển trong một giờ.
2.2. Kiến trúc máy chủ:
Điện toán đám mây được tạo thành bằng cách sử dụng tài nguyên vật lý lớn từ nhiều máy chủ trong đám mây của nhà cung cấp dịch vụ. Đây là một ứng dụng của nguyên tắc kết hợp vào trong bài toán cần một hệ thống tính toán lớn mà thiết bị hoặc cơ sở vật chất không cho phép nên chúng ta cần phải ghép những thiết bị, những hệ thống nhỏ lại với nhau để trở thành một hệ thống lớn đáp ứng những nhu cầu lớn hơn cho người sử dụng trong những hệ thống yêu cầu tính toán và lưu trữ lớn. Như đã nói bên trên, dịch vụ và ứng dụng của điện toán đám mây dựa trên máy chủ ảo được thiết kế từ tài nguyên góp lại này. Có hai ứng dụng (hoặc hệ điều hành) sẽ giúp quản lý các thể hiện trên máy trong đám mây, cũng như quản lý tất cả các tài nguyên của các thể hiện máy chủ ảo. Đây là một ứng dụng nguyên lý tách khỏi vào trong hệ thống điện toán đám mây nhằm tách biệt phần cứng phức tạp của hệ thống vói giao diện bên ngoài. Nhằm tạo ra một giao diện người dùng đơn giản, dễ sử dụng hơn so với phần cứng phức tạp bên dưới và cũng là để tách biệt giao diện người dùng với hệ thống phần cứng, khi đó người dùng chỉ cần quan tâm đến những ứng dụng mà học cần chứ không cần quan tâm đến phần cứng bên dưới được thực hiện như thế nào. Ứng dụng thứ nhất là Xen hypervisor cung cấp các lớp trừu tượng giữa phần cứng và hệ điều hành ảo, nhờ vậy sự phân tán của các tài nguyên và tiến trình được quản lý giống như là đang thực hiện trên một máy. Ứng dụng thứ hai cũng được sử dụng rộng rãi là hệ thống quản lý máy chủ ảo Enomalism, nó được sử dụng để quản lý hạ tầng phần cứng nền tảng.
Khi Xen sử dụng cho các lớp ảo của các cơ sở hạ tầng máy chủ, một lớp phần mềm là Xen hypervisor đã được cài đặt giữa máy chủ và hệ điều hành. Nó cung cấp một lớp trừu tượng cho phép mỗi server vật lý có thể được chạy như là một hoặc nhiều máy chủ ảo, tách riêng hệ điều hành và các ứng dụng của nó khỏi lớp phần cứng vật lý bên dưới. Xen hypervisor là một công nghệ mã nguồn mở, được cộng tác phát triển bởi Xen và các kỹ sư của hơn 20 công ty nổi tiếng về trung tâm dữ liệu có tính chất đổi mới bao gồm : AMD, Cisco, Dell, HP, IBM, Intel, Mellanox, Network Appliance, Novell, Red Hat, SGI, Sun, Unisys, Veritas, Voltaire, and Citrix. Xen được đăng ký bởi GNU General Public License (GPL2) và được sử dụng không được thay đổi về mã nguồn và định dạng đối tượng. Xen Hypervisor cũng đặc biệt ngắn - ít hơn 50.000 dòng mã. Vì vậy chi phí dịch mã code rất thấp và hiệu suất gần giống như trên máy nguyên thủy. Xen tái sử dụng các trình điều khiển thiết bị hiện có (đối với cả hai loại là mở và đóng mã nguồn) từ Linux, làm cho thiết bị quản lý dễ dàng. Hơn nữa Xen rất mạnh mẽ để điều khiển lỗi và bảo vệ cả người dùng và hypervisor khỏi các vấn đề với các lỗi từ các driver độc hại.
Hệ thống quản lý máy chủ ảo Enomalism là một nền tảng hạ tầng cơ sở máy chủ ảo hoàn chỉnh. Enomalism quản lý ảnh hưởng giữa các tài nguyên trong hệ thống. Enomalism có thể sử dụng để dẫn các luồng tính toán vào đám mây giống như là luồng từ khách hàng được đi vào thực hiện tính toán trên một máy chủ từ xa. Nó mang tất cả những tính năng như: triển khai kế hoạch tính toán, cân bằng tải, tránh xung đột tài nguyên… Enomalism cũng là một ứng dụng mã nguồn mở, nó có một giao diện người dùng dựa trên nền web rất đơn giản và dễ sử dụng. Nó có kiến trúc từng phần dễ dàng cho phép tạo và thêm vào hệ thống các bổ sung và các tiện ích cần thiết cho việc sử dụng. Nó hỗ triển khai tổ chức phân tán và tạo các ứng dụng dựa trên tổng quang chung. Nó hỗ trợ quản lý các trường ảo khác nhau gồm KVM/Qemu, Amazon EC2 and Xen, OpenVZ, Linux Containers, VirtualBox. Nó có chế độ phân quyền người dùng và đặt quyền truy cập.
2.3. Map Reduce.
Map Reduce là một mô hình lập trình, được Google phát triển vào năm 2003, để hỗ trợ cho quá trình tính toán song song trên số lượng tập các dữ liệu cực lớn (vài tỷ byte) lưu trữ ở các cụm máy tính thành phần trong đám mây điện toán. Trong mô hình này, người dùng định nghĩa một hàm map để tính toán một cặp khóa/giá trị đầu vào và tạo nên một tập các cặp khóa/giá trị tạm thời, sau đó hàm reduce sẽ gom nhóm tất cả những giá trị tạm thời nào có chung khóa lại với nhau cho ra kết quả mong muốn. Rất nhiều các tác vụ trong đời sống thực có thể được thực thi bằng mô hình này,chúng ta sẽ xem xét cụ thể hơn ở phần sau.
Chương trình được viết theo kiểu chức năng này được song song hóa một cách tự động và được thực thi trên một cụm lớn các “máy tính hàng hóa” (các máy tính thành phần cấu tạo nên đám mây điện toán). Hệ thống khi chạy sẽ quan tâm chi tiết phân vùng của dữ liệu đầu vào, lập lịch quá trình thực thi chương trình thông qua một tập các máy tính thành phần, xử lý lỗi và quản lý các kết nối nội giữa các máy tính thành phần. Điều này cho phép các lập trình viên ngay cả chưa có bất kỳ kinh nghiệm nào trong các hệ thống song song và phân tán đều có thể dễ dàng tối ưu hóa các tài nguyên của một hệ thống phân tán lớn
Trong vòng vài năm trước đây, các kỹ sư của Google phải khởi tạo hàng trăm các quá trình tính toán dành cho các mục đích đặc biệt trên số lượng lớn các dữ liệu thô như các dữ liệu móc nối, nhật ký các trang web yêu cầu…Các quá trình tính toán này dùng cho nhiều mục đích khác nhau như tóm tắt số lượng các trang đã được móc nối bởi từng host, tính tần số truy xuất của 1 trang web, tìm ra tập các câu truy vấn được dùng nhiều nhất trong ngày…Hầu hết các tính toán này đều không phức tạp,nhưng dữ liệu đầu vào thường rất lớn và quá trình tính toán cần phải được phân tán cho hàng trăm ngàn máy nhằm có thể thực thi trong khoảng thời gian cho phép. Các vấn đề về việc song song hóa tính toán,phân tán dữ liệu và quản lý lỗi đã làm cho các quá trình tính toán vốn đơn giản này trở nên vô cùng phức tạp.
Để giải quyết vấn đề, các kỹ sư của Google đã thiết kế một mô hình trừu tượng cho phép chúng ta diễn tả quá trình tính toán này một cách đơn giản như vốn dĩ của nó, đồng thời che dấu đi các chi tiết phức tạp trong việc song song hóa, chấp nhận lỗi, cân bằng nạp, phân tán dữ liệu trong một thư viện riêng. Sự trừu tượng hóa này được lấy ý tưởng từ 2 thành phần cơ bản là map và reduce trong Lisp và nhiều loại ngôn ngữ lập trình hàm khác. Chúng ta có thể nhận thấy rằng trong hầu hết các quá trình tính toán của chúng ta đều bao gồm một thao tác map, ánh xạ các đầu vào với các giá trị của “bản ghi” để thực hiện việc tính toán các giá trị đó thành 1 tập các cặp khóa/giá trị tạm thời, sau đó ta lại tạo thêm một thao tác reduce, thu gọn các giá trị mà có cùng key lại với nhau và cho ra kết quả.Việc sử dụng mô hình hàm chức năng map và reduce cho phép chúng ta có thể thực thi song song các tính toán lớn dễ dàng và có thể sử dụng quá trình thực thi lại như một cơ chế chấp nhận lỗi.
Các thế mạnh chính của phương pháp này là cung cấp cho chúng ta một giao diện đơn giản và mạnh mẽ, cho phép song song hóa và phân tán dữ liệu trong các phép toán lớn một cách tự động, giúp cho ta thu được hiệu năng cao nhất trong số lượng lớn các cụm máy tính thành phần của đám mây điện toán. Ở phần sau chúng ta sẽ lần lượt xem xét mô hình lập trình cơ bản của MapReduce và một vài ví dụ đơn giản
Mô hình lập trình
Quá trình tính toán nhận một cặp giá trị đầu vào gồm khóa/giá trị, và tính toán cho ra một tập các cặp khóa/giá trị đầu ra. Ngư