google cloud

Làm thế nào lựa chọn Database phù hợp trên Google Cloud Platform

cơ sở dữ liệu
cơ sở dữ liệu

1. Giới thiệu

Việc chọn đúng cơ sở dữ liệu trên GCP phụ thuộc vào nhiều yếu tố bao gồm: workload và cấu trúc hạ tầng của bạn. Hôm nay, tôi sẽ cung cấp cho các bạn một cái nhìn tổng quan về những dịch vụ cơ sở dữ liệu nổi tiếng của Google Cloud, bao gồm cả những vấn đề chính trong việc đánh giá và lựa chọn dịch vụ.

2. Tổng quan Database trên GCP

Google Cloud Platform (GCP) được xây dựng để cung cấp một loạt các tài nguyên cho tính năng computing, các dịch vụ database là một trong số đó. Với khả năng xử lý dữ liệu mạnh mẽ, hiệu quả, linh hoạt và hiệu suất cao. GCP là giải pháp lưu trữ dữ liệu toàn cầu.

Khi chọn dịch vụ database của Google, chúng ta nên xem xét nhiều thứ như:  kiểu và kích thước của dữ liệu, độ trễ, thông lượng truy cập, khả năng mở rộng và IOPs,…

3. GCP cung cấp chủ yếu  ba loại mô hình kiến trúc cho Database

3.1. Single — Đơn giản nhất trong tất cả các mô hình, chúng ta có thể triển khai cơ sở dữ liệu bằng cách tạo mới Database trên Cloud và sau đó nâng dần tài nguyên từ Database đó khi workload của bạn tăng lên.

3.2. Hybrid — Các loại triển khai này rất hữu ích khi chúng ta có các ứng dụng vừa chạy song song trên Cloud và On-Premies và đồng bộ dữ liệu lẫn nhau.

Có 3 yếu tố cơ bản cần được xem xét khi triển khai một mô hình hybrid (với một số dữ liệu trên Google Cloud và một số trong on-premise) :

Master Database: Điều đầu tiên và quan trọng nhất, bạn cần quyết định master database lưu trên Cloud hay trên on-premises. Khi chọn Cloud, các tài nguyên GCP  sẽ đảm nhiệm vai trò như là một trung tâm dữ liệu, nó điều phối chính cho Database. Hoặc khi chúng ta chọn đặt Master Database ở On-Premises thì dữ liệu  đồng bộ lên Cloud dùng cho mục đích truy cập từ xa hoặc dùng cho việc backup.

Managed Services: Trên Cloud có hỗ trợ nhiều dịch vụ  giúp tăng tính năng  scalability ( mở rộng), redundancy (  dư thừa ), và automated backup ( tự động sao lưu ). Tuy nhiên, chúng ta  có thể chọn sử dụng dịch vụ do bên thứ ba quản lý.

Portability ( Tính linh động ): Các loại Database cũng ảnh hưởng đến tính linh hoạt của dữ liệu. Do đó, để đảm bảo tính ổn định của dữ liệu, bạn cần xem xét và chọn loại Database nào hỗ trợ đa nền tảng, ví dụ như Mysql. 

3.3. Multicloud —  Với cách triển khai này, có thể giúp bạn phân phối dữ liệu Database một cách hiệu quả hơn, vì nó cho phép bạn kết hợp việc triển khai Database trên nền tảng Google Cloud với các hãng Cloud khác. Điều này giúp để giảm thiểu việc phụ thuộc vào một nhà cung cấp Cloud duy nhất, đồng thời khi có sự cố từ nhà cung cấp Cloud, thì dịch vụ của chúng ta vẫn hoạt động được. 

Có 2 yếu tố chính cần được xem xét khi triển khai mô hình này:

Integration: Đảm bảo rằng các hệ thống phía Client có thể dễ dàng tích hợp với Database. 

Migration: Hiện nay có khá nhiều nhà cung cấp dịch vụ Cloud, đôi khi chúng ta sẽ muốn di chuyển dữ liệu giữa các Cloud, với sự hỗ trợ từ các công cụ sao chép database hoặc export/import. Đối với GCP, nó có hỗ trợ dịch vụ Google Storage Transfer để làm điều này. 

4. Các loại Datadabase trên Google Cloud Platform

GCP hỗ trợ một vài loại Database cho bạn lựa chọn:

4.1 Cloud SQL

Cloud SQL là một loại dịch vụ cho những Database có cấu trúc, được quản lý hoàn toàn và tương thích với MySQL, PostgreSQL và SQL Server. Nó bao gồm các tính năng như sao lưu tự động, sao chép dữ liệu, phục hồi thảm họa để đảm bảo tính sẵn có và linh hoạt cao.

4.1.1 Khi nào sử dụng Cloud SQL

Cloud SQL khi muốn xử lý cho một lượng dữ liệu lớn, dành cho mục đích phân tích, mở rộng và triển khai lên hệ thống Micro Service, Cloud SQL một lựa chọn tốt dành cho Database cấu trúc, nhưng lưu ý dữ liệu không được vượt quá 10TB dữ liệu.

4.2 Cloud Spanner

Cloud Spanner là một cơ sở dữ liệu quan hệ với tính nhất quán giao dịch trên quy mô lớn.

Google Cloud Spanner được quản lý hoàn toàn và sử dụng tính năng phân tách tự động (được gọi là phân tách ) và nhân rộng để mở rộng quy mô lên đến hàng triệu nút và hàng nghìn tỷ hàng cơ sở dữ liệu và vẫn có tính khả dụng cao . Spanner được sử dụng tại Google cho các ứng dụng quan trọng của sứ mệnh quy mô lớn đòi hỏi tính nhất quán cao, bao gồm cả Google AdWords.

Nếu Cloud SQL không thể đáp ứng được khả năng mở rộng theo chiều ngang (horizontal scalability) thì bạn hãy nền xem xét tới việc sử dụng Cloud Spanner. Cloud Spanner là 1 service được xây dụng để lưu trữ cơ sở dữ liệu có quan hệ (relational database). Cloud Spanner có thể cung cấp dữ liệu lưu trữ lên tới petabytes, schemas, SQL và có thể tự động mở rộng.

Cloud Spanner thường được sử dụng để xây dựng các ứng dụng tài chính (financial applications) và và các ứng dụng kiểm kê theo truyền thống với cơ sở dữ liệu có quan hệ (relational database)

Cloud Spanner có thể lưu trữ dữ liệu ở nhiều nơi và có khả năng đồng bộ, kiến trúc này làm tăng tính sẵn sàng (high availability) và global placement

cơ sở dữ liệu

Việc tạo ra các bản sao của dữ liệu (replication of data) được đồng bộ hóa giữa các Zone thông qua mạng cáp quang toàn cầu của google

Cloud Spaner cũng cung cấp nhiều chức năng khác như: tables, primary and secondary keys, database splits, transactions and timestamp bounds.

4.2.1 Khi nào sử dụng Cloud Spanner

Cloud Spanner nên là lựa chọn của bạn nếu bạn lên kế hoạch sử dụng số lượng lớn dữ liệu (hơn 10TB) và cần tính nhất quán giao dịch. Nó cũng là một lựa chọn hoàn hảo nếu bạn muốn sử dụng sharding cho thông lượng và khả năng truy cập cao hơn.

Google Cloud Spanner có thể được sử dụng để đáp ứng các yêu cầu sau cho ứng dụng của bạn:

  • OLTP (Xử lý Giao dịch Trực tuyến)
  • Quy mô toàn cầu
  • Mô hình dữ liệu quan hệ
  • ACID / Tính nhất quán mạnh hoặc bên ngoài
  • Độ trễ thấp
  • Được quản lý hoàn toàn và có tính khả dụng cao
  • Sao chép tự động

4.2.2 Các giao dịch tải trọng cao quan trọng

  • Giao dịch tài chính
  • Bảo hiểm
  • Viễn thông và thanh toán
  • Trung tâm cuộc gọi toàn cầu
  • Quản lý chuỗi cung ứng và sản xuất
  • Logistics và Vận tải
  • Thương mại điện tử (Tính khả dụng cao)

4.3 BigQuery

Với BigQuery, bạn có thể thực hiện phân tích dữ liệu thông qua dữ liệu SQL và dòng truy vấn. Vì BigQuery là một serverless data warehouse được quản lý đầy đủ, dịch vụ truyền dữ liệu tích hợp của nó giúp bạn di chuyển dữ liệu từ các tài nguyên on-premises, bao gồm cả Teradata.

Nó kết hợp các tính năng cho machine learning, business intelligence và geospatial analysis được cung cấp thông qua BigQuery ML, BI Engine, và GIS.

4.3.1 Khi nào sử dụng BigQuery

Sử dụng BigQuery  cho các trường hợp cần phân tích và tối ưu hóa quy trình, xử lý và phân tích dữ liệu lớn, hiện đại hóa kho dữ liệu ( data warehouse modernisation ), phân tích hành vi và dự đoán dựa trên machine learning.

4.4 Cloud Bigtable

Nó là một Database NoSQL, được quản lý đầy đủ được thiết kế cho khối lượng công việc vận hành và phân tích lớn. Cloud Bigtable có các tính năng đáp ứng tính sẵn cao và zero-downtime khi thay đổi cấu hình. Bạn có thể  tích hợp nó với nhiều công cụ, bao gồm công cụ Apache và dịch vụ đám mây Google.

Cloud Bigtable là dịch vụ Database NoSQL. Nó là một table có thể mở rộng tới hảng tỷ rows và hàng nghìn columns cho phép lưu trữ terabyte, petabyte dữ liệu. Một giá trị trong hàng được đánh index và giá trị này được gọi là row key.

4.4.1 Khi nào sử dụng Cloud Bigtable

Cloud Bigtable thích hợp để:

  • lưu một lượng dữ liệu rất lớn với độ trễ thất
  • Hỗ trợ khả năng đọc và ghi cao
  • Thích hợp trong IOT, phân tích người dùng và dữ liệu tài chính.

4.5 Cloud Firestore

Cloud Firestore là một Database linh hoạt và dễ mở rộng cho mobile, web và server được phát triển từ Firebase and Google Cloud Platform. Cũng giống như Firebase realtime database Cloud Firestore giúp cho việc đồng bộ dữ liệu giữa các ứng dụng phía client một các nhanh chóng (Realtime) và hộ trợ lưu offline data trong ứng dụng của bạn.

Cloud Firestore là một cloud-hosted, NoSQL database mà các ứng dụng phía client có thể trực tiếp truy cập thông qua native SDKs. Nó lưu dữ liệu theo mô hình dữ liệu NoSQL. Dữ liệu được lưu trữ trong các file tài liệu chứa các trường được ánh xạ vào các giá trị. Các file tài liệu này được lưu trữ trong các tập hợp chúng có thể sử dụng nó để tổ chức dữ liệu và truy vấn dữ liệu. Cloud Firestore hỗ trợ rất nhiều kiểu dữ liệu từ đơn giản như String, Integer hay những kiểu dữ liệu phức tạp như các nested object.

4.5.1 Các tính năng chính

  • Tính linh hoạt:
    Cloud Firestore hỗ trợ các cấu trúc dữ liệu linh hoạt, phân cấp dữ liệu. Lưu trữ dữ liệu của bạn trong các document , được tổ chức thành các collection. Các document có thể chứa các đối tượng phức tạp.
  • Truy vấn tượng trưng :
    Bạn có thể sử dụng các truy vấn để truy xuất các document riêng lẻ hoặc để truy xuất tất cả các document trong collection khớp với các tham số truy vấn của bạn. Các truy vấn của bạn có thể bao gồm nhiều bộ lọc, kết hợp giữa bộ lọc và sắp xếp.
  • Cập nhật thời gian thực:
    Cloud Firestore sử dụng đồng bộ hóa dữ liệu để cập nhật dữ liệu trên mọi thiết bị được kết nối. Nó cũng được thiết kế để thực hiện các truy vấn tìm nạp một lần .
  • Hỗ trợ offline:
    Cloud Firestore lưu trữ dữ liệu tại local, vì vậy ứng dụng có thể viết, đọc, nghe và truy vấn dữ liệu ngay cả khi thiết bị ngoại tuyến. Khi thiết bị trở lại trực tuyến, Cloud Firestore sẽ đồng bộ hóa mọi thay đổi cục bộ lên Cloud Firestore.
  • Khả năng mở rộng:
    Mang đến khả năng từ Google Cloud Platform thiết kế để sử dụng cơ sở dữ liệu khó khăn nhất từ các ứng dụng lớn nhất thế giới

4.5.2 Khi nào sử dụng  Cloud Firestore

Khi các ứng dụng cần đồng bộ dữ liệu trực tiếp và hỗ trợ ngoại tuyến.

4.6 Firebase Realtime Database

Firebase Realtime Database là một cơ sở dữ liệu NoSQL trên Cloud,  cho phép bạn lưu trữ và đồng bộ dữ liệu. Dữ liệu được lưu trữ dưới dạng JSON và được đồng bộ hóa theo thời gian thực cho mọi máy kết nối.

Khi bạn xây dựng các ứng dụng đa nền tảng với SDK iOS, Android và JavaScript, tất cả các client của bạn sẽ chia sẻ một phiên bản Realtime Database và tự động cập nhật với dữ liệu mới nhất. Do đó đối với các ứng dụng di động yêu cầu trạng thái đồng bộ hóa giữa các máy trong thời gian thực thì đây là một giải pháp hiệu quả và có độ trễ thấp.

4.7 Cloud Memorystore

Được thiết kế để đảm bảo an toàn, độ sẵn cao, và có tính mở rộng,Cloud Memorystore cho phép bạn tạo bộ nhớ đệm ứng dụng với độ trễ dưới millisecond để truy cập dữ liệu.

4.7.1 Khi nào sử dụng Cloud Memorystore

Cloud Memorystore được sử dụng trong các trường hợp migration ứng dụng, các ứng dụng machine learning, phân tích thời gian thực, lưu trữ dữ liệu cần truy xuất nhanh và độ trễ thấp.

5. Mô hình lựa chọn Database

Dưới đây là hình minh họa trong việc lựa chọn Database phù hợp:

mô hình lựa chọn database

        Nguồn:                  

congdonglinux.com

             Nhấn Subcribe để nhận thêm nhiều bài viết mới                              Like Facebook

                                       Nhấn Subcribe                                                           Like Facebook 

Tags

Add Comment

Click here to post a comment