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

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

Đ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

ĐẠ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 Mục lục 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. - 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ì. 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. 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: - 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 MySQL DBaaS Manager Client Cloud Infrastructure Client 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] Mô hình hoạt động cơ bản của chương trình DBaaS Manager 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: Table Chức năng 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: Module Chức năng 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 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 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. [...]... lượng kết nối cao nhất với các dịch vụ web VI Tài liệu tham khảo [1] MD Dikaiakos, D Katsaros, P Mehra, Cloud computing: distributed internet computing for IT and scientific research, 2009 [2] [3] H Hacigumus, B Iyer, S Mehrotra, Providing database as a service, 2002 C Curino, EPC Jones, RA Popa, N Malviya, E Wu, Relational cloud: A database- as- a- service for the cloud, 2011 ...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... 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... đặ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... 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 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à... 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) 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 . 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. 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, . 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) -

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

Từ khóa liên quan

Mục lục

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

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

  • III. Giới thiệu về DBaaS

    • 1. DBaas là gì?

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

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

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

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

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

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

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

      • 6. Nhận xét

      • V. Kết luận

      • VI. Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan