Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
860,5 KB
Nội dung
MỤC LỤC TÌM HIỂU MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY 3 TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING PLATFORM 10 TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD COMPUTING 21 1/36 GIỚI THIỆU Ra đời [9] vào khoảng thời gian giữa năm 2007, thuật ngữ điện toán đám mây(cloud computing) bắt nguồn từ các ứng dụng điện toán lưới(grid computing) trong thập niên 1980, điện toán theo nhu cầu(utility computing) và phần mềm dịch vụ SaaS(Software as a Service). Với mô hình điện toán đám mây(cloud computing), các tài nguyên điện toán như máy chủ(server) có thể được chia nhỏ từ các cơ sở hạ tầng phần cứng và sẵn sàng để thực hiện một nhiệm vụ nào đó. Các hạ tầng cơ sở của điện toán đám mây hiện nay là sự kết hợp của những dịch vụ đáng tin cậy được phân phối thông qua các trung tâm dữ liệu(data center), được xây dựng trên những máy chủ với những cấp độ khác nhau của công nghệ ảo hóa. Những dịch vụ này có thể được truy cập từ bất kỳ đâu trên thế giới, trong đó đám mây là một điểm truy cập duy nhất cho tất cả các máy tính có nhu cầu của khách hàng. Các dịch vụ thương mại cần đáp ứng yêu cầu chất lượng dịch vụ từ phía khách hàng và thông thường đưa ra các mức thỏa thuận dịch vụ(Service level agreement), các tiêu chuẩn mở(Open standard) và phần mềm mã nguồn mở(open source software) cũng góp phần phát triển điện toán máy chủ ảo. Khác với trước đây, thông thường để triển khai một ứng dụng web, chúng ta phải đi mua hay thuê các máy chủ (server), để cài đặt các ứng dụng web. Đối với mô hình điện toán đám mây thì chúng ta chỉ cần đưa ra các yêu cầu của máy chủ(hệ điều hành, cơ sở dữ liệu, dung lượng ỗ cứng…), hệ thống sẽ tự động tìm kiếm các tài nguyên nhàn rỗi và đáp ứng các yêu cầu. Với cơ chế hoạt động như thế này thì các doanh nghiệp có thể tiết kiệm được chi phí, giảm độ phức tạp về cơ câu tổ chức và tăng khả năng sử dụng các tài nguyên… Thông qua kiến thức môn học “Tinh toán lưới” và một số nội dung tìm hiểu từ các bài báo, ebook, bài thu hoạch môn học bao gồm các phần chính như sau: Phần 1: Tìm hiểu mô hình điện toán đám mây Phần 2: Tìm hiểu Eucalyptus Cloud Computing Platform. Phần 3: Tìm hiểu kiến trúc của một ứng dụng Cloud Computing 2/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt TÌM HIỂU MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY 1.1 Một số định nghĩa về mô hình điện toán đám mây Định nghĩa 1 Điện toán đám mây(cloud computing) là sử dụng mạng internet để truy cập vào các phần mềm(software) của một cá nhân hay tổ chức nào đó. Các phần mềm này có thể được cài đặt trên các hạ tầng phần cứng(hardware) của một cá nhân hay một tổ chức, trong một trung tâm dữ liệu(data center) thuộc một cá nhân hay tổ chức[2]. Định nghĩa 2 Điện toán đám mây(cloud computing) là một mô hình tính toán phân tán(distributed computing) với qui mô lớn. Các mô hình này có một số đặc tính như: tính trừu tượng(abstracted), ảo hóa(virtualized), tự động mở rộng(dynamically scalable), tính toán(computing), lưu trữ(storage), các nền tảng(platforms) và các dịch vụ(services) cung cấp cho các yêu cầu của Khách hàng bên ngoài [3]. Định nghĩa 3: Một đám mây là một loại hệ thống song song(parallel) và phân tán(distributed). Nó bao gồm một tập hợp các máy tính kết nối và ảo hóa(virtualised ) với nhau. Các tài nguyên về hạ tầng được thống nhất và cung cấp dựa trên các cấp độ thỏa thuận về dịch vụ(service-level agreements), được thiết lập giữa nhà cung cấp dịch vụ và người tiêu dùng[4]. 3/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt 1.2 Kiến trúc của mô hình điện toán đám mây Mô hình kiến trúc 1.2.1 Các đặt trưng thiết yếu(Essential Characteristics) On-demand self-service Các khách hàng sử dụng dịch vụ có thể yêu cầu hệ thống cung cấp các dịch vụ xử lý, tính toán và lưu trữ một cách tự động, mà không cần phải thông qua các tương tác từ nhà cung cấp dịch vụ. Truy cập với mạng lưới rộng lớn(Broad network access) Với khả năng có sẵn và thường trực, các dịch vụ cung cấp có thể được truy cập thông qua một hệ thống mạng. Việc truy cập này có thể thông qua một số thiết bị từ phía khách hành như: điện thoại di động(mobile phone), laptop, PDAs, cách dụ vụ phần mềm truyền thống… Tích hợp tài nguyên(Resource pooling) Các loại tài nguyên của nhà cung cấp dịch vụ có thể được tích hợp từ nhiều nguồn khác nhau, nhằm mục đích phục vụ yêu cầu cho nhiều khách hàng, sử dụng mô hình nhiều người thuê. Với nhiều nguồn tài nguyên vật lý(physical) và ảo hóa(virtual) khác 4/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt nhau, các tài nguyên này có thể được phân chia và cung cấp một cách tự động theo nhu cầu của người sử dụng. Khả năng đàn hồi(Rapid elasticity) Nhằm đáp ứng nhanh các yêu cầu của người tiêu dùng, đặc biệt là khả năng sẵn sàng cung cấp, không giới hạn về số lượng, thời gian đăng ký…Yêu cầu hệ thống phải có khả năng tự động mở rộng, tự động triển khai và tự động đáp ứng… Các dịch vụ đo lường(Measured service) Hệ thống điện toán đám mây tự động kiểm soát và tối ưu các nguồn tài nguyên được sử dụng tương ứng với từng loại dịch vụ. Nguồn tài nguyên sử dụng có thể được theo dõi, kiểm soát và cung cấp các báo cáo minh bạch cho cả nhà cung cấp dịch vụ và người tiêu dùng. 1.2.2 Mô hình dịch vụ đám mây(Cloud Service Models) Cloud Software as a Service (SaaS) Cung cấp cho người tiêu dùng(consumer) khả năng sử dụng các ứng dụng, dịch vụ phần mềm và chúng được thực thi trên một cơ sở hạ tầng điện toán đám mây(cloud infrastructure). Các ứng dụng này có thể được truy cập từ một số thiết bị và thông qua một số giao diện(interface), ví dụ như: trình duyệt web(web browser), web-based email,… Người tiêu dùng(consumer) không quản lý hoặc kiểm soát các cơ sở hạ tầng điện toán đám mây(cloud infrastructure) như: hệ thống mạng(network), máy chủ(servers), hệ điều hành(operating systems), hệ thống lưu trữ(storage),… Cloud Platform as a Service (PaaS) Cung cấp cho người tiêu dùng(consumer) khả năng tạo mới, mua lại các ứng dụng được triển khai trên nền cơ sở hạ tầng điện toán đám mấy(cloud infrastructure), bằng cách sử dụng một số ngôn ngữ lập trình(programming languages) và các công cụ hỗ trợ(tools supported) từ các nhà cung cấp dịch vụ. Người tiêu dùng(consumer) không quản lý hay kiểm soát các cơ sở hạ tầng điện toán đám mây(cloud infrastructure) như: mạng(network), máy chủ(server), hệ điều 5/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt hành(operating systems), lưu trữ(storage). Tuy nhiên người tiêu dùng(consumer) có thể kiểm soát việc triển khai các ứng dụng và có thể cấu hình các môi trường lưu trữ. Cloud Infrastructure as a Service (IaaS) Cung cấp cho người tiêu dùng(consumer) khả năng lựa chọn một số vấn đề về như: lưu trữ(storage), mạng(network) và các tài nguyên máy tính khác. Người tiêu dùng có thể triển khai và sử dụng các phần mềm một cách tùy ý, trong đó bao gồm các hệ điều hành và ứng dụng. Người tiêu dùng không quản lý hoặc kiểm soát các cơ sở hạ tầng điện toán đám mây nhưng có thể kiểm soát các vấn đề liên quan đến hệ điều hành, khả năng lưu trữ, các ứng dụng triển khai và kiểm soát hạn chế đối với một số thành phần của hệ thống mạng như: bức tường lửa,… 1.2.3 Mô hình triển khai(Deployment Models) Điện toán đám mây công cộng(Public Cloud) Các cơ sở hạ tầng điện toán đám mây được cung cấp đến công chúng hoặc một nhóm các ngành công nghiệp và nó thuộc sở hữu của một tổ chức bán các dịch vụ điện toán đám mây. Điện toán đám mây riêng tư(Private Cloud) Các cơ sở hạ tầng điện toán đám mây chỉ hoạt động cho một tổ chức duy nhất. Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ ba. Điện toán đám mây cộng đồng(Community Cloud) Các cơ sở hạ tầng điện toán đám mây được chia sẻ bởi một số tổ chức và hỗ trợ cho một cộng đồng cụ thể với các vấn đề quan tâm, chia sẻ như: nhiệm vụ, yêu cầu bảo mật, chính sách, …Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ 3. Điện toán đám mây kết hợp(Hybrid Cloud) Các cơ sở hạ tầng điện toán đám mây là một thành phần của hai hay nhiều đám mây như: đám mây riêng tư, đám mây công cộng, đám mây cộng đồng. Hybrid Cloud vẫn là các thực thể phân biệt và liên kết với nhau dựa vào các công nghệ đã được 6/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt chuẩn hóa hoặc các công nghệ độc quyền nhằm cho phép các dữ liệu và các ứng dụng có tính chất di động. 1.3 Một số lợi ích của mô hình điện toán đám mây Lợi ích về kinh doanh(Business Benefits) o Hầu như(Almost zero) không đầu tư vào cơ sở hạ tầng trả trước. o Chi phí cho việc sử dụng cơ sở hạ tầng chỉ được tính trong thời gian(Just-in-time) sử dụng. o Sử dụng nguồn lực hiệu quả, khi nào cần thì mới đăng ký sử dụng, không đầu tư dư thừa. o Việc sử dụng các dịch vụ điều dựa trên chi phí. o Rút ngắn thời gian để tiếp cận nhanh với thị trường. Lợi ích về kỹ thuật công nghệ(Technical Benefits) o Tự động hóa(automation) về cơ sở hạ tầng(infrastructure). o Tự động mở rộng về quy mô(auto-scaling) o Nâng cao khả năng kiểm tra o Phục hồi và giải quyết nhanh các sự cố, tiếp tục hỗ trợ kinh doanh 1.4 Giới thiệu về mô hình Cloud Computing – Google Apps [8] Google App Engine là một nền tảng điện toán đám mây của Google, cho phép người dùng có thể phát triển và lưu trữ các ứng dụng web trong những trung tâm dữ liệu do Google quản lý. Google App Engine được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều người dùng một cách đồng thời. Khi một ứng dụng có thể phục vụ nhiều người dùng một cách đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn (scales). Những ứng dụng được viết cho App Engine sẽ được co giãn một cách tự động. Càng nhiều người sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài nguyên cho ứng dụng đó và quản lý chúng. Chính bản thân ứng dụng cũng không cần phải biết đến các tài nguyên mà nó đang sử dụng. 7/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt Không như những server cung cấp các dịch vụ lưu trữ thông thường hay các server có chức năng tự quản lý, với Google App Engine, chúng ta chỉ phải trả tiền cho những tài nguyên mà chúng ta sử dụng. Hóa đơn thanh toán những nguồn tài nguyên này bao gồm CPU chúng ta sử dụng, lưu trữ hàng tháng, băng thông vào ra (incoming and outgoing bandwidth), và một số các tài nguyên khác của dịch vụ App Engine. Hình 1: Mô hình điện toán đám mây App Engine của Google Kiến trúc của App Engine khác với những server lưu trữ ứng dụng web thông thường. App Engine sẽ hạn chế những truy cập từ những ứng dụng đến các tầng vật lý. App Engine được xây dựng để giải quyết mối quan tâm của người dùng về sự mở 8/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt rộng và độ tin cậy. Nó được xây dựng dựa trên khái niệm có thể mở rộng theo chiều ngang, nghĩa là thay vì ứng dụng của chúng ta sẽ được chạy trên một phần cứng mạnh mẽ, thì nó có thể chạy trên nhiều phần cứng yếu hơn. Các thành phần chính và chức năng của App Engine: Môi trường thực thi (runtime environment) Các file server tĩnh (static file servers) Kho dữ liệu (datastore) Thực thể (entities) và Thuộc tính (properties) Truy vấn (queries) và Chỉ mục (indexes) Phiên giao dịch (transaction) Các dịch vụ (services) Tài khoản Google (google accounts) Các công cụ lập trình (programming tools) Những hạn chế của App Engine: App Engine hỗ trợ HTTPS đối với domain con của .appspot.com nhưng vẫn chưa hỗ trợ đối với các domain khác. Hiện Google App Engine hỗ trợ 2 loại ngôn ngữ là: Python, Java Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển từ PHP sang Java. Phụ thuộc hoàn toàn vào các dịch vụ của Google. Microsoft, … sẽ chẳng bao giờ mua sản phẩm được xây dựng trên nền tảng của đối thủ. Các nhà đầu tư e ngại vì toàn bộ dữ liệu của mình đều nằm trong tay nhà cung cấp dịch vụ, dù cho đó là Google. 9/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING PLATFORM. 1.5 Giới thiệu Eucalyptus Cloud Computing [5] Eucalyptus là một kiến trúc phần mềm dựa trên hệ điều hành Linux, nó thực hiện một số khả năng như: mở rộng(scalable), tăng cường hiệu quả cho một số mô hình điện toán đám mây cá nhân(private cloud), đám mây hỗn hợp(hybrid cloud) với một hạng tầng CNTT(infrastructure) của các doanh nghiệp. Eucalyptus cung cấp cơ sở hạ tầng(Infrastructure) như một dịch vụ(IaaS). Điều này có nghĩa là người dùng(users) có thể được cung cấp một số tài nguyên cá nhân(phần cứng, thiết bị lưu trữ, hạ tầng mạng…) thông qua các giao diện(interface) của Eucalyptus trên một cơ sở cần thiết(an as-needed basis). Một đám mây Eucalyptus được triển khai trên một trung tâm dữ liệu của doanh nghiệp và được truy cập bởi người dùng trong một hệ thống mạng nội bộ của doanh nghiệp. Eucalyptus được thiết kế ở tầng thấp(ground) trong mô hình điện toán đám mây, nhằm dễ dàng cài đặt và ngăn chặn một số truy cập trái phép từ bên ngoài. Các phần mềm khung(framework) thì được module hóa. Eucalyptus cung cấp một lớp mạng ảo(virtual network) để phân biệt lưu lượng truy cập của nhiều người dùng khác nhau và cho phép hai hay nhiệu cụm(clusters) kết hợp với nhau để tạo thành một hệ thống mạng nội bộ(LAN). Eucalyptus cũng có khả năng kết nối vận hành được với mô hình dịch vụ điện toán đám mây công cộng S3 và EC2 của Amazon. Vì vậy Eucalyptus có thể cung cấp cho các doanh nghiệp mô hình dịch vụ điện toán đám mây hỗn hợp(hybrid cloud). Eucalyptus ban đầu được phát triển chủ yếu để hỗ trợ cho các tính toán hiệu năng cao(HPC), và được phát triển bởi nhóm nghiên cứu của giáo sư Wolski tại đại học California. Eucalyptus được thiết kế dựa trên các nguyên tắc đảm bảo khả năng tương thích với các trung tâm dữ liệu được cài đặt trên hệ điều hành Linux. Eucalyptus có thể được triển khai trên các hệ điều hành Linux được phân phối như: Ubuntu, CentOS, openSUSE, và Debia. Eucalyptus hiện nay đã được tích hợp sẵn vào các phiên bản của hệ điều hành Ubuntu và chúng được xem như thành phần cốt lõi của Ubuntu Enterprise Cloud. 10/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt [...]... ảo hóa(virtualization technologies) Trọng tâm của phần này là làm thế nào để chúng ta có thể viết được những ứng dụng, thực thi trên môi trường điện toán đám mây (cloud computing) 1.11 Tính toán lưới(Grid computing) Điện toán lưới là một kiến trúc ứng dụng dễ dàng nhất để chuyển sang mô hình điện toán đám mây (cloud computing) Một ứng dụng điện toán lưới là một phần mềm xử lý chuyên sâu, các tiến trình(process)... các số lượng phân bổ, số lượng các đơn vị sử dụng và số lượng đơn vị thời gian sử dụng của từng người dùng, từng nhóm về một loại tài nguyên tương ứng 20/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD COMPUTING 1.10 Giới thiệu [6] Trong phần này chúng ta sẽ thảo luận về phần mềm như một dịch vụ(Software as a Service) hay các vấn... vào việc tìm hiểu kiến trúc của mô hình điện toán đám mây Một trong những công nghệ đang được quan tâm, nghiên cứu và phát triển trong những năm gần đây Thông qua mô hình này chúng ta có thể đề xuất việc tìm hiểu và áp dụng các Platform Open Source về điện toán đám mây, để có thể áp dụng vào thực tế Hướng phát triển Tiếp tục tìm hiểu Platform Open Source Eucalyptus Cloud Computing, tìm hiểu cách... các ứng dụng web điều có chung một kiến trúc theo mô hình như sau: Hình 2: Mô hình kiến trúc của một Web Application Hệ thống cần có một ngôn ngữ để tạo ra các nội dung từ các mẫu(templates) và dữ liệu được hỗ trợ bởi một database 1.12.1 Trạng thái hệ thống và giao dịch (System State and Protecting Transactions) Việc xác định các vấn đề khi đưa các ứng dụng lên trên các đám mây là làm thế nào để các ứng. .. computing) , làm thế nào để xây dựng một ứng dụng web có khả năng mở rộng cao Mặc khác có những ứng dụng đã được xây dựng để chạy trên một máy chủ duy nhất thì vấn đề đưa các ứng dụng này lên các đám mây sẽ được giải quyết như thế nào Chúng ta không thể giải quyết hết các phức tạp của mỗi nền tảng(platform) được dùng để phát triển các ứng dụng web Tuy nhiên cho dùng các ứng dụng web được 22/36 Tính toán lưới,... computing) Mô hình điện toán đám mây (Cloud computing) có chi phí thấp và dễ dàng xây dựng một ứng dụng điện toán lưới Nếu như chúng ta có một khối dữ liệu lớn cần xử lý thì chúng ta chỉ cần đưa khối dữ liệu đó lên một máy chủ để xử lý Hình 1 minh họa quá trình xử lý của một ứng dụng điện toán lưới như sau: Máy chủ nhận dữ liệu yêu cầu xử lý Yêu cầu được đưa đến một hàng đợi chờ xử lý Các máy chủ... thể sử dụng các dữ liệu chia nhỏ trên nhiều máy chủ ứng dụng khác nhau Nói cách khác, mỗi máy chủ ứng dụng quản lý một tập hợp các dữ liệu, vì vậy sẽ không xảy ra trường hợp máy chủ ứng dụng này sẽ ghi đè dữ liệu lên máy chủ ứng dụng khác 1.12.6 What Belongs in a Machine Image Một hình ảnh máy(Machine Image) sẽ bao gồm tất cả các phần mềm cần thiết, phục vụ cho các hoạt động(runtime operation) của các... trình(process) có thể được chia nhỏ thành nhiều khối và được xử lý một cách độc lập Thông thường thì một máy tính sẽ tốn rất nhiều thời gian để xử lý tất cả khối dữ liệu, trong khi đó với mô hình Grid computing nhiều máy tính có thể sử dụng CPU rảnh rỗi để cùng nhau giải quyết các vấn đề một cách nhanh chóng Hình 1: Mô hình kiến trúc của một ứng dụng Grid computing 21/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn... đưa các ứng dụng lên trên các đám mây là làm thế nào để các ứng dụng quản lý được các trạng thái(state) của chúng Ví dụ chúng ta hãy xem một ứng đặt phòng khách sạn được mô tả như sau: Các dữ liệu đại diện về phòng của một khách sạn phản ánh trạng thái(Sate) của chúng trong cơ sở dữ liệu Vấn đề là làm thế nào để cho trạng thái của một ứng dụng có thể thay đổi giữa thời gian người dùng tạo các yêu cầu... toán đám mây (cloud computing) ra đời nhằm giải quyết vấn đề máy chủ, chúng ta không cần phải sở hữu các máy chủ khi không có dữ liệu để xử lý, chúng ta có thể mở rộng số lượng máy chủ khi khối lượng dữ liệu cần xử lý tăng lên 1.12 Thiết kế ứng dụng web(Web Application Design) Trong phần này chúng ta sẽ thảo luận làm thế nào để triển khai một ứng dụng trên môi trường điện toán đám mây (cloud computing) , . MỤC LỤC TÌM HIỂU MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY 3 TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING PLATFORM 10 TÌM HIỂU KIẾN TRÚC CỦA MỘT ỨNG DỤNG CLOUD COMPUTING 21 1/36 GIỚI THIỆU Ra. 2: Tìm hiểu Eucalyptus Cloud Computing Platform. Phần 3: Tìm hiểu kiến trúc của một ứng dụng Cloud Computing 2/36 Tính toán lưới, Giảng viên: PGS.TS Nguyễn Phi Khứ – Học viên: Nguyễn Sử Việt TÌM. Việt TÌM HIỂU VÀ ÁP DỤNG EUCALYPTUS CLOUD COMPUTING PLATFORM. 1.5 Giới thiệu Eucalyptus Cloud Computing [5] Eucalyptus là một kiến trúc phần mềm dựa trên hệ điều hành Linux, nó thực hiện một số