CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ DỊCH VỤ LBS - Chương này đưa ra một cái nhìn tổng quan nhất về Điện toán đám mây, về lợi ích và hạn chế khi áp dụng Điện toán đám mây trong thực tiễn. - Ngoài ra, nội dung chương này giới thiệu chung về dịch vụ dựa trên vị trí (Location Based Services – LBS) và những ứng dụng của dịch vụ LBS trong thực tiễn. Tổng quan về điện toán đám mây 1. Điện toán đám mây là gì? Chìa khóa để định nghĩa điện toán đám mây là bản thân các “đám mây”.
Với mục đích của chúng ta, đám mây là một nhóm nhiều các máy tính được kết nối lại với nhau. Những máy tính này có thể là các máy tính cá nhân hoặc các máy chủ mạng, có thể là máy chung hoặc máy riêng. Trên thực tế, có rất nhiều các định nghĩa của các tổ chức khác nhau về điện toán đám mây. Người viết xin trích dẫn một số định nghĩa điển hình: Theo Wikipedia: “Điện toán đám mây (cloud computing) là một mô hình điện toán có khả năng co giãn (scalable) linh động và các tài nguyên thường được ảo hóa được cung cấp như một dịch vụ trên mạng Internet”.
Theo Gartner (http://www.uk/) “Một mô hình điện toán nơi mà khả năng mở rộng và linh hoạt về công nghệ thông tin được cung cấp như một dịch vụ cho nhiều khách hàng đang sử dụng các công nghệ trên Internet”. Theo Ian Foster: “Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng (platform) và các dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet”[6]. Theo NIST (The National Institute of Standards and Technology): “Điện toán đám mây là một mô hình cho phép truy cập khắp nơi, thuận tiện, theo yêu cầu để chia sẻ nguồn tài nguyên tính toán (ví dụ như: mạng, máy chủ, bộ nhớ, z 13 ứng dụng và dịch vụ) mà có thể được cung cấp và giải phóng một cách nhanh chóng với sự quản lý hoặc can thiệp của nhà cung cấp dịch vụ là tối thiểu.” [3] Theo Rajkumar Buyya: “Cloud là một loại hệ thống phân bố và xử lý song song gồm các máy tính ảo kết nối với nhau và được cung cấp động cho người dùng như một hoặc nhiều tài nguyên đồng nhất dựa trên sự thỏa thuận dịch vụ giữa nhà cung cấp và người sử dụng”. [4] Điện toán đám mây mở rộng ra khỏi 1 công ty hoặc 1 xí nghiệp.
Các ứng dụng và dữ liệu được phục vụ bởi đám mây luôn sẵn sàng cho một nhóm nhiều người sử dụng, vượt ra khỏi tổ chức, hệ thống. Mọi truy cập được thực hiện thông qua Internet. Bất kể người dùng hợp pháp nào đều có quyền truy cập đến tài liệu, trình ứng dụng ở bất kỳ nơi đâu thông qua mạng Internet. Và, đối với người dùng, các kỹ thuật và cơ sở hạ tầng phía sau những đám mây là vô hình.
Mô hình dịch vụ của điện toán đám mây. Dịch vụ điện toán đám mây rất đa dạng và bao gồm tất cả các lớp dịch vụ điện toán từ cung cấp năng lực tính toán trên máy chủ hiệu suất cao hay các máy chủ ảo, không gian lưu trữ dữ liệu, một hệ điều hành, một công cụ lập trình, hay một ứng dụng kế toán … Các dịch vụ cũng được phân loại khá da dạng, nhưng các mô hình dịch vụ điện toán đám mây phổ biến nhất có thể được phân thành 3 nhóm: Dịch vụ phần mềm (SaaS), Dịch vụ nền tảng (PaaS), Dịch vụ hạ tầng (IaaS).1: Mô hình dịch vụ điện toán đám mây z 14 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 mà không quan tâm tới hay bỏ công sức quản lý tài nguyên tính toán bên dưới. 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. Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho doanh nghiệp mà nổi bật nhất là CRM. Các ứng dụng SaaS cho người dùng cuối phổ biến là các ứng dụng office Online của Microsoft hay Google Docs của Google. 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 Dịch vụ 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). PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển các phần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng đám mây đó. Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa (middleware), các ứng dụng chủ (application server) cùng các công cụ lập trình với ngôn ngữ lập trình nhất định để xây dựng ứng dụng.
Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho khách hàng thông qua một API riêng. Khách hàng xây dựng ứng dụng và tương tác với hạ tầng CC thông qua API đó. Ở mức PaaS, khách hàng không quản lý nền tảng Cloud hay các tài nguyên lớp như hệ điều hành, lưu giữ ở lớp dưới. Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng dụng (ISV).
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, Java, PHP, … (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 z 15 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 Dịch vụ IaaS cung cấp dịch vụ cơ bản bao gồm năng lực tính toán, không gian lưu trữ, kết nối mạng tới khách hàng.
Khách hàng (cá nhân hoặc tổ chức) có thể sử dụng tài nguyên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cài đặt ứng dụng riêng cho người sử dụng. Với dịch vụ này khách hàng làm chủ hệ điều hành, lưu trữ và các ứng dụng do khách hàng cài đặt. Nhà cung cấp IaaS thương mại nối tiếng nhất là Amazon Elastic Compute Cloud (EC2). 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 điện toán đám mây 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. Mô hình triển khai điện toán đám mây. Dựa theo mô hình triển khai, điện toán đám mây được chia làm 3 loại chính: Dịch vụ đám mây mở - Public Cloud, Dịch vụ đám mây nội bộ - Private Cloud và Dịch vụ đám mây lai - Hybrid Cloud. Dịch vụ đám mây mở - 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. Người sử dụng dịch vụ sẽ được lợi là chi phí đầu tư thấp, giảm thiểu rủi ro do nhà cung cấp dịch vụ đã gánh vác nhiệm vụ quản lý hệ thống, cơ sở hạ tầng, bảo mật… Một lợi ích khác của mô hình này là cung cấp khả năng co giãn (mở rộng hoặc thu nhỏ) theo yêu cầu của người sử dụng. z 16 Public Cloud Internet Dịch vụ Mạng Dịch vụ Tính Toán Dịch vụ Lưu trữ Hình 1. 2: Mô hình Public Cloud Tuy nhiên Public Cloud có một trở ngại, đó là vấn đề mất kiểm soát về dữ liệu và vấn đề an toàn dữ liệu.
Trong mô hình này mọi dữ liệu đều nằm trên dịch vụ Cloud, do nhà cung cấp dịch vụ Cloud đó bảo vệ và quản lý. Chính điều này khiến cho khách hàng, nhất là các công ty lớn cảm thấy không an toàn đối với những dữ liệu quan trọng của mình khi sử dụng dịch vụ Cloud. Dịch vụ đám mây nội bộ - Private Cloud Trong mô hình 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ụ.
Doanh nghiệp sở hữu cơ sở hạ tầng và quản lý các ứng dụng được triển khai trên đó. Private Cloud có thể được xây dựng và quản lý bởi chính đội ngũ IT của doanh nghiệp hoặc có thể thuê một nhà cung cấp dịch vụ đảm nhiệm công việc này. Mặc dù tốn chi phí đầu tư nhưng Private Cloud lại cung cấp cho doanh nghiệp khả năng kiểm soát và quản lý chặt chẽ những dữ liệu quan trọng.