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

XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ VÀ CUNG CẤP DỊCH VỤ DATABASE AS A SERVICE

15 639 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 15
Dung lượng 213,78 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHĐẠI HỌC CÔNG NGHỆ THÔNG TIN ---o0o---Báo cáo chuyên đề ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ VÀ CUNG CẤP DỊCH VỤ DATABASE AS A S

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

-o0o -Báo cáo chuyên đề ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY

XÂY DỰNG CHƯƠNG TRÌNH

QUẢN LÝ VÀ CUNG CẤP DỊCH VỤ

DATABASE AS A SERVICE

Giảng viên hướng dẫn: PGS TS Nguyễn Phi Khứ

Học viên thực hiện: Hồ Mạnh Khương

MSHV: CH1301018

Trang 2

Mục lục

I Giới thiệu về điện toán đám mây 3

II Điện toán đám mây 4

III Giới thiệu về DBaaS 5

1 DBaas là gì? 5

2 Một số nhà cung cấp DBaaS phổ biến: 6

IV Chương trình thử nghiệm DBaaS Manager 7

1 Mô hình xây dựng: 7

2 Xây dựng cơ sở dữ liệu cho chương trình 8

3 Các module của chương trình 8

4 Sơ lược giao diện chương trình: 9

5 Triển khai thực nghiệm chương trình: 11

6 Nhận xét 12

V Kết luận 13

VI Tài liệu tham khảo 14

Trang 3

I Giới thiệu về điện toán đám mây

Điện toán đám mây là một thuật ngữ được nhắc tới khá nhiều trong giới công nghệ gần đây Thuật ngữ này liên quan tới rất nhiều các công nghệ mới đang phát triển và bản thân định nghĩa về điện toán đám mây cũng vẫn còn đang được những người làm công nghệ tinh chỉnh lại hàng ngày

Hiểu theo một cách đơn giản, điện toán đám mây là việc ảo hóa các tài nguyên tính toán và các ứng dụng Thay vì việc sử dụng một hoặc nhiều máy chủ thật thì nay chúng

ta sẽ sử dụng các tài nguyên được ảo hóa (virtualized) thông qua môi trường Internet Bản thân từ đám mây (cloud) là một từ ẩn dụ (metaphor) cho Internet.[1]

Như vậy, trước đây để có thể triển khai một ứng dụng (ví dụ một trang Web), bạn phải đi mua/thuê một hay nhiều máy chủ (server), sau đó đặt máy chủ tại các trung tâm

dữ liệu (datacenter) thì nay điện toán đám mây cho phép bạn giản lược quá trình mua/thuê Bạn chỉ cần nêu ra yêu cầu của mình, hệ thống sẽ tự động gom nhặt các tài nguyên rỗi (free) để đáp ứng yêu cầu của bạn Chính vì vậy, có thể kể đến một vài lợi ích

cơ bản của điện toán đám mây như sau:

- Sử dụng các tài nguyên tính toán động (Dynamic computing resources): Các tài nguyên được cấp phát cho doanh nghiệp đúng như những gì doanh nghiệp muốn một cách tức thời Thay vì việc doanh nghiệp phải tính toán xem có nên mở rộng hay không, phải đầu tư bao nhiêu máy chủ thì nay doanh nghiệp chỉ cần yêu cầu

và đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho bạn

- Giảm chi phí: Doanh nghiệp hoặc cá nhân sẽ có khả năng cắt giảm chi phí để mua bán, cài đặt và bảo trì tài nguyên Thay vì phải đi mua máy chủ, cài đặt máy chủ, bảo trì máy chủ thì nay chúng ta chẳng cần phải làm gì ngoài việc xác định chính xác tài nguyên mình cần và yêu cầu

Trang 4

- Giảm độ phức tạp trong cơ cấu của doanh nghiệp: Doanh nghiệp sản xuất hàng hóa mà lại phải có cả một chuyên gia IT để vận hành, bảo trì máy chủ thì quá tốn kém Nếu đơn giản hóa được quá trình này thì doanh nghiệp sẽ chỉ tập trung vào việc sản xuất hàng hóa chuyên môn của mình và giảm bớt được độ phức tạp trong

cơ cấu

- Tăng khả năng sử dụng tài nguyên tính toán: Một trong những câu hỏi đau đầu của việc đầu tư tài nguyên (ví dụ máy chủ) là bao lâu thì nó sẽ hết khấu hao, tôi đầu tư như thế có lãi hay không, có bị outdate về công nghệ hay không… Khi sử dụng tài nguyên trên đám mây thì bạn không còn phải quan tâm tới điều này nữa

- Kiến trúc hướng dịch vụ (SOA)

Tuy vậy, để có thể tận dụng tối đa điện toán đám mây thì điều quan trọng là doanh nghiệp

và cá nhân cần phải tìm một nhà cung cấp “đám mây” đủ tốt để đáp ứng được cho mình tất cả những điều trên Trong tương lai, điện toán đám mây sẽ rất hữu ích khi nó vươn cả tới việc sử dụng những tài nguyên dư thừa trong các máy tính cá nhân của chính bạn

II Điện toán đám mây

Điện toán đám mây cũng giống như các công nghệ mới, đều được giải thích với các thuật ngữ cụ thể và các chữ viết tắt Ba thuật ngữ quan trọng nhất là IaaS, PaaS và SaaS

Infrastructure as a Service (IaaS) cung cấp cho bạn khả năng sử dụng phần cứng máy

tính được ảo hóa và kết nối mạng

IaaS cung cấp nhiều nguồn tài nguyên như firewalls, load balancers, các địa chỉ IP, nhưng hệ điều hành và các ứng dụng sẽ do bạn cài đặt và cập nhật Điều này giúp bạn linh hoạt hơn trong việc sử dụng tài nguyên vào mục đích gì

Trang 5

IaaS được cung cấp rộng rãi bởi các nhà cung cấp Amazon, Memset, Google, Windows… Để dễ dàng quản lý các dịch vụ IaaS, người ta xây dựng các template mẫu để

có thể tạo ngay những máy ảo từ các template mẫu này với các cài đặt được tùy chỉnh trước, giảm thời gian triển khai và giúp cho việc chuyển đổi giữa các hệ thống ảo hóa khác nhau

Platform as a Service (PaaS) hỗ trợ người sử dụng cloud computer tốt hơn bằng việc

cung cấp sẵn các hệ điều hành, cơ sở dữ liệu, máy chủ web và môi trường thực thi lập trình Hơn nữa, nó cho phép bạn chỉ tập trung vào triển khai các ứng dụng cụ thể, cho phép các nhà cung cấp đám mây quản lý và đo đạc tài nguyên 1 cách tự động

Vậy PaaS có thể cho phép bạn tập trung hơn vào ứng dụng và dịch vụ đầu cuối hơn là phí thời gian cho việc cài đặt và cấu hình hệ điều hành Các nhà cung cấp IaaS cũng cung cấp PaaS, giúp bạn giảm tải lượng công việc và thời gian tìm kiếm

Software as a Service (SaaS) là sự lựa chọn phù hợp nhất khi bạn muốn tập trung vào

người dùng cuối mà không cần quan tâm đến việc triển khai, quản lý và cài đặt hệ điều hành và tài nguyên SaaS giúp cho bạn truy cập đến các phần mềm trên nền tảng đám mây mà không cần quản lý cơ sở hạ tầng và nền tảng nó đang chạy

Điều này có nghĩa là nó dễ dàng truy cập và có khả năng mở rộng Có rất nhiều ví dụ về SaaS gồm email, phần mềm văn phòng và các công cụ kiểm toán từ Google, Microsoft, Freshbooks…

Các dạng as a service khác: một số dịch vụ khác được cung ứng trên nền Cloud được

phát triển sau này như STaas (Storage as a service) hoặc DBaaS (Database as a service)

Ta sẽ tìm hiểu và triển khai một chương trình quản lý DBaaS đơn giản trong nội dung báo cáo này

Trang 6

III Giới thiệu về DBaaS

1 DBaas là gì?

Database-as-a-Service (DBaaS) là dịch vụ được quản lý bởi nhà cung cấp Cloud Nó

hỗ trợ các chức năng quản lý cơ sở dữ liệu Với dịch vụ DBaaS, người dùng không cần

có kiến thức chuyên sâu về cơ sở dữ liệu hoặc tốn chi phí bảo trì và vận hành các hệ thống quản trị cơ sở dữ liệu Các ứng dụng được triển khai bởi người dùng chỉ cần gọi và

sử dụng các tài nguyên cơ sở dữ liệu sẵn có từ DBaaS mà không cần người dùng quan tâm nhiều, trừ khâu cài đặt cơ sở dữ liệu gốc ban đầu Cơ sở dữ liệu sẽ được tự động bảo trì, nâng cấp, sao lưu và xử lý nếu có sự cố về phần cứng mà không cần người dùng phải bận tâm

Ngoài các yêu cầu sẵn có từ các ứng dụng đám mây, DBaaS còn phải đáp ứng thêm một số yêu cầu sau:[2]

- Khả năng chuyển nhanh đổi giữa các node của dịch vụ đám mây: khi một node đặt dịch vụ DBaaS bị quá tải về tài nguyên hoặc kết nối mạng, cơ sở dữ liệu của người dùng cần được chuyển đổi ngay sang các node khác có nhiều tài nguyên hơn Hoặc khi người dùng không có nhu cầu sử dụng nhiều tài nguyên sẽ được đưa sang node nhỏ hơn nhằm tiết kiệm chi phí

- Tính khả dụng cao: các hệ thống cung cấp DBaaS phải đáp ứng nhu cầu khách hàng mọi lúc mọi nơi Do được triển khai trên nền đám mây nên DBaaS phải đảm bảo không có thời gian chết, không bị giới hạn tài nguyên vật lý và hoạt động ổn định

- Tính mềm dẻo: cơ sở dữ liệu có thể được mở rộng hoặc thu nhỏ mà không có gián đoạn trong quá trình sử dụng

2 Một số nhà cung cấp DBaaS phổ biến:

Hiện nay có nhiều nhà cung cấp DBaaS với 2 mô hình cơ sở dữ liệu phổ biến là SQL

và No SQL.[2]

SQL Data Model gồm:

Trang 7

- Amazon Relational Database Service (MySQL)

- Microsoft SQL Azure (MS SQL)

- Heroku PostgreSQL as a Service (shared and dedicated database options)

- Clustrix Database as a Service

- EnterpriseDB Postgres Plus Cloud Database

No SQL Data Model gồm:

- Amazon DynamoDB

- Amazon SimpleDB

- Cloudant Data Layer (CouchDB)

- Cloudbase.io Cloud Database

- Database.com by SalesForce

- Google App Engine Datastore

- Instaclustr (Apache Cassandra)

- MongoDB Database as a Service (nhiều lựa chọn)

- Orchestrate

IV Chương trình thử nghiệm DBaaS Manager

Chúng ta tiến hành xây dựng chương trình quản lý và cung cấp dịch vụ DBaaS trên nền PHP và MySQL

1 Mô hình xây dựng:

Chương trình được xây dựng trên nền ngôn ngữ lập trình PHP, với cơ sở dữ liệu MySQL được triển khai trên nền Cloud.[3]

Trang 8

Mô hình hoạt động cơ bản của chương trình DBaaS Manager

MySQL

DBaaS Manager

Client

Cloud Infrastructure Client

Trang 9

2 Xây dựng cơ sở dữ liệu cho chương trình

Ta xây dựng cơ sở dữ liệu cho chương trình gồm các bảng sau:

Members Chứa các thông tin của người dùng, bao gồm username,

password, email, số lượng database sở hữu

Auth Chứa các thông tin phân quyền người dùng, bao gồm tên

phân quyền, số lượng database tối đa được phép tạo

Dblist Danh sách các database và thông tin của các database đó, bao

gồm user đã tạo, tên database, username sử dụng cho database, host/ip cho phép truy cập vào database

3 Các module của chương trình

Chương trình gồm các module chính sau:

Login Thực hiện đăng nhập vào hệ thống

Logout Đăng xuất khỏi hệ thống

Register Đăng ký tài khoản mới

Database Hiển thị danh sách database mà user đã tạo, cho phép xóa (có

xác nhận) trên danh sách này

Newdb Tạo mới database, cho phép lựa chọn các thông tin của

database như tên, username, mật khẩu, IP/Host cho phép truy cập

Editdb Chỉnh sửa một số thông tin của database như user, mật khẩu,

Host/IP cho phép truy cập

Profile Cho phép user tự chỉnh sửa một số thông tin cá nhân như

email, mật khẩu

About Giới thiệu về chương trình

Trang 10

4 Sơ lược giao diện chương trình:

Chương trình được thực hiện trên bộ framework đơn giản, đã bao gồm các chức năng như rewrite url, lọc injection, hỗ trợ truy vấn sql, hỗ trợ các thao tác trên file và tối ưu

bộ nhớ Giao diện được thực hiện responsive chạy tốt cả trên các thiết bị di động

- Trang đăng ký ngắn gọn chỉ gồm các thông tin: username, password và email Sau khi đăng ký người dùng có thể đăng nhập và tạo database để sử dụng ngay

Giao diện trang đăng ký

Trang 11

- Trang quản lý database: bao gồm danh sách các database, có khả năng xóa trực tiếp trên danh sách này Ngoài ra có tích hợp phpMyAdmin để người dùng thuận tiện trong quá trình quản lý và backup cơ sở dữ liệu

Giao diện trang quản lý database

- Trang thay đổi thông tin database: người dùng có thể thay đổi các thông tin của database như password truy cập database, IP/Host cho phép truy cập Mọi thay đổi có hiệu lực ngay lập tức và không gây gián đoạn quá trình sử dụng database

Trang 12

Trang thay đổi thông tin database

5 Triển khai thực nghiệm chương trình:

Chương trình được triển khai thực nghiệm và chạy thử tại địa chỉ http://dbaas.khmt.biz/

Chương trình được triển khai trên 2 server gồm:

- Server web: chứa source DBaaS Manager và phpMyAdmin

- Server MySQL: dựa trên nền cloud, chỉ chứa MySQL

Việc phân chia như trên đảm bảo tài nguyên cloud chỉ phục vụ MySQL, trong khi tài nguyên sử dụng chạy web nằm riêng trên server khác

Ưu điểm:

- Server chạy MySQL không cần cài đặt các dịch vụ web

- Tiết kiệm tài nguyên và đảm bảo an toàn về bảo mật cho cơ sở dữ liệu (tránh các lỗ hổng về web)

Trang 13

- Dễ dàng bảo trì và thay đổi Có thể linh động về nơi đặt website.

Nhược điểm:

- Khó triển khai nếu không nắm vững về cách thức cài đặt và cấu hình dịch vụ

- Kết nối cơ sở dữ liệu giữa server chứa web và cơ sở dữ liệu phụ thuộc vào

độ trễ giữa 2 server Tuy nhiên với cơ sở hạ tầng đặt gần nhau thì độ trễ giữa 2 server là chưa tới 10ms

6 Nhận xét

- Việc triển khai chương trình DBaaS Manager là khá đơn giản nếu đã có kiến thức cơ bản về cấu hình server Tổng thời gian cài đặt dịch vụ và triển khai chỉ khoảng 30 phút

- Chương trình hoạt động tốt trên cả môi trường server chạy Windows và Linux

- Cung cấp dịch vụ DBaaS nhanh chóng, đăng ký và sử dụng chưa tới 15 giây

- Đường truyền MySQL server 100mbps cho phép hoạt động cùng lúc từ 500 đến 1000 database với 10.000 concurrent connections

Các nhược điểm cần khắc phục:

- Chưa có giao diện quản lý cho Administrator

- Thiếu một số tính năng cần thiết (như khôi phục mật khẩu qua email, hỗ trợ IPv6)

- Chưa thực nghiệm đủ để kiểm tra tối đa công suất của cloud server

Trang 14

V Kết luận

Mục tiêu của DBaaS là cung cấp cho người dùng một môi trường triển khai cơ sở dữ liệu an toàn và nhanh chóng mà không cần quan tâm đến vấn đề cơ sở hạ tầng hay tài nguyên hệ thống.[3]

Mặc dù đã có nhiều nhà cung cấp DBaaS nhưng giá cả còn cao và chưa thân thiện với người dùng Hi vọng rằng DBaaS Manager có thể góp phần nào giúp đưa DBaaS đến với người dùng với chi phí rẻ hơn và đơn giản hơn, dễ dàng triển khai ở nhiều khu vực và datacenter nhằm xây dựng cơ sở dữ liệu với chất lượng kết nối cao nhất với các dịch vụ web

Trang 15

VI Tài liệu tham khảo

computing for IT and scientific research, 2009

[2] H Hacigumus, B Iyer, S Mehrotra, Providing database as a service, 2002

[3] C Curino, EPC Jones, RA Popa, N Malviya, E Wu, Relational cloud: A

database-as-a-service for the cloud, 2011

Ngày đăng: 20/05/2015, 06:02

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w