MongoDB Atlas có tốt cho sản xuất không?

Trong bài viết trước, các khái niệm cơ bản về MongoDB và các thành phần của nó như cơ sở dữ liệu, bộ sưu tập và tài liệu đã được giới thiệu. Ngoài ra, chúng tôi đã giới thiệu cách khởi động bộ chứa Docker cho máy chủ MongoDB cục bộ và cách thực hiện các thao tác CRUD cơ bản trong đó bằng các đoạn mã đơn giản. Bây giờ bạn sẽ có thể tự tin làm việc với MongoDB

giới thiệu

DynamoDB là cơ sở dữ liệu NoSQL được quản lý bởi Amazon Web Services. MongoDB Atlas là một dịch vụ được quản lý dùng để cung cấp, duy trì và thay đổi quy mô các cụm phiên bản đang chạy công cụ cơ sở dữ liệu MongoDB

Trong phần so sánh này, chúng tôi sẽ không đề cập đến sự khác biệt của DB về mô hình dữ liệu, lược đồ và các mẫu truy cập. Đối với điều này, vui lòng tham khảo DynamoDB so với. Trang MongoDB

Ưu điểm chính của mỗi dịch vụ là

  • DynamoDB
    • Thực sự không cần bảo trì và không có rào cản về cơ sở hạ tầng
    • Dễ sử dụng và bắt đầu
    • Khả năng mở rộng thông lượng rất đơn giản và dễ hiểu
  • Bản đồ MongoDB
    • Ví dụ miễn phí cho mục đích phát triển/thử nghiệm
    • Các phiên bản mới của MongoDB được nhóm Atlas triển khai ngay lập tức
    • Bởi những người tạo ra MongoDB, nó chạy một cơ sở hạ tầng được tối ưu hóa cao cho Mongo

tích hợp

TL;DR. Là một phần của hệ sinh thái AWS, DynamoDB cung cấp khả năng tích hợp tuyệt vời với các dịch vụ đám mây khác. Việc tích hợp MongoDB sẽ đòi hỏi nỗ lực bảo trì và phát triển cao hơn đáng kể

DynamoDB tích hợp với các Dịch vụ AWS khác, chẳng hạn như AWS Lambda

Có thể, ví dụ, để

  • Kích hoạt một hàm Lambda mỗi khi một mục mới được chèn, cập nhật hoặc xóa trong bảng DynamoDB
  • Hiển thị dữ liệu được lưu trữ trong DynamoDB cho các bên bên ngoài thông qua các điểm cuối HTTP an toàn và có thể mở rộng với API Gateway
  • Tải dữ liệu từ DynamoDB vào Redshift để chạy các công việc phân tích dữ liệu lớn

Là một hệ thống cơ sở dữ liệu độc lập, MongoDB Atlas không tích hợp sẵn với các dịch vụ AWS khác. Mọi tích hợp sẽ cần được thực hiện bởi nhóm phát triển

khả năng mở rộng

kết nối

TL; DR. DynamoDB cung cấp khả năng mở rộng cao bằng cách dựa vào các điểm cuối API HTTP. Mặt khác, Mongo vẫn yêu cầu các kết nối ổ cắm, đây có thể là một nguồn gây tắc nghẽn bổ sung trong cơ sở hạ tầng cơ sở dữ liệu

Ứng dụng không cần mở kết nối để truy vấn bảng DynamoDB. Tất cả các hoạt động được thực hiện thông qua các điểm cuối HTTP, giúp nó có thể mở rộng nhất có thể

MongoDB yêu cầu mở kết nối ổ cắm TCP để thực hiện các thao tác. Có số lượng kết nối đồng thời tối đa trong MongoDB Atlas, tùy thuộc vào phiên bản máy chủ

Mô hình kết nối MongoDB đưa ra một số ràng buộc có thể xung đột với tính đồng thời cao của mô hình không có máy chủ. Trong các dự án sử dụng dịch vụ điện toán thông lượng cao, chẳng hạn như AWS Lambda, đây có thể là một vấn đề

Thông lượng và lưu trữ dữ liệu

TL;DR. DynamoDB mang đến khả năng mở rộng vô song. Tuy nhiên, đối với các ứng dụng có quy mô vừa và nhỏ, MongoDB Atlas có thể sẽ đáp ứng các yêu cầu về khả năng mở rộng lưu trữ và thông lượng. Đối với những dự án dự kiến ​​nhu cầu sẽ tăng cao, DynamoDB có thể là lựa chọn an toàn nhất để đối phó với sự tăng trưởng

MongoDB Atlas sử dụng chiến lược sharding để phân phối tài liệu (các mục trong cơ sở dữ liệu) trên nhiều nút, nhằm đáp ứng các nhu cầu về khả năng mở rộng cao hơn

DynamoDB có thể thay đổi quy mô thành hầu như nhiều phiên bản nếu cần. Mô hình thay đổi quy mô của DynamoDB không chỉ dựa trên lưu trữ dữ liệu mà còn dựa trên nhu cầu I/O. Khi ứng dụng yêu cầu thông lượng đọc/ghi cao hơn, nó sẽ tự động tăng số lượng phiên bản trong nền để xử lý tải

Một trong những khác biệt chính giữa hai dịch vụ phát sinh vào thời điểm này là. Atlas hiển thị việc cung cấp phiên bản cho nhà phát triển, trong khi DynamoDB tóm tắt tất cả những điều đó

Việc sử dụng phân đoạn hạn chế việc sử dụng một số tính năng cơ sở dữ liệu trong MongoDB, trong khi DynamoDB cung cấp cùng một bộ tính năng bất kể mức tỷ lệ. Có thể có bao nhiêu phân đoạn trong MongoDB và kích thước dữ liệu tối đa mà nó có thể chứa tùy thuộc vào một công thức

Trong trường hợp tốt nhất, MongoDB có thể lưu trữ tới 32 Terabyte dữ liệu

Trong DynamoDB, các nhà phát triển có thể lưu trữ lượng dữ liệu gần như vô hạn. Mức thông lượng được kiểm soát bằng cách cung cấp dung lượng I/O hoặc chọn một mô hình theo yêu cầu, trong đó DynamoDB sẽ tối ưu hóa việc phân bổ I/O theo nhu cầu

Tóm lại, mô hình khả năng mở rộng của DynamoDB đòi hỏi rất ít hoặc hoàn toàn không cần nỗ lực từ các nhà phát triển. MongoDB Atlas không đơn giản và không thể cung cấp ngưỡng thông lượng mà các nhà phát triển có thể tin tưởng trước

độ tin cậy

TL; DR. Cung cấp rất giống nhau từ cả hai dịch vụ. Do MongoDB Atlas có thể được triển khai trên chính AWS nên các nhà phát triển có thể hưởng lợi từ độ tin cậy cao của nhà cung cấp đám mây

DynamoDB tuân theo các triển khai AWS Multi-AZ và Multi-Region đã được thử nghiệm trong thực tế, mang lại độ tin cậy tối đa có thể

MongoDB Atlas sử dụng nhiều bộ bản sao để duy trì cùng một bộ dữ liệu trên nhiều nút nhằm đạt được độ tin cậy và tính sẵn có cao của dữ liệu

Sao lưu

TL; DR. Các tùy chọn sao lưu khá giống nhau trong cả hai dịch vụ và sẽ đáp ứng nhu cầu của hầu hết các ứng dụng đám mây

DynamoDB cung cấp hai tùy chọn sao lưu

  • theo yêu cầu. tạo các bản sao đầy đủ của bảng DynamoDB bất cứ lúc nào, có thể dễ dàng khôi phục bằng một cú nhấp chuột
  • thời điểm. duy trì các bản sao lưu gia tăng của bảng DynamoDB

Sao lưu tại thời điểm bảo vệ ứng dụng khỏi sửa đổi nhầm dữ liệu. Nó loại bỏ nhu cầu lên lịch và chạy các bản sao lưu theo yêu cầu định kỳ, vì nó tự động ghi lại nhiều phiên bản của bảng

Các quy trình sao lưu DynamoDB (tạo hoặc khôi phục) chạy trong nền bằng cách sử dụng mô hình công nghệ hiện đại cho phép sao lưu toàn bộ bảng chỉ trong vài giây, bất kể kích thước của bảng. Một quá trình sao lưu không ảnh hưởng đến hiệu suất và dung lượng của bảng. Các bản sao lưu được giữ lại trên bộ lưu trữ bên ngoài và có độ bền cao

MongoDB cung cấp các tính năng tương tự để sao lưu dữ liệu

  • Sao lưu liên tục. tương tự như sao lưu tại thời điểm DynamoDB
  • Ảnh chụp nhanh nhà cung cấp đám mây. một bản sao lưu đầy đủ theo lịch trình của cơ sở dữ liệu chạy hàng ngày và được lưu trữ trong nhà cung cấp dịch vụ đám mây mà bạn chọn (AWS, GCP, Azure)

tính di động

TL;DR. Bằng cách dựa vào một công cụ nguồn mở, MongoDB Atlas cung cấp tính di động cao hơn nhiều so với DynamoDB, một hệ thống cơ sở dữ liệu nguồn đóng, độc quyền

Vì Mongo Atlas dựa trên MongoDB, một nền tảng mở, nên đương nhiên nó mang lại tính di động cao hơn DynamoDB. Bản thân Atlas có thể chạy trên nhiều nhà cung cấp đám mây

Tuy nhiên, một số người dùng đã báo cáo sự cố bất thường khi họ cố gắng di chuyển dữ liệu ra khỏi Mongo Atlas. Mặc dù nó không ngăn các nhà phát triển chuyển cơ sở dữ liệu của họ sang một dịch vụ khác, nhưng điều này làm tăng chi phí di chuyển

Trên thực tế, DynamoDB không cung cấp tính di động. Không thể chạy nó bên ngoài miền AWS. Lo lắng về khóa là chính đáng và nên được xem xét trong trường hợp này

Đối với những dự án mà điều quan trọng là phải giữ tùy chọn di chuyển sang một nhà cung cấp đám mây khác trong tương lai, thì việc sử dụng DynamoDB có thể gây ra chi phí di chuyển lớn trong tương lai. Không có cơ sở dữ liệu nào khác trên thị trường có thể đóng vai trò thay thế tùy chọn cho các chức năng và API của DynamoDB. Trong trường hợp di chuyển ra khỏi DynamoDB, công việc tái cấu trúc đáng kể của ứng dụng sẽ được yêu cầu

Bảo vệ

TL;DR. Cả hai dịch vụ đều cung cấp mức độ bảo mật đủ cho hầu hết các triển khai đám mây sản xuất. Các ứng dụng trong ngành tài chính hoặc dữ liệu sức khỏe có thể cần bảo mật bổ sung chỉ do AWS cung cấp

DynamoDB cung cấp khả năng mã hóa tại chỗ đơn giản và dễ sử dụng, bằng khóa của AWS hoặc khóa tùy chỉnh bằng cách tích hợp với AWS KMS (Dịch vụ quản lý khóa)

Quá trình mã hóa được cung cấp thông qua các điểm cuối API HTTP REST bằng cách sử dụng TSL (Bảo mật lớp truyền tải) và các mô hình mã hóa có tiêu chuẩn bảo mật cao nhất. Nếu cần hiển thị DynamoDB cho các kết nối từ các hệ thống tại chỗ bên ngoài, AWS cung cấp tùy chọn kết nối VPN Site-to-Site. Mỗi điểm cuối cung cấp chức năng nhất định. Một số ví dụ dưới đây

  • cấp dữ liệu
    • Truy vấn hoặc quét các mục được lưu trữ trong bảng
    • Xóa mục
    • Cập nhật các mục
  • cấp cơ sở dữ liệu
    • Tạo hoặc xóa bảng
    • Thêm hoặc xóa chỉ mục phụ vào bảng DynamoDB
    • Bật luồng dữ liệu

DynamoDB dựa vào dịch vụ IAM (Quản lý quyền truy cập danh tính) đã qua thử nghiệm thực chiến. Nói tóm lại, người sử dụng dữ liệu có thể sử dụng các vai trò và chính sách IAM với các mức quyền chi tiết được sử dụng để xác thực và cho phép các kết nối đến một điểm cuối DynamoDB nhất định nhằm thực hiện các hoạt động ở cấp dữ liệu và cấp cơ sở dữ liệu

Trong MongoDB Atlas, địa chỉ IP phải được đưa vào danh sách trắng, đây có thể là vấn đề đối với các ứng dụng sử dụng dịch vụ điện toán tạm thời, chẳng hạn như AWS Lambda (không có IP cố định trừ khi có trong VPC)

Các cụm có thể được triển khai trong VPC (Đám mây riêng ảo), cung cấp khả năng bảo mật và cách ly cho mạng. MongoDB cũng cung cấp TLS và LDAP và cơ chế xác thực người dùng dưới dạng lớp bảo mật bổ sung

Tôi có thể sử dụng MongoDB Atlas trong sản xuất không?

Bạn có thể tạo vai trò và người dùng Atlas cấp dự án với quyền truy cập phù hợp vào các môi trường ứng dụng sản xuất và phát triển khác nhau .

Khi nào tôi nên sử dụng MongoDB Atlas?

MongoDB Atlas là một lựa chọn tuyệt vời cho những người không có thời gian hoặc tài nguyên để quản lý tất cả cơ sở hạ tầng cần thiết cho cụm MongoDB . Bạn có thể thiết lập và chạy một cụm trong vài phút, cho phép bạn tập trung vào ứng dụng của mình thay vì quản lý cơ sở dữ liệu.

MongoDB Atlas có tốt không?

MongoDB Atlas là cơ sở dữ liệu NoSQL được sử dụng nhiều nhất trong ngành để xử lý dữ liệu phi cấu trúc. Sản phẩm do công ty tôi phát triển xử lý rất nhiều dữ liệu phi cấu trúc và chúng tôi sử dụng MongoDB Atlas làm cơ sở dữ liệu NoSQL ưa thích của mình. Đây là một sản phẩm thực sự hữu ích vì nó có thể dễ dàng tăng giảm theo nhu cầu thay đổi .

Tôi nên sử dụng MongoDB Atlas hay cục bộ?

Tóm tắt. Tôi muốn giới thiệu MongoDB Atlas cho mọi người/công ty có nhu cầu đáng kể về cơ sở dữ liệu NoSQL và không muốn quản lý cơ sở hạ tầng của họ . Sử dụng MongoDB Atlas có thể giảm đáng kể thời gian và chi phí quản lý của bạn, giúp tiết kiệm tài nguyên quý giá cho các tác vụ khác.