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

Mô hình điện toán đám mây và ứng dụng trong lĩnh vực ngân hàng

96 1,3K 2

Đ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 96
Dung lượng 4,11 MB

Nội dung

Amazon.com đóng vai trò chính trong sự phát triển của điện toán đám mây bằng việc hiện đại hóa trung tâm dữ liệu của họ và thấy rằng kiến trúc đám mây mới đạt được những sự cải tiến hiệu

Trang 2

Chương 1 - TỔNG QUAN 2

1.1 Mô hình Điện toán đám mây 2

1.2 Phân tích, so sánh với các mô hình tính toán khác 5

1.3 Kiến trúc tổng thể 10

1.4 Các loại hình Điện toán đám mây 15

1.5 Các tác nhân tham gia Điện toán đám mây 16

1.6 Các Framework ứng dụng Web hỗ trợ điện toán đám mây 17

1.6.1 Nền tảng Python Django (Google App Engine) 17

1.6.2 Nền tảng dịch vụ Azure của Microsoft 18

1.6.3 Các dịch vụ Điện toán đám mây của IBM 19

1.6.4 Các dịch vụ Web của Amazon 20

1.6.5 Kiến trúc Điện toán đám mây mã nguồn mở Eucalyptus 21

1.7 Bảo mật trong Điện toán đám mây 244

Chương 2 - NỀN TẢNG DỊCH VỤ AZURE 26

2.1 Giới thiệu nền tảng dịch vụ Azure 26

2.2 Các thành phần chính của nền tảng dịch vụ Azure 27

2.2.1 Windows Azure 27

2.2.2 AppFabric 34

2.2.3 Dịch vụ SQL Azure 42

2.2.4 Dịch vụ Live 49

Chương 3 - XÂY DỰNG ỨNG DỤNG TRA SOÁT LIÊN NGÂN HÀNG DỰA TRÊN NỀN TẢNG AZURE 50

3.1 Tổng quan ứng dụng tra soát liên Ngân hàng 50

3.1.1 Sự cần thiết phải xây dựng ứng dụng tra soát liên Ngân hàng 50

Trang 3

3.2.1 Mô hình hệ thống tổng thể 577

3.2.2 Các Ca sử dụng chi tiết của hệ thống 577

3.2.3 Mô tả các Ca sử dụng chi tiết 611

3.3 Phát triển mã nguồn ứng dụng 722

3.4 Cài đặt lên dịch vụ Azure của Microsoft 733

3.5 Kết quả Demo 766

3.6 Nhận xét ưu nhược điểm 79

KẾT LUẬN 822

TÀI LIỆU THAM KHẢO 833

PHỤ LỤC 844

Trang 4

1 ACS Access Control Service – Dịch vụ điều khiển truy cập

2 ACQ Acquirer – Tổ chức phát hành thẻ

3 AWS Amazon Web Service – Dịch vụ Web của Amazon

4 ISS Issuer – Tổ chưc thanh toán thẻ

6 REST Representation State Transfer – Truyền trạng thái thể

hiện

7 SAML Security Assertion Markup Language – Ngôn ngữ

đánh dấu xác nhận bảo mật

8 SOAP Simple Object Access Protocol – Giao thức truy cập

đối tượng đơn giản

10 TCPHT Tổ chức phát hành thẻ (Acquirer)

11 TCTTT Tổ chức thanh toán thẻ (Issuer)

13 VPN Virtual Private Network – Mạng riêng ảo

14 WSDL Web Service Description Language – Ngôn ngữ mô tả

dịch vụ Web

Trang 5

Hình 1.2 Mô hình grid computing 6

Hình 1.3: Mô hình dịch vụ Web 9

Hình 1.4: Mô hình kiến trúc điện toán đám mây 11

Hình 1.5: Các thành phần của Điện toán đám mây 13

Hình 1.6: Cơ sở hạ tầng các tầng của điện toán đám mây 14

Hình 1.7: Cơ sở hạ tầng điện toán đám mây hỗ trợ để học viện có thể phân phối các giải pháp phần mềm như là các dịch vụ 20

Hình 1.10: Ngữ cảnh của đám mây Eucalyptus 22

ưu tr 28

Hình 2.2: Ứng dụng Windows Azure có thể bao gồm các thể hiện web rolevà worker role 30

Hình 2.3: Windows Azure cho phép lưu trữ dữ liệu trong các blob, table,và queue, sử dụng RESTful để truy cập 32

Hình 2.4: Mô hình định danh ACS 35

Hình 2.5: Ứng dụng dựa trên trình duyệt 38

Hình 2.6: Không gian tên miền trong ACS 39

Hình 2.7: Tệp cấu hình ACM 40

Hình 2.8: Tạo một tài nguyên Issuer sử dụng ACM.EXE 40

Hình 2.9: Tạo tài nguyên Token Policy 41

Hình 2.10: Tạo một Scope 42

Hình 2.11: Tạo một luật 42

Hình 2.12: SQL Azure cung 44

Hình 2.13: Cơ sở dữ liệu SQL Azure 45

Hình 2.14: một ứng dụng có thể sử dụng chỉ một cơ sở dữ liệu hay nhiều cơ sở dữ liệu 47 Hình 2.15: ―Huron‖ Data Sync sử dụng Microsoft Sync Framework để đồng bộ dữ liệu trong Cơ sở dữ liệu SQL Azure và các cơ sở dữ liệu trong nhà 48

Trang 6

Hình 3.3 Ca sử dụng chức năng Quản trị người dùng 59

Hình 3.4: Ca sử dụng chức năng Thêm Yêu cầu 60

Hình 3.5: Ca sử dụng chức năng Trả lời yêu cầu 61

Hình 3.6 Biểu đồ tuần tự hệ thống ca sử dụng thêm Yêu cầu lần 1 62

Hình 3.7: Biểu đồ tuần tự hệ thống ca sử dụng Thêm Yêu cầu lần 2 63

Hình 3.8: Biểu đồ lớp tuần tự thực thi ca sử dụng Thêm Yêu cầu lần 2 64

Hình 3.9: Biểu đồ tuần tự hệ thống ca sử dụng Duyệt Yêu cầu 65

Hình 3.10: Biểu đồ lớp thực thi ca sử dụng Duyệt Yêu cầu 66

Hình 3.11: Biểu đồ tuần tự hệ thống ca sử dụng Xem danh sách yêu cầu lần 1 677

Hình 3.12: Biểu đồ tuần tự hệ thống Xem danh sách Yêu cầu lần 2 687

Hình 3.13: Biều đồ tuần tự hệ thống ca sử dụng Trả lời Yêu cầu 698

Hình 3.14: Biều đồ lớp thực thi ca sử dụng Trả lời yêu cầu 69

Hình 3.15: Biểu đồ tuần tự hệ thống ca sử dụng Duyệt trả lời 700

Hình 3.16: Biểu đồ tuần tự hệ thống ca sử dụng Lập báo cáo 711

Hình 1.17: Biểu đồ lớp thực thi ca sử dụng Lập báo cáo 722

Hình 3.18: Tạo bản cài đặt trên dịch vụ Windows Azure 744

Hình 3.19: Tạo cơ sở dữ liệu trên dịch vụ SQL Azure 755

Hình 3.20: Giao diện trang chủ ứng dụng tra soát Online 766

Hình 3.21: Chức năng thêm yêu cầu lần 1 777

Hình 3.22: Chức năng duyệt yêu cầu 788

Hình 3.23: Duyệt các yêu cầu được trả lời 79

Trang 7

MỞ ĐẦU

Sự ra đời của phần mềm gắn liền với sự ra đời của máy tính Phần mềm hỗ trợ con người trong các công việc, làm tăng năng suất lao động và tạo đà thúc đẩy nhiều lĩnh vực khác cùng phát triển Ở giai đoạn ban đầu, mỗi người dùng sử dụng phần mềm như một

cá thể độc lập Tuy nhiên càng về sau khi nhu cầu thay đổi, đi đôi với sự phát triển của công nghệ, xu hướng này nhanh chóng bị thay đổi Con người có nhu cầu hợp tác trong công việc, chia sẻ tài nguyên dữ liệu để tăng hiệu quả công việc Công nghệ phát triển góp phần vào việc xây dựng những hệ thống cho phép con người thỏa mãn được nhu cầu này Bên cạnh đó, những yêu cầu nghiệp vụ càng phức tạp cùng với những hoạt động nghiệp vụ với hiệu xuất cao, dữ liệu lớn đòi hỏi những hệ thống lớn cả về phần mềm và phần cứng Để thỏa mãn nhu cầu tất yếu này, ban đầu người ta thường phải đầu tư những

hệ thống tốn kém Làm thế nào để giảm đi những chi phí không cần thiết mà vẫn thỏa mãn được nhu cầu sử dụng là bài toán luôn đặt ra Điện toán đám mây xuất hiện đã giải quyết được bài toán trên Với những gì mà Điện toán đám mây hứa hẹn sẽ mang lại, có thể nói rằng một cuộc cách mạng lớn trong lĩnh vực công nghệ thông tin đã ra đời Người dùng sẽ không cần phải đầu tư những hệ thống lớn để đáp ứng nhu cầu, không cần phải cài đặt trực tiếp những ứng dụng nặng nề trên máy, hay lưu trữ lượng dữ liệu khổng lồ với việc quản trị phức tạp Việc tính toán, lưu trữ, quản trị được đẩy hoàn toàn về phía nhà cung cấp

Nền tảng dịch vụ Azure của Microsoft ra đời với mục đích đáp ứng xu thế mới của Điện toán đám mây Với Azure, việc phát triển ứng dụng, lưu trữ nó cùng với dữ liệu, điểu khiển truy cập trở nên đơn giản và thân thiện với nhà phát triển và người dùng Nền tảng dịch vụ Azure đang tạo ra một sức sống mới và thúc đẩy Điện toán đám mây càng phát triển

Với mong muốn tìm hiểu và xây dựng ứng dụng theo mô hình Điện toán đám mây, trong luận văn này tôi đã nghiên cứu chọn nền tảng dịch vụ Azure để phát triển thử nghiệm ứng dụng tra soát liên Ngân hàng

Trang 8

Chương 1 - TỔNG QUAN

Nội dung chương này sẽ tìm hiểu về mô hình điện toán đám mây, cách phân loại điện toán đám mây, kiến trúc tổng thể của mô hình điện toán đám mây, đồng thời so sánh kiến trúc điện toán đám mây với một số kiến trúc khác Chương này cũng tìm hiểu các nền tảng hỗ trợ điện toán đám mây hiện có, trên cơ sở đó lựa chọn một nền tảng để nghiên cứu và phát triển ứng dụng thử nghiệm

1.1 Mô hình Điện toán đám mây

Ngày nay Điện toán đám mây đang trở thành chủ để được bàn luận sôi nổi Điện toán đám mây đã thu hút rất nhiều sự quan tâm từ phía các nhà nghiên cứu, những người phát triển và người sử dụng Trong phần này chúng ta sẽ đi sâu tìm hiều mô hình điện toán đám mây đang được ứng dụng hiện nay

Điện toán đám mây là sự phát triển dựa trên Internet và sử dụng kĩ thuật máy tính Đây là một kiểu tính toán trong đó các tài nguyên ảo và có thể mở rộng được cung cấp như một dịch vụ trên Internet Người dùng không cần hiểu sâu về kiến trúc kĩ thuật ―trong đám mây‖ cung cấp cho họ

Khái niệm Điện toán đám mây kết hợp chặt chẽ Kiến trúc như một dịch vụ (IaaS), Nền tảng như một dịch vụ (PaaS) và Phần mềm như một dịch vụ (SaaS) cũng như Web 2.0 và những kĩ thuật khác hướng tới những lĩnh vực cơ bản của sự tin tưởng dựa trên Internet để thỏa mãn những sự cần thiết tính toán của người dùng Các ví dụ bao gồm Saleforce.com và Google Apps cung cấp những ứng dụng thương mại online thông thường có thể tiếp cận từ một web browser, trong khi phần mềm và dữ liệu được để trên các server

Thành ngữ đám mây được sử dụng như một ẩn dụ cho Internet, để mô tả Internet trong những lược đồ mạng máy tính, và là một sự ảo hóa cho kiến trúc phức tạp mà nó che giấu

Trang 9

Hình 1.1: Mô hình chung điện toán đám mây [13]

Đám mây là một thuật ngữ mượn từ ngành điện thoại Trước những năm 90 các mạch vòng dữ liệu được nối cứng giữa các điểm Trong những năm 90 những công ty điện thoại đường dài bắt đầu cung cấp dịch vụ VPN cho truyền thông dữ liệu Các công ty điện thoại có thể cung cấp những dịch vụ dựa trên VPN với cùng băng thông đảm bảo như những mạch vòng cố định ở một giá thành thấp bởi vì chúng duy trì khả năng chuyển mạch để cân bằng việc sử dụng khi chúng thấy đã đủ, do đó sử dụng băng thông một cách hiệu quả hơn Kết quả là không thể xác định chính xác đường đi của dữ liệu Thành ngữ

―đám mây telecom‖ được sử dụng để mô tả kiểu mạng này Điện toán đám mây cũng tương tự như vậy Điện toán đám mây nhận dựa chủ yếu trên của những máy ảo được tạo

ra để đáp ứng những yêu cầu của người dùng [13]

Các thể hiện ảo được tạo ra theo yêu cầu, do đó không thể xác định có bao nhiêu máy ảo sẽ chạy ở một thời điểm Khi những máy ảo có thể được tạo ra trên bất cứ máy tính nào như yêu cầu ,chúng hình thành một mạng mây Một sự thể hiện thông thường trong biểu đồ mạng là một đường viền đám mây

Trang 10

Lịch sử khái niệm quay lại năm 1960 khi John McCarthy phát biểu rằng ―sự tính toán một ngày nào đó được tổ chức như một tiện ích công cộng‖ [13]; thực chất nó chia

sẻ những đặc tính với các công ty dịch vụ Thuật ngữ đám mây đã đến từ việc sử dụng thương mại đầu những năm 1990 để tham chiếu đến những mạng ATM lớn Đến thế kì

21, thuật ngữ ―điện toán đám mây‖ đã bắt đầu xuất hiện, hầu hết sự tập trung ở thời điểm này là vào Phần mềm như một dịch vụ (SaaS)

Vào năm 1999, Salesforce.com được thành lập bởi Marc Benioff, Parker Harris và các đồng nghiệp Họ áp dụng nhiều kĩ thuật của những web site khách hàng khác như Google và Yahoo đối với những ứng dụng thương mại Họ cũng cung cấp khái niệm

―Theo yêu cầu‖ và ―Phần mềm như một dịch vụ‖ (SaaS – Software as a Service) với việc kinh doanh của họ và những khách hàng thành công Chìa khóa cho SaaS là khả năng tự cấu hình của khách hàng hay với một sự trợ giúp nhỏ Những người dùng kinh doanh đã đón nhận một cách nồng nhiệt dịch vụ này

Amazon.com đóng vai trò chính trong sự phát triển của điện toán đám mây bằng việc hiện đại hóa trung tâm dữ liệu của họ và thấy rằng kiến trúc đám mây mới đạt được những sự cải tiến hiệu quả bên trong, cung cấp tiếp cận tới các hệ thống bằng cách của các dịch vụ web Amazon trong năm 2005 dựa trên một cơ sở tính toán tiện ích [13]

 Lợi ích của Điện toán đám mây

 Khi khách hàng không làm chủ kiến trúc, họ đơn giản chỉ tiếp cận hay thuê, và

do đó có thể tránh các chi phí mua sắm và sử dụng các tài nguyên như một dịch

 Tiếp cận ngay lập tức tới sự phân phối rộng lớn, dễ dàng mở rộng hay thu hẹp phạm vi sử dụng

 Những người dùng có thể kết thúc hợp đồng ở bất cứ thời điểm nào (do đó tránh rủi ro lãi suất và tình trạng không chắc chắn) và những dịch vụ thường được kèm theo bởi những thỏa thuận mức độ dịch vụ với hình phạt về kinh tế

Trang 11

 Sự độc lập thiết bị và vị trí: Cho phép người dùng tiếp cận hệ thống sử dụng một trình duyệt không quan tâm vị trí của nó hay thiết bị nào nó sử dụng Khi

hạ tầng ở vị trí khác (đặc biệt được cung cấp bởi bên thứ 3) và tiếp cận thông qua Internet người dùng có thể tiếp cận bất cứ khi nào

 Nhược điểm: Khả năng bảo mật và an toàn dữ liệu là một vấn đề nổi lên đối với Điện toán đám mây Lỗi lo về việc bị chiếm quyền điều khiển ứng dụng và việc xâm phạm dữ liệu riêng tư để trên ―đám mây‖ luôn là rào cản đối với Điện toán đám mây

1.2 Phân tích, so sánh với các mô hình tính toán khác

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

Tính toán lưới có nghĩa là tất cả hoặc một phần của một nhóm máy tính, máy chủ

và thiết bị lưu trữ trong mạng doanh nghiệp, được ―ảo hóa‖ (virtualize) thành một

cỗ máy tính lớn Vì tính toán lưới giải phóng những khả năng tính toán không được sử dụng vào một thời điểm bất kỳ, chúng có thể cho phép các doanh nghiệp tăng cường rất nhiều về tốc độ, sức mạnh xử lý thông tin và sự liên kết, thúc đẩy các quy trình tính toán mật độ cao Trong khi đó, chi phí vẫn sẽ được giữ ở mức thấp vì tính toán lưới có thể được xây dựng từ chính hạ tầng hiện có, góp phần đảm bảo sự huy động tối ưu các khả năng tính toán [1]

Trang 12

Hình 1.2 Mô hình grid computing[2]

Tính toán lưới cho phép ảo hóa các chức năng tính toán phân tán cũng như các nguồn xử lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn đồng nhất, cho phép người sử dụng và các ứng dụng truy cập thông suốt vào các tính năng điện toán rộng lớn Giống như người lướt web xem một nội dung thống nhất qua web, người sử dụng tính toán lưới cũng nhìn thấy một máy tính ảo cực lớn duy nhất

Giả dụ, khi một người có chiếc máy tính cá nhân tham gia đóng góp sức mạnh xử

lý trong một mạng lưới tính toán lưới muốn chạy một ứng dụng đòi hỏi thêm sức mạnh xử lý thì công việc đang được giải quyết trên chiếc máy đó sẽ được tự động tái phân b

, việc phân bổ tài nguyên được thực hiện bởi một đối tượng quản lý tài nguyên trung tâm và tất cả các nút (node) mạng hoạt động phối hợp với nhau như một nguồn đơn thống nhất Đối với tính toán lưới, mỗi nút có đối tượng quản lý tài nguyên riêng và các nguồn tài nguyên độc lập trong lưới có thể trải rộng khắp một hoặc nhiều tổ chức

Tóm lại, tính toán lưới (grid computing) đặt trọng tâm vào việc chuyển tải một khố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 và thực hiện tính toán 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, thực hiện đồng thời, được xem là một máy chủ ảo Đó là một dạng của điện toán phân tán trong đó

Trang 13

tồn tại một 'siêu máy tính ảo', là sự bao gồm một cụm mạng máy tính, những máy tính liên kết mềm, hoạt động phối hợp để thực thi những tác vụ cực lớn [13]

 Phần mềm hoạt động như dịch vụ (SaaS - Software as a Service): Phần mềm hoạt động hướng dịch vụ hoặc gọi tắt là Phần mềm dịch vụ, là mô hình triển khai phần

mềm, một nhánh của điện toán đám mây, theo đó các nhà cung cấp phần mềm như

là các dịch vụ theo yêu cầu cho khách hàng Theo định nghĩa của hãng nghiên cứu toàn cầu IDC là: "phần mềm hoạt động trên web, được quản lý bởi nhà cung cấp

và cho phép người sử dụng truy cập từ xa" [17]

SaaS có các đặc tính sau:

 Truy cập và quản lý phần mềm thương mại dựa trên mạng (network-based)

 Các họat động được quản lý từ trung tâm thay cho mỗi vị trí của khách hàng, cho phép khách hàng truy cập vào các ứng dụng từ xa thông qua Web

 Việc phân phối phần mềm ứng dụng được thực hiện theo mô hình một-nhiều (một đối tượng - nhiều người thuê) khác với mô hình một-một, kể cả kiến trúc, giá cả, bạn hàng, và sự quản lý

 Các nhà cung cấp SaaS

thì thường phải cộng thêm phí tổn cho băng thông và không gian lưu trư dữ liệu

-Ngoài những đặc tính nêu trên, SaaS còn có những lợi thế như sau:

 Cộng đồng người sử dụng luôn có được tính năng, chức năng mới nhất của các phần mềm dịch vụ được cung cấp Đây là một đặc điểm nổi bật và rất quan trọng bởi vì giúp cho những người phát triển có thể thu hút được sự quan tâm chú ý của người dùng

 Cộng đồng người sử dụng luôn được đáp ứng với những sản phẩm tốt nhất trong thực tế với giá thành hạ nhất có thể Giá thành của việc phân phối sản

phẩm luôn ở mức thấp do không có những chi phí khác khi phân phối

 Tính toán theo yêu cầu (Utility Computing): Tính toán theo yêu cầu đặt trọng tâm vào mô hình nghiệp vụ và dựa vào đó để cung cấp các dịch vụ tính toán Nói một cách đơn giản, dịch vụ tính toán là những gì mà người sử dụng nhận được các t

)

Trang 14

và thanh toán cho những phần đã dùng (―pay by the drink‖), giống như việc sử dụng dịch vụ điện dân dụng trong các gia đình

Tất cả các tài nguyên tính toán được cung cấp cho khách hàng đều dưới dạng các dịch vụ theo yêu cầu, bao gồm phần cứng (HaaS - Hardware as a Service), cơ sở

hạ tầng (IaaS - Infrastructure as a service) và nền (PaaS- Platform as a Service) tất

cả đều được cung cấp như là các dịch vụ

, nhiều tài nguyên, như máy chủ thường chỉ dùng 85% thời gian vận hành Tính toán theo yêu cầu cho phép các công ty chỉ phải trả cho những tài nguyên tính toán thực mà họ

sử dụng

Tính toán theo yêu cầu có những ưu điểm:

 Quản trị đơn giản: Giảm thiểu

được độ phức tạp trong quản trị hệ thống Tính toán theo yêu cầu cần những tà

n cũng như các tài nguyên xử lý nghiệp vụ, tránh được thời gian chết của các tài nguyên (downtime) và hiện tượng bị trễ do thay đổi các nhu cầu

 Chi phí thấp: Chi phí cho cơ sở hạ tầng tính toán đáp ứng các yêu cầu thay đổi nghiệp vụ là thấp, mặc dù yêu cầu nghiệp vụ tăng

 Dịch vụ web (Web service)

Dịch vụ web là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà người sử dụng

có thể làm việc thông qua các trình duyệt Bản thân các dịch vụ này sẽ chạy trên các máy phục vụ trên nền Internet chứ không phải là các máy tính cá nhân

có thể chuyển các chức nǎng từ máy tính cá nhân lên Internet

Trang 15

Hình 1.3: Mô hình dịch vụ Web[2]

Người sử dụng phần mềm yêu cầu các dịch vụ (Service Requester) thông qua SOAP (Simple Object Access Protocol) và chuyển các yêu cầu đó cho bộ phận môi giới Service Broker thông qua WSDL (Web Services Description Language) Người sử dụng có thể làm việc với các dịch vụ thông qua bất kỳ l

khái niệm mới và phản ánh một p

chặt chẽ, đòi hỏi các kết nối API phù hợp đang phổ biến hiện nay Dịch vụ web

sử dụng XML chứ không phải C hay C++ để gọi các quy trình

trên phần mềm trung gian, có sử dụng XML để tạo phần giao diện trên nền Java 2 (J2EE) hay các server ứng dụng NET

Trang 16

khách hàng

 Dịch vụ web là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở

dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà người sử dụng có thể làm việc thông qua các trình duyệt mạng

phải là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính

cá nhân lên Internet Người sử dụng có thể làm việc với các dịch vụ thông qua

bị cầm tay

việc chứ không phải là một phương tiện để xem và tải nội dung

 Điều này cũng sẽ đưa các ứng dụng

 Nền tảng hướng một dịch vụ (PaaS - Platform as a Service)

mây (cloud computing), mang đến môi trường phát triển như một dịch vụ: người sử dụng xây dựng ứng dụng chạy trên cơ s

Một số ví dụ điển hình về PaaS là Force.com của Salesforce.com, Google App Engine, Yahoo Pipes [17]

Trang 17

kết nối với nhau thông qua các giao diện lập trình ứng dụng, thông thường là các Web service

Nó gần giống với triết lý Unix bao gồm nhiều chương trình làm một công việc cùng nhau và kết nối với nhau thông qua các giao diện chung Sự phức tạp được điều khiển và quả thống được đạt được có khả năng quản lý tốt hơn là hệ thống nguyên khối đống kín Kiến trúc đám mây mở rộng tới máy khách, nơi những trình duyệt và/hoặc ứng dụng phần mềm tiếp cận các ứng dụng đám mây

Kiến trúc lưu trữ đám mây không chặt chẽ, nơi mà các hoạt động siêu dữ liệu được tập trung cho phép các node dữ liệu mở rộng thành hàng trăm, mỗi cái phân phối dữ liệu độc lập tới các ứng dụng hoặc người dùng

 Mô hình kiến trúc tổng quát

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ác 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 đều đư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 mây [8]

Hình 1.4: Mô hình kiến trúc điện toán đám mây[8]

Tất cả các tài nguyên tính toán (phần cứng, phần mềm) được tổ chức thành catalog các dịch vụ (Services Catalog) Các dịch vụ này được cung cấp lên mạng Internet

Trang 18

ở các Server trong các đám mây thông qua các công cụ cung cấp dịch vụ (Provisioning Too

(Systems Management) và được theo dõi bởi hệ thống giám sát (Monitoring & Metering)

Theo kiến trúc của điện toán đám mây, có thể xử lý theo lô (batch processing) nhiều công việc theo truyền thống được tải xuống kết hợp với tính toán lưới

 Lưu trữ đám mây (Cloud storage): Mô hình lưu trữ dữ liệu trên mạng các máy

tính, trong đó dữ liệu được lưu trữ ở nhiều server ảo (multiple virtual servers)

 Được đưa lên (Hosted) bởi các bên thứ ba (third parties),

 Các hãng Hosting thao tác các Trung tâm CSDL lớn

 Các dịch vụ đám mây (Cloud services): Web services được cung cấp thông qua

điện toán đám mây (cloud computing)

 Các thành phần của điện toán đám mây: Điện toán đám mây là cách thức chuyển đổi các chương trình ứng dụng diện rộng theo kiến trúc và phân phối các dịch vụ Trong nhiều thập kỷ qua, các hãng CNTT đã tập nhiều công sức, thời gian và các tài nguyên để xây dựng cơ sở hạ tầng và cung cấp chúng để dành thế cạnh tranh Phần lớn các trường hợp theo cách tiếp cận đó dẫn đến kết quả:

Trang 19

Hình 1.5: Các thành phần của Điện toán đám mây [17]

 Infrastructure: Cơ sở hạ tầng của điện toán đám mây là phần cứng được cung cấp như là các dịch vụ, nghĩa là được chia sẻ và có thể sử dụng lại dễ dàng Các tài nguyên phần cứng được cung cấp theo các thời gian cụ thể theo yêu cầu Dịch vụ kiểu này giúp cho việc giảm chi phí bảo hành, chi phí sử dụng, …

 Storage: Lưu trữ đám mây (Cloud Storage) là khái niệm tách dữ liệu khỏi quá trình xử lý và chúng được lưu trữ ở những vị trí từ xa Lưu trữ đám mây cũng bao gồm cả các dịch vụ CSDL,ví dụ như BigTable của Google, SimpleDB của Amazon…

 A Cloud Platform: Là dịch vụ cho việc phát triển phần mềm ứng dụng và quản

lý các yêu cầu phần cứng, nhu cầu phần mềm Ví dụ nền dịch vụ như Khung ứng Web (Web application frameworks), Web hosting,

 Application: Ứng dụng đám mây là một đề xuất về kiến trúc phần mềm sẵn sàng phục vụ, nhằm loại bỏ sự cần thiết phải mua phần mềm, cài đặt, vận hành

và duy trì ứng dụng tại máy bàn/thiết bị (desktop/device) của người sử dụng Ứng dụng đám mây loại bỏ được các chi phí/tài nguyên để bảo trì và vận hành các chương trình ứng dụng

 Services: Dịch vụ đám mây là một phần độc lập của phần mềm có thể kết hợp với các dịch vụ khác để thực hiện tương tác, kết hợp giữa các máy tính với nhau để thực thi chương trình ứng theo yêu cầu trên mạng Ví dụ các dịch vụ hiện nay như: Simple Queue Service, Google maps, các dịch vụ thanh toán linh họat trên mạng của Amazon

Trang 20

 Client: Khách hàng đám mây là những yêu cầu phần mềm hoặc phần cứng để tận dụng các dịch vụ điện toán đám mây trên mạng Thiết bị cung cấp cho khách hàng có thể là trình duyệt Web, máy để bàn, máy xách tay hoặc điện thoại di động

 Các tầng kiến trúc của điện toán đám mây

Theo kiến trúc do Sun đề xuất, điện toán đám mây cung cấp các dịch vụ ở tất cả các tầng, từ phần cứng tới các phần mềm như trong hình sau

Hình 1.6: Cơ sở hạ tầng các tầng của điện toán đám mây [17]

Cơ sở hạ tầng của điện toán đám mây gồm 6 tầng kiến trúc:

1 (Physical Servers),

2 Server ảo,

3 Hệ điều hành,

4 Phần mềm trung gian (Middleware),

5 Các chương trình ứng dụng và trên cao nhất là các dịch vụ

6 Các dịch vụ có thể chia thành 3 lớp chính: Phần mềm dịch vụ (software as a

service), nền dịch vụ (platform as a service), và cơ sở hạ tầng dịch vụ (infrastructure as a service) Các lớp này có thể tập hợp thành các tầng kiến trúc khác nhau, có thể chồng chéo, gối nhau

 Software as a service (SaaS): Tương tự như dịch vụ theo yêu cầu Một phần

mềm có thể thực hiện trê

Trang 21

 Platform as a service (PaaS): Nền dịch vụ đóng gói tầng kiến trúc phần mềm

và cung cấp nó như là một dịch vụ để xây dựng những dịch vụ ở mức cao hơn

Ở đây, PaaS phụ thuộc vào người cung cấp dịch vụ và người sử dụng dịch vụ

Có thể thực hiện các dịch vụ PaaS phụ thuộc vào các phương diện dịch vụ của người sản xuất hoặc khách hàng:

o Một số người có thể tạo ra môi trường tích hợp hệ điều hành OS, các phần mềm trung gian, phần mềm ứng dụng, hoặc phát triển những môi trường cung cấp cho khách hàng phát triển phần mềm giống như một dịch vụ Ví

dụ NetBeans™ là môi trường phát triển tích hợp, Sun GlassFish™ Web stack hỗ trợ cho các ngôn ngữ lập trình giống như Perl hoặc Ruby

o Một số người có thể sử dụng PaaS như là các dịch vụ đón

Dịch vụ thương mại của PaaS phải kể đến như Google Apps Engine, cung cấp các ứng dụng trên nền cơ sở hạ tầng của Google‘s infrastructure

 Infrastructure as a service (IaaS): cung cấp các khả năng lưu trữ cơ sở và tính

toán như là

Dịch vụ thương mại của loại dịch vụ này có thể kể ra là Joyent, sản phẩm chính

là dòng các máy chủ ảo sẵn sàng dịch vụ theo yêu cầu

1.4 Các loại hình Điện toán đám mây

Các loại hình Điện toán đám mây bao gồm:

 Đám mây công (public cloud): Đám mây công mô tả điện toán đám mây theo cảm nhận truyền thống, trong đó các tài nguyên được cung cấp tự động, cơ sở tự phục

vụ trên Internet, thông qua các ứng dụng web, Web service, từ một nhà cung cấp thứ 3 khác, chia sẻ các tài nguyên và tính phí dựa trên tính toán tiện ích [13]

 Đám mây lai (hybrid cloud): Một môi trường Đám mây lai bao gồm nhiều nhà cung cấp bên trong/ bên ngoài ―sẽ trở thành điển hình cho hầu hết các doanh nghiệp‖

Trang 22

 Đám mây dùng riêng (private cloud): Đám mây dùng riêng là những từ mới mà những nhà sản xuất đang sử dụng để mô tả sự cung cấp mà cạnh tranh điện toán đám mây trên các mạng dành riêng Những sản phẩm này đòi hỏi ―phân phối một

số lợi ích của điện toán đám mây mà không có những lỗ hổng‖, lợi dụng tính bảo mật dữ liệu, quản lý phối hợp, và mối quan tâm có cơ sở Chúng đã được phê phán dựa trên cơ sở rằng những người dùng ―vấn phải mua, xây dựng, và quản lý chúng‖ và theo nghĩa thông thường không thể đạt được lợi ích từ vốn tư bản trả trước thấp và sự quản lý ít phải dùng tay, mà về bản chất ―mô hình kinh tế tạo cho điện toán đám mây như một khái niệm hấp dẫn‖ [13]

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

Các thành phần tham gia Điện toán đám mây gồm:

 Nhà cung cấp dịch vụ (provider): Một nhà cung cấp điện toán đám mây hay nhà cung cấp dịch vụ điện toán đám mây làm chủ và điều chỉnh hoạt động những hệ thống điện toán đám mây đang tồn tại để phân phối dịch vụ tới các hãng thứ ba Thông thường điều này đòi hỏi các tài nguyên quan trọng và tính chuyên gia trong xây dựng và quản lý các trung tâm dữ liệu trong thế hệ tiếp theo Rào cản đối với đầu vào khá cao với chi phí xây dựng yêu cầu và việc tính phí cộng với sự quản lý tạo một số phức tạp Tuy nhiên, hiệu năng hoạt động quan trọng và lợi thế tính sẵn sàng có thể được nhận ra, thậm chí bởi những tổ chức nhỏ Amazon.com là nhà cung cấp đầu tiên như thế, hiện đại hóa các trung tâm dữ liệu, giống như hầu hết các mạng máy tính, đang sử dụng chỉ khoảng 10% khả năng chứa đựng ở một thời điểm bất kì Điều này cho phép những nhóm nhỏ có nhiều thay đổi thêm những đặc trưng mới nhanh hơn và dễ dàng hơn, và họ tiếp tục mở rộng thêm ra như các dịch vụ web của Amazon năm 2002 dựa trên cơ sở tính toán tiện ích [13]

 Người dùng (User): Một người dùng là một người sử dụng của điện toán đám mây Tính riêng tư của những người dùng trong điện toán đám mây đã và đang trở thành mối quan tâm lớn Quyền của những người dùng cũng là một vấn đề đang được tập trung thông qua một nỗ lực cộng đồng để tạo một bản dự thảo về quyền

 Đại lý cung cấp (Vendor): 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 của sự phân phối, sự chấp nhận và sử dụng của điện toán đám mây Các dịch vụ có thể là cung cấp phần cứng (thiết bị lưu trữ, hạ tầng), phần mềm hay hệ điều hành

Trang 23

1.6 Các Framework ứng dụng Web hỗ trợ điện toán đám mây

1.6.1 Nền tảng Python Django ( Google App Engine )

Django là một framework ứng dụng web mã nguồn mở, viết bằng Python, gần giống với mẫu thiết kế Model – View – Controler Nó được phát triển ban đầu để quản lý một số site mang nội dung tin tức cho The World Company của Lawrence, Kansas, và được đưa ra công khai dưới đăng kí BSD (Berkeley Software Distribution) vào 7/2005 Tháng 6/2008 nó được tổ chức Django Software Foundation chấp nhân và duy trì trong tương lai

Mục đích chính của Django là tạo sự dễ dàng khi xây dựng những website hướng

dữ liệu phức tạp Django nhấn mạnh tính sử dụng lại và tính kết nối mở rộng của các thành phần, sự phát triển tốc độ nhanh, và nguyên lý của DRY (Don‘t Repeat Yourself) Python được sử dụng xuyên suốt, cho cả thiết lập, các tệp và các mô hình dữ liệu

Django cũng cung cấp một lựa chọn sử dụng giao diện CRUG quản trị được tạo tự động thông qua sự tự xác định kiểu tại thời gian chạy và cấu hình thông qua các mô hình

dữ liệu

 Các thành phần: Thành phần chính của Django bao gồm một bộ ánh xạ quan hệ đối tượng (object –relational mapper) đứng trung gian giữa các mô hình dữ liệu (xác định như các lớp Python) và một CSDL quan hệ; một bộ phân phối URL dựa trên mô tả thông thường (regular –expression); một hệ thống khung nhìn cho các yêu cầu xử lý và một hệ thống mẫu

Thành phần chính cũng bao gồm:

 Một web server riêng, nhỏ nhẹ cho sự phát triển và kiểm tra

 Một sự chuyển đổi và hệ thống hợp lệ có thể chuyển đổi giữa các giao diện HTML và những giá trị thích hợp chứa trong cơ sở dữ liệu

 Một framework luôn sẵn sàng có thể sử dụng bất kì trong số phương thức nào

 Hỗ trợ cho những lớp giữa có thể can thiệp vào ở mọi giai đoạn của xử lý yêu cầu và thực hiện các chức năng thông thường

 Một hệ thống phân phối bên trong cho phép các thành phần của một ứng dụng liên kết các sự kiện với nhau thông qua các tín hiệu được định nghĩa trước

Trang 24

 Một hệ thống quốc tế bao gồm sự chuyển đổi của các thành phần quản lý bởi Django thành nhiều ngôn ngữ khác nhau

 Một hệ thống có thể tạo và đọc những sự biểu diễn XML và/hoặc JSON của các thể hiện mô hình Django

 Một hệ thống cho việc mở rộng khả năng của engine mẫu

 Những ứng dụng kèm theo

Django bao gồm một số của những ứng dụng trong gói ―contrib‖ của nó, bao gồm:

 Một hệ thống xác thực mở rộng

 Giao diện quản trị động

 Các công cụ cho tạo RSS và Atom (định dạng dữ liệu cho web)

 Một hệ thống chú thích linh hoạt

 Một framework cho phép cài đặt Django để chạy nhiều website, với nội dung riêng biệt và các ứng dụng

 Công cụ cho gạo Google Sitemaps

 Công cụ cho ngăn chặn giả mạo yêu cầu

 Thư viện mẫu cho phép sự sử dụng của các ngôn ngữ đánh dấu nhỏ gọn như Textile và Markdown

 Một framework cho việc tạo các ứng dụng GIS

Phiên bản hiện tại mới nhất hiện tại của Django là 1.2

1.6.2 Nền tảng dịch vụ Azure của Microsoft

Nền tảng dịch vụ Azure của Microsoft là nền tảng Điện toán đám mây ―cung cấp một phạm vi rộng của dịch vụ có thể được sử dụng từ cả môi trường trong nhà hay Internet‖ Nó là bước đầu tiên quan trọng của Microsoft trong việc xây dựng Điện toán đám mây tiếp theo sự khởi động của dịch vụ trực tuyến Microsoft

Nền tảng dịch vụ Azure là một nền tảng ứng dụng trong đám mây cho phép các ứng dụng được cài đặt lên và chạy ở các trung tâm dữ liệu Microsoft Nó cung cấp một hệ điều hành đám mây gọi là Windows Azure phục vụ như cho các ứng dụng và cung cấp một tập các dịch vụ cho phép sự phát triển, sự quản lý và lưu trữ của những ứng dụng bên

Trang 25

ngoài Mọi dịch vụ Azure và các ứng dụng xây dựng sử dụng chúng chạy phía trên của Windows Azure

Môi trường điều khiển của Windows Azure gọi là Fabric Controller – là tổ hợp những hệ thống riêng biệt vào một mạng tự động quản lý tài nguyên, điều chỉnh tải, sao chép vị trí địa lý và vòng đời phần mềm mà không đòi hỏi các ứng dụng cài đặt ở đó đáp ứng những yêu cầu Thêm vào đó, nó cũng cung cấp những dịch vụ khác mà hầu hết những ứng dụng yêu cầu – như là các dịch vụ lưu trữ Windows Azure (Windows Azure Storage Service) cung cấp các ứng dụng với khả năng lưu trữ dữ liệu không có cấu trúc như là binary BLOGs, các hàng và các bảng không quan hệ Các ứng dụng có thể sử dụng những dịch vụ khác là một phần của nền tảng dịch vụ Azure

Nền tảng dịch vụ Azure cung cấp một API dựa trên REST, HTTP và XML cho phép một nhà phát triển tương tác với các dịch vụ cung cấp bởi Windows Azure Một thư viện lớp bị quản lý phía client cũng được cung cấp bao gồm các tính năng của việc tương tác với các dịch vụ Nó cũng tích hợp với Microsoft Visual Studio do đó nó có thể được

sử dụng như là IDE để phát triển và phân phát những ứng dụng được đặt trên Azure

Nền tảng bao gồm 5 dịch vụ: dịch vụ Live, dịch vụ SQL Azure, AppFabric, dịch

vụ SharePoint và dịch vụ Dynamics CRM–mà các nhà phát triển có thể sử dụng để xây dựng các ứng dụng sẽ chạy trên đám mây Một thư viện máy khách, dạng mã được quản

lý, và các công cụ đi kèm được cung cấp cho sự phát triển các ứng dụng đám mây trong Visual Studio Sự mở rộng và tính tin tưởng được điều khiển bởi Fabric Controller do đó những dịch vụ và môi trường không bị hỏng nếu một trong những server bị hỏng trong trung tâm dữ liệu Microsoft và cung cấp sự quản lý đối với ứng dụng web của người dùng giống các tài nguyên bộ nhớ và chia tải

Nền tảng dịch vụ Azure có thể chạy các ứng dụng Net Framework viết trong C#

và VB.Net, trong khi cung cấp framework ASP.Net và các phương pháp phát triển kết hợp để phân phối các ứng dụng trên platform đám mây Hai công cụ phát triển phần mềm được cung cấp sẵn cho sự tương tác với nền tảng dịch vụ Azure: Java SDK cho AppFabric và Ruby SDK cho AppFabric Chúng cho phép các nhà phát triển Java và Ruby tích hợp với AppFabric [2]

1.6.3 Các dịch vụ Điện toán đám mây của IBM

Sau đây là một mô hình kiến trúc ―Điện toán đám mây‖ của IBM sử dụng các máy

ảo VM

Trang 26

Hình 1.7: Cơ sở hạ tầng điện toán đám mây hỗ trợ để học viện có thể phân phối

các giải pháp phần mềm như là các dịch vụ [17]

Máy chủ của IBM sử dụng bộ xử lý Intel thế hệ mới và Phần mềm mới cho Trung tâm Dữ liệu (Data Center – System x) Với năng lực mở rộng có khả năng hỗ trợ tới 96 lõi xử lý và 1 TB bộ nhớ, các máy chủ System x của IBM sẽ bổ sung cho dòng sản phẩm VMware vSphere thế hệ mới IBM sắp phát hành Chúng là một lựa chọn tuyệt vời dành cho các khách hàng đang triển khai những môi trường điện toán đám mây [11]

1.6.4 Các dịch vụ Web của Amazon

Các dịch vụ Web của Amazon là tập hợp các dịch vụ cung cấp cho người lập trình

có khả năng truy cập tới hạ tầng kiến trúc tính toán kiểu sẵn sàng sử dụng (ready-to-use) của Amazon Các máy tính có nền tảng vững chắc đã được xây dựng và tinh chế qua nhiều năm của Amazon bây giờ là có thể cho phép bất cứ ai cũng có quyền cập tới qua Internet Amazon cung cấp một số dịch vụ Web, bao gồm các dịch vụ khối hợp nhất (building-block) cơ bản, cái mà đáp ứng được một số yêu cầu cốt lõi của hầu hết các hệ thống như: lưu trữ,

dụng phức tạp và gồm nhiều phần khác nhau bằng cách sử dụng các chức năng phân tầng với các dịch vụ đáng tin cậy, hiệu quả khối hợp nhất được cung cấp bởi Amazon Các dịch vụ Web mà tồn tại bên trong đám mây phía bên ngoài môi trường của người sử dụng

và có khả năng thực hiện là rất cao [10]

Kiến trúc ảo hóa dựa trên Open Source Linux & Xen

Trang 27

Các thành phần chính của hạ tầng cơ sở của các trang Web ứng dụng, cái mà cung cấp hầu hết các khối xây dựng cơ bản phổ biến cần thiết cho hầu hết các ứng dụng không tầm thường:

 Gửi thông điệp (Messaging)

điệp được cung cấp bởi Amazon Simple Queue Service (SQS) [11]

 Tập hợp dữ liệu (Datasets): Amazon SimpleDB (SDB) cung cấp khả năng mở rộng, lập chỉ mục, khả năng lưu trữ mà không cần bảo trì, cùng với việc thực hiện

xử lý và truy vấn với tập hợp dữ liệu [12]

1.6.5 Kiến trúc Điện toán đám mây mã nguồn mở Eucalyptus

EUCALYPTUS (Elastic Utility Computing Architecture Linking Your Programs

To Useful System) là một kiến trúc phần mềm mã nguồn mở dùng để cài đặt những đám mây bên trong cho kiến trúc mạng của doanh nghiệp và kiến trúc nhà cung cấp dịch vụ

Eucalyptus cho phép đám mây lai và đám mây riêng triển khai cho các trung tâm

dữ liệu doanh nghiệp và không đòi hỏi phần cứng đặc biệt hoặc phải cấu hình lại Dựa trên nền tảng Linux và các kĩ thuật dịch vụ web đã tồn tại trong các kiến trúc mạng hiện nay, Eucalyptus cho phép khách hàng nhanh chóng và dễ dàng tạo ra các đám mây điện toán ―bên trong‖ phù hợp với những ứng dụng của họ Ở cùng thời điểm, Eucalyptus cung cấp giao diện đám mây AWS cho phép các đám mây ―bên trong‖ tương tác với các đám mây dùng chung sử dụng một giao diện lập trình thông thường Cùng với việc quản

lý các máy ảo, kĩ thuật này cung cấp sự ảo hóa bảo mật của mạng cũng như kiến trúc lưu trữ trong môi trường đám mây Eucalyptus tương thích và đóng gói phân phối cho nhiều

hệ điều hành của Linux, như Ubuntu, RHEL, OpenSuse, Debian, Fedora, và CentOS và

sẽ làm việc với nhiều loại khác nữa

Trang 28

Hệ thống Eucalyptus xây dựng dựa trên lõi phần mềm Eucalyptus mã nguồn mở

Kĩ thuật Eucalyptus nhanh chóng trở thành chuẩn cho điện toán đám mây ―bên trong‖, làm cho việc phân phối đám mây trở nên hiệu quả và có khả năng mở rộng đảm bảo tính bảo mật và khả năng điều khiển của kiến trúc mạng của một tổ chức Enterprise Eucalyptus có thể cung cấp những khả năng như cấu hình người dùng cuối, cung cấp dịch

vụ tự phục vụ, hỗ trợ ứng dụng hợp pháp, quan sát đám mây, đo đạc, và hỗ trợ cho tự động mở rộng như một nền tảng đám mây sẵn có ở mức cao

Eucalyptus được thiết kế để dễ dàng cài đặt Nó được thiết kế là một tập các dịch

vụ web tương tác với nhau sử dụng các giao thức giao tiếp chuẩn Eucalyptus cài đặt các máy ảo và tài nguyên lưu trữ được liên kết với nhau API đám mây tương thích với AWS của Amazon (cung cấp cả hai giao thức SOAP và REST) mặc dù những giao tiếp khác cũng sẵn sàng được cấu hình [7]

Hình 1.10: Ngữ cảnh của đám mây Eucalyptus[7]

CLC (Cloud Controller): Là đầu vào trong đám mây cho các người quản trị, người phát

triển, người quản lý project, và người dùng cuối CLC có trách nhiệm yêu cầu những

Trang 29

người quản lý node về thông tin tài nguyên, tạo quyết định lịch trình (schedule) mức cao,

và cài đặt chúng bằng cách tạo các yêu cầu tới cluster controller CLC như trình bày ở hình trên, cũng là giao diện cho nền quảng quản trị CLC có trách nhiệm đưa ra và quản

lý các tài nguyên ảo bên dưới (server, network, và nơi lưu trữ-storage) thông qua một API chuẩn công nghiệp (Amazon EC2) và giao tiếp người dùng dựa trên Web

CC (Cluster Controller):Thực hiện trên một máy đầu cuối phân đoạn (cluster front-end

machine), hoặc bất kì máy nào có kết nối mạng tới hai node chạy NCs và tới máy chạy CLC CCs tập hợp thông tin về một tập VMs và lập kế hoạch thực thi trên các VM trên các NC xác định CC cũng quản lý mạng thể hiện ảo và tham gia làm tăng thêm các SLA được định hướng bởi CLC Mọi node phục vụ bởi một CC đơn phải ở trong cùng domain (enthernet)

NC (Node Controller): Được thực hiện trên mỗi node và được chỉ ra cho việc lưu trữ các

thể hiện máy ảo NC điều khiển sự thực hiện, sự giám sát, và sự kết thúc của các thể hiện

VM trên máy nơi nó chạy, nạp và loại bỏ những bản sao cục bộ của các ảnh thể hiện (nhân, hệ thống tệp gốc, và ảnh ramdisk), và truy vấn và điều khiển phần mềm hệ thống trên node của nó (lưu trữ OS và hypervisor để truy vấn và điều khiển các yêu cầu từ cluster controller NC cũng có trách nhiệm quản lý điểm cuối mạng ảo

SC (Storage controller): Cài đặt việc lưu trữ trên mạng dựa trên truy cập khối (ví dụ,

Amazon Elastic Block Storage) và có khả năng giao tiếp với nhiều hệ thống lưu trữ (NFS, iSCSI, ) Một lưu trữ khối linh hoạt là một thiết bị khối Linux có thể gắn kèm với một máy ảo nhưng có thể sử dụng cho lưu trữ từ xa Một EBS không thể chia sẻ cho nhiều thể hiện

Walrus (put/get storage): Cho phép người dùng lưu trữ dữ liệu lâu dài, được tổ chức như

là các bucket và object Nó cho phép người dùng tạo, xóa, liệt kê các bucket, lưu vào, lấy

ra, xóa các đối tượng và thiết lập chính sách điều khiển truy cập Walrus là giao diện tương thích với S3 của Amazon, và hỗ trợ giao tiếp quản trị ảnh AMI (Amazon Machine Image), do đó cung cấp một phương pháp cho việc lưu trữ và truy cập và ảnh máy ảo và

dữ liệu người dùng

Management Platform: Cung cấp một giao tiếp cho các dịch vụ và module Eucalyptus

Những đặc tính này có thể bao gồm sự quản lý VM, quản lý storage, quản lý người dùng/nhóm, tính toán, quan sát, sự định nghĩa SLA và sự tăng cường v.v…

Trang 30

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

Một thách thức liên quan đến việc duy trì những môi trường đáng tin cậy và tăng cường khả năng bảo mật cho các tài nguyên được chia sẻ Bên cạnh tính đơn giản và khả năng chia sẻ trong các trung tâm dữ liệu sẽn sàng cho điện toán đám mây, các dịch vụ an ninh bảo mật cũng cần phải được hợp nhất và ảo hóa

Để bảo mật được dữ liệu và các dịch vụ khi chúng đang được lưu trữ hay đang được sử dụng trên mạng, điều quan trọng là cần sử dụng những phương thức bảo mật sau:

 Bảo mật luồng thông tin đi vào trung tâm dữ liệu: Xác nhận và mã hóa các kết nối tới thiết bị đầu cuối trong mạng (dùng giao thức SSL) và tới các thiết bị của doanh nghiệp (giao thức IPSec) trong khi vẫn giảm được việc tăng thêm các thiết bị mới Cũng rất cần phải ngăn chặn những cuộc tấn công từ chối dịch vụ và triển khai tường lửa để bảo vệ đường biên và vành đai mạng

 Bảo mật luồng thông tin lưu chuyển bên trong trung tâm dữ liệu: Phân chia mạng thành các phân khúc với các mạng nội bộ ảo, các khu vực, các bộ định tuyến ảo, và mạng riêng ảo, đồng thời sử dụng tường lửa để bảo vệ các lưu lượng từ ứng dụng tới ứng dụng – giữa các máy chủ, giữa các máy ảo và giữa các điểm với nhau Ngoài ra cũng cần triển khai các chính sách bảo mật theo nhận biết ứng dụng và dựa trên định danh

 Thiết lập các chính sách trên toàn mạng từ một điểm trung tâm nhằm đảm bảo sự tuân thủ quy định bảo mật Các cơ chế báo cáo tập trung cho phép bao quát tổng thể theo thời gian thực và trước đó về các ứng dụng cũng như dữ liệu, đồng thời cho phép đội ngũ CNTT thực hiện các đánh giá về lỗ hổng bảo mật theo lịch trình định sẵn

Những lo ngại về an ninh, bảo mật thông tin luôn là trở ngại lớn Việc giao trách nhiệm về các ứng dụng và dữ liệu quan trọng cho đối tác thứ ba (nhà dịch vụ), có nghĩa là khách hàng phải biết chính xác các nhà cung cấp dịch vụ điện toán máy chủ ảo xử lý thế nào về các vấn đề an ninh và kiến trúc hệ thống Các nhà cung cấp dịch vụ sẽ minh bạch đến mức nào về những chi tiết trên vẫn còn là câu hỏi Các nhà cung cấp dịch vụ điện toán đám mây thường lưu trữ dữ liệu của nhiều khách hàng khác nhau lên cùng một phần cứng Trong khi đó, các công ty muốn dữ liệu của họ được tách biệt rõ ràng so với dữ liệu của đối thủ cạnh tranh Không có gì đáng ngạc nhiên khi những nỗi lo về bảo mật là yếu

tố hàng đầu cản trở doanh nghiệp sử dụng điện toán đám mây Theo một cuộc khảo sát

Trang 31

vừa qua của trang web CIO.com, 59% trong số 173 lãnh đạo doanh nghiệp và công nghệ thông tin (CNTT) cho rằng các nhà cung cấp dịch vụ chưa quan tâm đúng mức đến những điều lo ngại về bảo mật của họ

Bên cạnh đó là nỗi lo mất kiểm soát An ninh, độ trễ (latency), dịch vụ kèm theo và tính sẵn sàng là những vấn đề mà các nhà quản lý CNTT quan tâm khi đề cập đến điện toán đám mây Các nhà cung cấp còn có quá nhiều việc phải làm trong những năm tới để làm hài lòng các CIO Một số người suy nghĩ rằng họ không còn giữ dữ liệu của họ nữa,

nó đang ở một nơi mà họ không có ở đó, không quản lý trực tiếp Bằng cách tự lưu trữ ứng dụng của mình, một công ty có thể dễ dàng xác định những mục tiêu kiểm soát và duy trì tình trạng toàn vẹn của dữ liệu theo yêu cầu của luật lệ Tuy nhiên, nếu công ty này muốn đưa những ứng dụng tài chính của mình lên ―đám mây‖, họ chắc chắn sẽ phải đánh giá lại những mục tiêu kiểm soát để bảo đảm không vi phạm vấn đề tuân thủ luật lệ

Trang 32

2.1 Giới thiệu nền tảng dịch vụ Azure

Nền tảng dịch vụ Azure là một platform dịch vụ đám mây có khả năng mở rộng trên Internet ở các trung tâm dữ liệu Microsoft, cung cấp một hệ điều hành và một tập của các dịch vụ các nhà phát triển có thể sử dụng riêng biệt hay cùng với nhau Platform linh hoạt và có thể tương tác của Azure có thể được sử dụng để tạo nên một ứng dụng mới để chạy từ đám mây hay làm tăng khả năng của các ứng dụng đang tồn tại sử dụng dịch vụ đám mây Kiến trúc mở của nó cho phép các các nhà phát triển lựa chọn xây dựng các ứng dụng web, các ứng dụng chạy trên các thiết bị đã kết nối, các máy PC, các máy Server, hay các giải pháp lai cung cấp khả năng online tốt nhất và những tiền đề tốt nhất

Azure giảm thiểu chi phí kĩ thuật trả trước, và nó cho phép các nhà phát triển xây dựng ứng dụng một cách nhanh chóng và dễ dàng chạy trên đám mây bằng việc sử dụng những kĩ năng đang có của họ với môi trường phát triển Visual Studio và Microsoft NET Framework Thêm vào đó đối với các ngôn ngữ lập trình được hỗ trợ bởi NET, Azure sẽ

hỗ trợ nhiều ngôn ngữ lập trình và các môi trường phát triển trong tương lai gần Azure đơn giản hóa bảo trì và hoạt động của các ứng dụng bằng cách cung cấp tính toán và nơi lưu trữ theo yêu cầu để lưu trữ, mở rộng, và quản lý web và các ứng dụng kết nối Quản

lý cơ sở hạ tầng được tự động với một platform được thiết kế cho tính sẵn sàng cao và mở rộng tự động để phù hợp các sự cần thiết sử dụng với lựa chọn của một mô hình chi phí pay-as-you-go Azure cung cấp một môi trường mở, tương tác và dựa trên chuẩn với việc

hỗ trợ cho nhiều giao thức internet, bao gồm HTTP, REST, SOAP, và XML

Microsoft cũng cung cấp các ứng dụng đám mây sẵn sàng cho sự sử dụng bởi các khách hàng như Window LiveTM

, Microsoft DynamicsTM, và những dịch vụ Online Microsoft khác cho kinh doanh như Microsoft Exchange Online và SharePoint®Online Nền tảng dịch vụ Azure trợ giúp các các nhà phát triển cung cấp cho những người dùng riêng của họ bằng cách cung cấp các thành phần cơ bản như tính toán, lưu trữ, và xây

Trang 33

dựng các dịch vụ có sẵn nhằm trợ giúp trong việc xây dựng các ứng dụng trong đám mây [1]

2.2 Các thành phần chính của nền tảng dịch vụ Azure

2.2.1 Windows Azure

Window® Azure là một hệ điều hành các dịch vụ đám mây phục vụ như môi trường phát triển, dịch vụ, lưu trữ và quản lý dịch vụ cho Azure Service Platform Window Azure cung cấp cho các các nhà phát triển với khả năng lưu trữ và tính toán theo yêu cầu để lưu trữ, mở rộng và quản lý Internet hay các ứng dụng đám mây Window Azure hỗ trợ sự triển khai thí nghiệm phát triển thống nhất thông qua sự tích hợp của nó với Visual Studio Trong phiên bản chạy miễn phí, NET quản lý các ứng dụng xây dựng

sử dụng Visual Studio sẽ được hỗ trợ Window Azure là một nền tảng mở sẽ hỗ trợ cả các ngôn ngữ và môi trường của Microsoft và không phải của Microsoft Window Azure mong muốn chào đón các công cụ của các bên thứ 3 và các ngôn ngữ như là Eclipse, Ruby, PHP, và Python

:

Trang 35

.)

[2]

 Ứng dụng trên Windows Azure

Trên Windows Azure, một ứng dụng thông thường có nhiều thể hiện, mỗi cái chạy trên một bản sao của mã ứng dụng Mỗi một thể hiện chạy trên máy ảo của riêng

nó Những máy ảo này chạy hệ điều hành Windows Server 2008 64 bit, và chúng cung cấp một mặt nạ (hypervisor) được thiết kế đặc biệt cho việc sử dụng trên đám mây

Một nhà phát triển không cung cấp ảnh VM của riêng họ cho Windows Azure để chạy, hay không cần lo lắng về việc duy trì một bản sao hệ điều hành Windows

Trang 36

Thay vào đó, phiên bản miễn phí cho phép nhà phát triển tạo ứng dụng sử dụng thể hiện Web role và/ hoặc Worker role Hình 5 chỉ ra làm hai thể hiện trên

Hình 2.2: Ứng dụng Windows Azure có thể bao gồm các thể hiện web role

và worker role, trong đó mỗi thể hiện chạy trên máy ảo của riêng nó [6]

Như tên mô tả của nó, mỗi thể hiện web role chấp nhận các yêu cầu HTTP (hay HTTPS) đầu vào thông qua IIS (Internet Information Service) 7 Một Web Role có thể được cài đặt sử dụng ASP.NET, WCF hay một kĩ thuật khác mà làm việc với IIS Như hình trên đã chỉ ra, Windows Azure cung cấp cơ chế cân bằng tải trọng

để phân bổ các yêu cầu tới các thể hiện web role mà là các thành phần của cùng ứng dụng

Một thể hiện worker role, ngược lại, không thể nhận yêu cầu trực tiếp từ bên ngoài – nó không được phép có bất kì đầu vào kết nối trên mạng nào, và IIS không chạy trong VM của nó Thay vào đó, nó nhận đầu vào thông qua một hàng đợi trong nơi lưu trữ Windows Azure Các thông điệp trong hàng đợi có thể đến từ thể hiện web role, một ứng dụng trong nhà hay một cái khác Bất kể thông điệp đến từ đâu, một thể hiện worker role có thể gửi đầu ra tới hàng đợi khác hay ra bên ngoài – các kết nối đầu ra tới mạng bên ngoài được cho phép Và không giống thể hiện web role, được tạo ra để điều khiển các yêu cầu HTTP đầu vào, một thể hiện worker role là một công việc theo lô Thích hợp với số đông, một worker role có thể được cài đặt

sử dụng bất kì kĩ thuật Windows nào với một phương thức main()

Trang 37

Kể cả chạy thể hiện web role hay worker role, mỗi VM chứa một tác nhân Windows Azure (Windows Azure agent) cho phép ứng dụng tương tác với Windows Azure fabric, như hình trên chỉ ra Agent đưa ra một API cho phép thể hiện ghi vào một log được duy trì bởi Windows Azure, gửi các cảnh báo tới chủ ứng dụng thông qua Windows Azure fabric, và nhiều công việc khác nữa

Phiên bản Windows Azure đầu tiên duy trì một quan hệ một - một giữa VM và một nhân bộ xử lý – và do đó hiệu năng của mỗi ứng dụng có thể được đảm bảo Mỗi thể hiện web role và Worker role có nhân xử lý của riêng nó Để tăng hiệu năng của ứng dụng, chủ sở hữu ứng dụng có thể tăng số lượng thể hiện chạy trong file cấu hình của ứng dụng Windows Azure fabric sẽ khởi tạo VM mới, đăng ký

nó với các bộ xử lý, và bắt đầu chạy thêm các thể hiện của ứng dụng Fabric cũng phát hiện khi nào một Web role hoặc Worker role bị lỗi, và khởi tạo một cái mới

Cả các Web Role và Worker Role được cài đặt sử dụng kĩ thuật chuẩn Windows Tuy nhiên việc chuyển đổi từ ứng dụng đã tồn tại sang Windows Azure vẫn đòi chút tay đổi Trong Windows Azure, truy cập nơi lưu trữ của Windows Azure sử dụng các dịch vụ dữ liệu ADO.NET không có trong các ứng dụng trên máy cục bộ trước đây (một ứng dụng Windows Azure có thể sử dụng ADO.NET chuẩn để truy cập nơi lưu trữ quan hệ cung cấp bởi Cơ sở dữ liệu SQL Azure, do đó tạo điều kiện dễ dàng để chuyển một ứng dụng đã tồn tại lên nền tảng đám mây.) Hơn nữa, các thể hiện worker role dựa trên những hàng đợi trong Windows Azure storage cho đầu vào của chúng Đây một sự ảo hóa không có sẵn trong các môi trường Windows trong nhà Tuy nhiên, nhìn chung một ứng dụng chạy trên Windows Azure sẽ trông giống như nó chạy trên bất kì hệ thống Windows server 2008 nào Đối với các nhà phát triển, xây dựng một ứng dụng Windows Azure trong phiên bản miễn phí giống như xây dựng một ứng dụng Windows truyền thống Microsoft cung cấp các mẫu project trong Visual Studio 2008 cho việc tạo các Windows Azure web role, worker role, và sự tổ hợp của chúng Các nhà phát triển được tự

do sử dụng các ngôn ngữ lập trình Windows (mặc dù công bằng mà nói Microsoft tập trung chính vào ngôn ngữ C#) Hơn nữa, bộ phát triển phần mềm Windows Azure bao gồm một phiên bản của môi trường Windows Azure chạy trên máy của nhà phát triển được biết như Windows Azure Development Fabric, nó bao gồm Windows Azure storage, một tác nhân Windows Azure, và mọi thứ khác liên quan đến việc chạy ứng dụng trên đám mây Một nhà phát triển có thể tạo và gỡ lỗi ứng dụng của họ sử dụng sự mô phỏng trên máy cục bộ, sau đó phân phối ứng dụng tới Windows Azure trong đám mây khi đã sẵn sàng Tuy vậy, có một số thứ khác biệt

Trang 38

khi đưa lên đám mây Ví dụ, không thể ghép một bộ gỡ lỗi lên ứng dụng dựa trên đám mây, và do đó việc gỡ lỗi ứng dụng trên đám mây dựa trên việc viết vào log được duy trì bởi Windows Azure thông qua tác nhân Windows Azure

 Lưu trữ dữ liệu: Các ứng dụng làm việc với dữ liệu theo nhiều cách khác nhau Thỉnh thoảng, chúng chỉ yêu cầu các blob, trong khi lúc khác lại cần những cấu trúc phức tạp hơn để lưu trữ dữ liệu Và trong một số trường hợp, cần một cách để trao đổi dữ liệu giữa những phần khác nhau của một ứng dụng Windows Azure storage tập trung vào những yêu cầu như đã nêu trên, như được chỉ ra ở hình 2.3

Hình 2.3: Windows Azure cho phép lưu trữ dữ liệu trong các blob, table,

và queue, sử dụng RESTful để truy cập[6]

Cách đơn giản nhất để lưu trữ dữ liệu trong Windows Azure storage là sử dụng blob[6] Như hình trên chỉ ra, có một sự phân cấp đơn giản: một tài khoản lưu trữ (storage account) có thể có một hay nhiều container, mỗi một container lại chứa một hay nhiều các blob Blob có thể lớn lên tới tận 50 gigabytes, và để làm cho việc vận chuyển những blob lớn dễ dàng hiệu quả, mỗi một blob có thể được phân chia thành những khối nhỏ Nếu một lỗi xảy ra, sự vận chuyển lại được khôi phục

Trang 39

với những khối gần nhất chứ không phải với toàn bọ blob Các blob có thể có siêu

dữ liệu đi kèm, như là thông tin về nơi lưu trữ ảnh JPEG hay ai là tác giả file MP3 Blob là một kiểu dữ liệu, nhưng chúng không có cấu trúc Để cho phép ứng dụng làm việc với dữ liệu theo cách hiệu quả hơn, Windows Azure storage cung cấp các bảng [10] Chúng không phải là các bảng quan hệ Thực chất, mặc dù chúng được gọi là các bảng, dữ liệu chúng lưu trữ thực chất được đặt trong một tập các thực thể với các thuộc tính Một bảng không có lược đồ định nghĩa Thay vào đó, các thuộc tính có thể có nhiều kiểu khác nhau, như là int, string, bool, hay datatime Một ứng dụng có thể truy cập dữ liệu của bảng sử dụng dịch vụ dữ liệu ADO.NET hay LINQ Một bảng đơn có thể là rất lớn, với hàng tỉ các thực thể và kích thức hàng terabyte dữ liệu, và Windows Azure storage có thể phân chia và đặt nó trên nhiều server nếu cần thiết để cải thể thiện hiệu năng

Các blob và bảng chủ yếu để lưu trữ dữ liệu Lựa chọn thứ 3 trong Windows Azure storage là hàng đợi (queue), có mục đích hoàn toàn khác Vai trò chính của hàng đợi là cung cấp một cách để các thể hiện Web role liên lạc với thể hiện Worker role Ví dụ, một người dùng có thể gửi một yêu cầu tới thực hiện một số công việc liên quan tới tính toán thông qua trang web cài đặt bởi một Windows Azure Web role Thể hiện Web role nhận được yêu cầu này có thể viết một message vào một hàng đợi mô tả công việc được làm Một thể hiện Worker role mà đang đợi hàng đợi này có thể đọc message và thực hiện công việc Kết quả nào có thể được trả lại thông qua một hàng đợi khác hay được điều khiển theo một cách khác

Không quan tâm đến việc nó được lưu trữ như thế nào – trong blob, table, hay hàng đợi – mọi dữ liệu trong Windows Azure storage được sao lưu làm 3 bản Sự sao lưu này cho phép chống chịu lỗi, do có thể bị mất một bản sao lưu Hệ thống đảm bảo sự thống nhất, do đó một ứng dụng mà đọc dữ liệu nó đã từng ghi vào sẽ lấy được những gì nó mong muốn

Windows Azure storage có thể được truy cập bằng một ứng dụng Windows Azure hay bằng một ứng dụng chạy ở một nơi nào đó Trong cả hai trường hợp, ba kiểu lưu trữ của Windows Azure sử dụng quy định của REST để xác định và đưa ra dữ liệu Mọi thứ được đặt tên sử dụng URIs và truy cập với thông qua HTTP chuẩn Một client NET có thể sử dụng ADO.NET Data Service và LINQ, nhưng truy cập Windows Azure storage từ một ứng dụng Java chỉ có thể sử dụng RESTful Ví dụ, một blob có thể được đọc với một HTTP GET dựa trên một URI như sau:

http://<StorageAccount>.blob.core.windows.net/<Container>/<BlobName>

Trang 40

<StorageAccount> là một định danh được gán khi một tài khoản lưu trữ được tạo

ra, và nó xác định một tập blob, table, hàng đợi duy nhất được tạo ra khi sử dụng tài khoản này <Container> và <BlobName> chỉ là tên của container và blob cần yêu cầu truy cập.Tương tự như vậy, một truy vấn trên một table được mô tả như một HTTP GET dựa trên một URI như sau:

http://<StorageAccount>.table.core.windows.net/<TableName>?$filter=<Query> , <TableName> xác định bảng được truy vấn, trongkhi <Query> chứa truy vấn được thực hiện đối với bảng này Thậm chí hàng đợi cũng được truy cập bởi

cả ứng dụng Windows Azure và ứng dụng bên ngoài bằng cách sử dụng một HTTP GET dựa trên định dạng URI như sau:

http://<StorageAccount>.queue.core.windows.net/<QueueName>

Windows Azure platform tính phí độc lập cho việc tính toán và lưu trữ tài nguyên Điều đó có nghĩa rằng một ứng dụng trong nhà có thể chỉ sử dụng Windows Azure storage, truy cập dữ liệu của nó theo cách RESTful mô tả ở trên Và bởi vì dữ liệu

đó có thể được truy cập trực tiếp từ ứng dụng không phải Windows Azure, nó có thể vấn hoạt động thậm chí khi ứng dụng Windows Azure sử dụng nó không chạy

2.2.2 AppFabric

2.2.2.1 Dịch vụ điều khiển truy cập

 Tổng quan

 Yêu cầu định danh người dùng

Hai câu hỏi mà hầu hết các ứng dụng phải trả lời liên quan đến sự định danh: ai

là người dùng, và họ được phép làm gì? Sự cần thiết đối với sự xác thực và sự

ủy quyền là điểm chung đối với nhiều kiểu khác nhau của các ứng dụng, từ các ứng dụng web service và ứng dụng dựa trên trình duyệt, tới các ứng dụng desktop truyền thống và các ứng dụng màn hình dòng lệnh Nhưng mặc dù có những yêu cầu như vậy, nhiều ứng dụng vẫn đưa ra các giải pháp truyền thống [4]

Không ngạc nhiên ngày nay khi thấy một công ty có hàng chục hay hàng trăm ứng dụng và dịch vụ, nhiều trong số chúng có những sự định danh người dùng riêng rẽ, và hầu hết mỗi một trong số chúng được gắn chặt với một phương pháp đặc trưng của việc xác thực Các nhà phát triển cảm thấy nhàm chán đối

Ngày đăng: 08/07/2015, 19:46

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w