1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ GOOGLE APP ENGINE

22 1,9K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 609,76 KB

Nội dung

Trong điện toán đám mây, Các nguồn thông tin và tính toán khổng lồ sẽ nằm tại các máy chủ ảo đám mây đượctruy cập thông qua Internet để kết nối với mọi người khi cần.Thông qua đám mây cá

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÀI TIỂU LUẬN MÔN HỌC TÍNH TOÁN LƯỚI

MÂY VÀ GOOGLE APP ENGINE

GVHD: PGS.TS Nguyễn Phi KhứHVTH: Nguyễn Thị Thanh Thảo – MHV: CH1101137

Tp Hồ Chí Minh, ngày 27 tháng 07 năm 2013

MỤC LỤC

Trang 2

LỜI NÓI ĐẦUĐiện toán đám mây ra đời và đang là xu hướng mới của ngày nay Trong điện toán đám mây, Các nguồn thông tin và tính toán khổng lồ sẽ nằm tại các máy chủ ảo (đám mây) đượctruy cập thông qua Internet để kết nối với mọi người khi cần.

Thông qua đám mây các doanh nghiệp không cần phải mua các phần mềm, duy trì các dịch vụ mà chỉ cần sử dụng các dịch vụ sẵn có trên Internet để phục vụ cho nhu cầu công việc của mình

Tìm hiểu về điện toán đám mây, cụ thể là công google App Engine là điểm trọng tâm của bài tiểu luận môn học này

Xin chân thành cảm ơn thầy Nguyễn Phi Khứ đã giúp em có nhìn mới và tổng quan về môn học

PHẦN 1: ĐIỆN TOÁN ĐÁM MÂYCloud Computing (CC) là mô hình diện toán cho phép truy cập qua mạng để lựa chọn và sử dụng tài nguyên tính toán theo nhu cầu một cách thuận tiện và nhanh chóng, đồng thời cho phép kết thúc sử dụng dịch vụ, giải phóng tài nguyên dễ dàng, giảm thiểu các giao tiếp với nhà cung cấp

1 Lịch sử hình thành

Trang 3

Thuật ngữ điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm dịch vụ (SaaS)

Điện toán lưới đặt trọng tâm vào việc di chuyển một tải công việc (workload) đến địa điểm của các tài nguyên điện toán cần thiết để sử dụng Một lưới là một nhóm máy chủ mà trên đó nhiệm vụ lớn được chia thành những tác vụ nhỏ để chạy song song, được xem là một máy chủ ảo

Với điện toán đám mây, các tài nguyên điện toán như máy chủ có thể được định hình động hoặc cắt nhỏ từ cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng thực hiện nhiệm vụ, hỗ trợ những môi trường không phải là điện toán lưới như Web ba lớp chạy các ứng dụng truyền thống hay ứng dụng Web 2.0

2 Khái niệm về điện toán đám mây

Điện toán đám mây (thuật ngữ tiếng Anh: Cloud computing, hay còn được 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, nơi được chia sẻ tài nguyên, phần mềm và thông tin cung cấp cho máy tình cũng như các thiết bị khác theo yêu cầu qua Internet

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

Trang 4

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ệ đó

3 Kiến trúc của điện toán đám mây

Điểm chủ yếu trong cơ sở hạ tầng của điện toán đám mây hiện nay bao gồm cácdịch vụ tin cậy được phân phối qua trung tâm dữ liệu và được xây dựng trên các máychủ với các công nghệ ảo hóa khác nhau Các dịch vụ này có thể truy cập được từ bất

kỳ nơi nào trên thế giới, và “đám mây” là điểm truy cập duy nhất đáp ứng tất cả nhucầu của người dùng máy tính Việc cung cấp đám mây phải phù hợp với yêu cầu củakhách hàng về chất lượng dịch vụ và mức độ chấp nhận của dịch vụ Các tiêu chuẩn

mở và phần mềm nguồn mở cũng quyết định đến sự lớn mạnh của điện toán đám mây.Kiến trúc đám mây gồm: nền tảng đám mây (Cloud Platform), các dịch vụ đám

mây (Cloud Service), cơ sở hạ tầng đám mây (Cloud Infrastructure), lưu trữ đám mây(Cloud Storage)

4 Đặ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:

Phân phối theo nhu cầu sử dụng

Quản lý được hiệu suất

Trang 5

Dịch vụ Cloud Computing ( CC ) 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 dưới máy chủ hiệu suất cao hay các máy chủ ảo, không gian lưu trữ dữ liệu, hay 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ụ CC phổ biến nhất có thể được phân thành 3 nhóm: Dịch vụ hạ tầng (IaaS), Dịch

vụ nền tảng (PaaS) và Dịch vụ phần mềm (SaaS)

a Dịch vụ hạ tầng IaaS (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 Khách hàng điển hình của dịch vụ IaaS có thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng của mình

Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon Khách hàng có thể đăng ký sử dụng một máy tính ảo trê dịch vụ của Amazon và lựa chọn một hệ thống điều hành (ví dụ, Windows hoặc Linux) và tự cài đặt ứng dụng của mình

b Dịch vụ nền tảng PaaS (Platform as a Service)

Dịch vụ 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 Cloud

dó 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

Trang 6

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).

Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép khách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triển dựa trên ngôn ngữ lập trình Java hoặc Python

c Dịch vụ phần mềm SaaS (Software as a Service)

Dịch vụ SaaS cung cấp các ưng dụng hoàn chỉnh như một dịch vụ theo yêu cầu cho nhiều khách hàng với chỉ một phiên bản cài đặt Khách hàng lựa chọn ứng dụng phù hợp với nhu cầu và sử dụng 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

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

6 Các mô hình của điện toán đám mây

a Đám mây “công cộng”

Mô hình đầu tiên được nói đến khi đề cập tới CC chính là mô hình Public Cloud Đây là mô hình mà hạ tầng CC được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàng thông qua hạ tầng mạng Internet hoặc các mạng công cộng diện rộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ Do vậy, hạ tầng CC được tiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và tách biệt về truy cập

Các dịch vụ Public Cloud hướng tới số lượng khách hàng lớn nên thường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi phí thấp cho khách hàng Do đó khách hàng của dịch vụ trên Public Cloud sẽ bao gồm tất cả các tầng lớp mà khách hàng cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các

Trang 7

ứng dụng công nghệ cap, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt.

b Đám mây “doanh nghiệp”

Đám mây doanh nghiệp (Private Cloud) là mô hình trong đó hạ tầng đám mây được sở hữu bởi một tổ chức và phục vụ cho người dùng của tôt chức đó Private Cloud

có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứ tư)

Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai thác ưu điểm được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của CC Với Private Cloud, các doanh nghiệp tối

ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường

d Đám mây “chung”

Đám mây chung (Community Cloud) là mô hình trong đó hạ tầng đám mây được chia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó Các tổ chức này do đặc thù không tiếp cận với các dịch vụ Public Cloud và chia sẻ chung một hạ tầng

CC để nâng cao hiệu quả đầu tư và sử dụng

e Đám mây “lai”

Mô hình đám mây lai (Hybrid Cloud) là mô hình bao gồm hai hoặc nhiều hơn các đám mây trên tích hợp với nhau Mô hình Hybrid Cloud cho phép chia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu

7 Bảo mật trong điện toán đám mây

Phân quyền truy cập người dùng: xác định xem ai có quyền truy cập đặc biệt tới

dữ liệu và quyền của người quản trị

Điều chỉnh sự chấp thuận: đảm bảo rằng một nhà bán lẻ trải qua những kiểm trabên ngoài và những chứng nhận bảo mật

Định vị dữ liệu: xem nhà cung cấp có cho phép điều khiển qua các vùng dữ liệu

Trang 8

Hỗ trợ điều tra: tìm hiểu xem nhà bán lẻ nào có khả năng điều tra phát hiện

những hoạt động không phù hợp hay những hoạt động bất hợp pháp

Tồn tại lâu dài: xem điều gì sẽ xảy ra với dữ liệu khi công ty không còn tồn tạinữa, dữ liệu sẽ được trả về như thế nào, với định dạng nào

8 Các tác nhân tham gia điện toán đám mây

Nhà cung cấp điện toán đám mây

Người dùng là người sử dụng hệ thống điện toán đám mây

Một số nhà sản xuất bán hay đưa sản phẩm và các dịch vụ làm tăng tính thuận lợi

và sự phân phối, sự chấp nhận và sử dụng điện toán đám mây

Các dịch vụ có thể cung cấp là thiết bị phần cứng hay các phần mềm

9 Ưu và nhược điểm của điện toán đám mây

Ưu điểm của điện toán đám mây

Tốc độ xử lý nhanh, chi phí đầu tư ban đầu được giảm đến mức thấp nhất

Chia sẻ tài nguyên và chi phí trên một địa bàn rộng lớn

Độ tin cậy cao, các vấn đề đều được các chuyên gia xử lý

Dữ liệu được tập trung ở một nơi

Nhược điểm của điện toán đám mây

Tính riêng tư, bảo mật

Tính sẵn sang, di động của dữ liệu

Trang 9

PHẦN 2: NỀN TẢNG G OOGLE APP E NGINE

I Google App Engine

1. Giới thiệu về Google App Engine

Google App Engine (App Engine hay GAE) là một nền tảng điện toán đám mây của Google để phát triển và lưu trữ ứng dụng web trong những trung tâm dữ liệu do Google quản lý (google-managed data centers) Bản beta được giới thiệu lần đầu tiên vào ngày 7 tháng 4 năm 2008

GAE là 1 dịch vụ lưu trữ các ứng dụng web Khi nói đến “ứng dụng web”, chúng

ta muốn nói tới các ứng dụng hay dịch vụ được truy cập trên các trang web, thường là thông qua trình duyệt web: những trang web mua bán, mạng xã hội, … App Engine cũng

có thể phục vụ các trang web truyền thống như xử lý văn bản hay hình ảnh nhưng được thiết kế dành cho thời gian thực

Thực ra, GAE đượ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

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 Những tài nguyên này được đo bằng gigabyte và không có bất kì lệ phí hàng tháng nào hay lệ phí để chúng ta thay đổi diện mạo trang web 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

Trang 10

2. Các nền tảng được hỗ trợ

Hiện App Engine hỗ trợ 2 loại ngôn ngữ chính là: Python và Java hiện tại thêm ngôn ngữ Go (đang ở mức thử nghiệm) 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

Trong GAE, tùy vào ứng dụng viết theo ngôn ngữ nào, nó sẽ được chạy trên môi trường Java hay Python tương ứng Song song đó, chúng ta sẽ được cung cấp sử dụng miễn phí các dịch vụ của google như URL Fetch, Mail, Memcache, … và được lưu trữ trên cơ sở dữ liệu hướng đối tượng datastore Khi yêu cầu được gửi lên từ phía người dùng, GAE sẽ chuyển yêu cầu đó cho ứng dụng của chúng ta Tùy theo việc xử lý chúng

mà ta cấu hình và sử dụng các ứng dụng thích hợp của GAE

3 Các thành phần và chức năng của GAE

a Môi trường thực thi

Google App Engine cung cấp hai môi trường thực thi tốt cho các ứng dụng Đó là Java và Python Môi trường chúng ta chọn sẽ phụ thuộc vào ngôn ngữ và những công nghệ liên quan khi chúng ta dùng để phát triển ứng dụng

Môi trường Java thực thi các ứng dụng được viết cho JVM6 Ứng dụng có thể được phát triển dựa vào ngôn ngữ lập trình Java hoặc hầu hết các ngôn ngữ có thể biên dịch và chạy trên JVM: ví dụ PHP (dùng Quercus), Ruby (dùng JRuby), Javascript (dùng Rhino), Scala, Groovy App Engine cũng hỗ trợ Google Web Tootkit (GWT)

Môi trường Python thực thi các ứng dụng được viết dựa vào ngôn ngữ lập trình Python bản 2.5 App Engine gọi các ứng dụng Python nhờ vào CGI (Common Gateway Interface) Ứng dụng có thể dùng hầu hết các thư viện của Python, các framework của Python như Django, web2py, Pylons

Trang 11

Cả hai môi trường Java và Python đều sử dụng chung một mô hình: một yêu cầu gửi đến ứng dụng trên server, ứng dụng được kích hoạt (nếu cần thiết), gọi bộ phận xử lý yêu cầu và trả về kết quả cho client Mỗi môi trường sử dụng bộ tiền xử lý (interpreter) cho riêng mình (JVM hay Python).

b Các file server tĩnh (static file servers)

Hầu hết các website có một số tài nguyên mà chúng chuyển đến các trình duyệt không thay đổi trong suốt hoạt động của site Ví dụ như các hình ảnh và các file Css hỗ trợ hiển thị của site, các đoạn mã Javascript chạy trên trình duyện, và các file HTML tĩnh

Vì việc gửi những file này không cần đến việc gọi code của ứng dụng, nói cách khác, việc này không cần thiết, làm giảm hiện quả làm việc của các server ứng dụng

Thay vì thế, App Engine cung cấp một tập các server tách biệt chuyên làm nhiệm

vụ trao đổi các file tĩnh này Những server nói trên tối ưu hóa cho kiến trúc bên trong và

hạ tầng mạng để xử lý các requests cho các tài nguyên tĩnh Đối với client, các file tĩnh này cũng giống như các tài nguyên khác được cung cấp bởi ứng dụng của chúng ta

Chúng ta upload các file tĩnh cùng với code ứng dụng Chúng ta có thể cấu hình vài cách hiển thị nhất định cho các file này, bao gồm các URL cho file tĩnh, loại nội dung,

và các hướng dẫn cho trình duyệt để lưu các bản sao file này trong bộ nhớ cache để giảm lưu lượng và tăng tốc cho trang web

c Kho dữ liệu (datastore)

Hầu hết mọi ứng dụng web đều cần một nơi để chứa thông tin khi xử lý yêu cầu từ phía client và lấy thông tin cho những lần yêu cầu sau này Việc sử dụng một server làm một trung tâm dữ liệu là một ý tưởng rất hay nhưng có vấn đề xảy ra khi quá nhiều kết nối được gửi tới server này

Hệ thống database của Google App Engine gần giống như một đối tượng database Thiết kế của App Engine datastore chỉ là trừu tượng để cho App Engine có thể xử lý việc phân tán và co giãn các ứng dụng

d Thực thể (entities) và Thuộc tính (properties)

Ngày đăng: 09/04/2015, 16:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w