MongoDB là cơ sở dữ liệu mã nguồn mở số 3 và cơ sở dữ liệu NoSQL số 1 trên thế giới. Đó là cơ sở dữ liệu hướng tài liệu đa nền tảng sử dụng các tài liệu giống JSON với lược đồ và được tận dụng rộng rãi trên các ứng dụng khởi động cho đến các doanh nghiệp cấp doanh nghiệp đang phát triển các ứng dụng hiện đại. Mặc dù bạn có thể cho rằng phần lớn triển khai cơ sở dữ liệu đám mây được chạy trên AWS, Azure hoặc Google Cloud Platform, nhưng các doanh nghiệp vừa và nhỏ nói riêng đang hướng tới nhà cung cấp đám mây thân thiện với nhà phát triển, DigitalOcean, để lưu trữ MongoDB® nhu cầu. Trong bài đăng này, chúng tôi sẽ hướng dẫn bạn cách tốt nhất để lưu trữ MongoDB trên DigitalOcean, bao gồm các loại phiên bản tốt nhất để sử dụng, loại đĩa, chiến lược sao chép và nhà cung cấp dịch vụ được quản lý.
DigitalOcean Ưu điểm cho MongoDB
Vậy, điều gì khiến DigitalOcean trở thành một giải pháp thay thế hấp dẫn cho các nhà cung cấp dịch vụ lưu trữ MongoDB phổ biến khác như AWS và Azure? Như đã đề cập ở trên, DigitalOcean rất thân thiện với nhà phát triển với nền tảng đơn giản và dễ hiểu - bạn không cần phải được chứng nhận thông qua nhà cung cấp đám mây này để có thể tự tin triển khai và chạy. Họ cung cấp dịch vụ lưu trữ đám mây dựa trên SSD với mức giá dễ dàng cũng bắt đầu từ $ 5 / tháng, lý tưởng (và giá cả phải chăng) cho các nhà phát triển để xây dựng, thử nghiệm và triển khai các ứng dụng mới của họ một cách liền mạch trên đám mây. Điều ấn tượng nhất là bạn không ảnh hưởng đến hiệu suất vì chi phí. Chúng tôi đã chạy các bài kiểm tra hiệu suất cho MongoDB trên DigitalOcean so với AWS và Azure và nhận thấy rằng hiệu suất DigitalOcean phù hợp với, nếu không muốn nói là tốt hơn, trên cả thông lượng cao và độ trễ thấp khi triển khai.
DigitalOcean Droplets
DigitalOcean chuyên về máy ảo dựa trên SSD có tên là Droplets được chia thành bốn danh mục đơn giản. Droplet cơ bản nhất là phiên bản Tiêu chuẩn của họ sử dụng CPU dùng chung với giá khởi điểm chỉ $ 5 / tháng. Mặc dù thích hợp cho các ứng dụng có lưu lượng truy cập thấp, cơ sở dữ liệu nhỏ và môi trường nhà phát triển / thử nghiệm, chúng tôi khuyên bạn không nên tận dụng các cụm được chia sẻ để triển khai sản xuất MongoDB của mình. Họ cũng cung cấp một Giọt tối ưu hóa CPU chuyên dụng đủ cho khối lượng công việc đòi hỏi nhiều CPU, nhưng cung cấp bộ nhớ thấp, không lý tưởng cho lưu trữ MongoDB.
Nếu bạn đang triển khai khối lượng công việc MongoDB cỡ trung bình, chúng tôi khuyên bạn nên dùng General Purpose Droplet phổ biến nhất của họ, đây là phiên bản chuyên dụng cung cấp 4GB bộ nhớ cho mỗi vCPU. Điều này thường là quá đủ cho việc triển khai sản xuất và các ứng dụng có lưu lượng truy cập cao và bắt đầu từ $ 60 / tháng cho 8GB bộ nhớ, 2 vCPU, 4TB truyền và 25GB dung lượng đĩa SSD. DigitalOcean gần đây cũng đã ra mắt Giọt tối ưu hóa bộ nhớ của họ, đây là các phiên bản chuyên dụng được thiết kế cho các ứng dụng sử dụng nhiều RAM và cơ sở dữ liệu hiệu suất cao, làm cho nó trở thành một giải pháp hấp dẫn cho các ứng dụng MongoDB có khối lượng công việc lớn.
Bạn có thể triển khai MongoDB trên DigitalOcean ở 12 khu vực trung tâm dữ liệu trên toàn thế giới, bao gồm Hoa Kỳ (Thành phố New York và San Francisco), Canada, Hà Lan, Singapore, Vương quốc Anh , Đức và Ấn Độ.
Loại đĩa DigitalOcean
Một trong những lý do MongoDB hoạt động rất tốt trên DigitalOcean là do đĩa SSD của họ, rất lý tưởng cho việc triển khai cơ sở dữ liệu đám mây. Chúng cung cấp thông lượng lớn mang lại lợi ích đáng kể cho việc chạy chỉ mục trên cơ sở dữ liệu của bạn hoặc sửa chữa máy, giúp bạn tiết kiệm đáng kể thời gian so với việc triển khai MongoDB tiêu chuẩn trên AWS. Họ thậm chí còn cung cấp độ trễ thấp đáng kinh ngạc từ Amazon AWS US-East đến trung tâm dữ liệu DigitalOcean New York, điều này rất phù hợp cho các ứng dụng đang chạy phía trước ở tầng trung bình trên AWS, nhưng muốn sử dụng DigitalOcean cho các cụm MongoDB của họ.
Chiến lược sao chép MongoDB
Nếu bạn đang chạy MongoDB trên DigitalOcean trong phiên bản sản xuất, thì các phương pháp hay nhất là triển khai bằng cách sử dụng bộ bản sao để đảm bảo tính khả dụng cao và dự phòng dữ liệu cho các cụm của bạn. DigitalOcean, cùng với AWS và Azure, cung cấp SLA thời gian hoạt động 99,99%, nhưng mặc dù điều đó nghe có vẻ gần hoàn hảo, nhưng 0,01% đó tương đương với 52,6 phút thời gian ngừng hoạt động trong một năm. Đó là gần một giờ mà cơ sở dữ liệu của bạn không thể truy cập được đối với khách hàng, khách truy cập và nhân viên của bạn, điều này có thể có tác động đáng kể đến việc giữ chân khách hàng và danh tiếng thương hiệu của bạn.
Bộ bản sao MongoDB
May mắn thay, bạn có thể giảm thiểu rủi ro triển khai của mình gặp sự cố do mất trung tâm dữ liệu bằng cách thiết lập bộ bản sao 3 nút được phân phối theo địa lý cho MongoDB trên DigitalOcean. Có một số tùy chọn để thiết lập cấu hình này, đầu tiên là thiết lập Chính-Phụ-Trọng tài viên cung cấp 2 nút chứa dữ liệu và một trọng tài đóng vai trò là thành viên bỏ phiếu để xác định bản sao nào sẽ tiếp quản trong trường hợp bản sao không khả dụng . Đây là tùy chọn hợp lý nhất vì trọng tài không giữ bất kỳ dữ liệu nào và chi phí triển khai ít hơn, nhưng cũng cung cấp ít nút hơn có thể tiếp quản trong sự kiện chuyển đổi dự phòng. Chiến lược sao chép tối ưu sẽ là thiết lập Chính-Phụ-Phụ sử dụng 3 nút chứa dữ liệu và cho phép bạn chuyển đổi dự phòng sang 2 trung tâm dữ liệu riêng biệt trong trường hợp vùng chính của bạn bị hỏng.
Cách tốt nhất để tổ chức #MongoDB trên DigitalOceanNhấp vào TweetMongoDB Sharding
MongoDB sharding là một hình thức triển khai nâng cao cho phép bạn chia tỷ lệ dữ liệu của mình theo chiều ngang trên nhiều máy. Đây là một cấu hình rất phức tạp để thiết lập và quản lý, vì mỗi phân đoạn chứa nhiều bộ bản sao và có thể được phân phối trên các vị trí trung tâm dữ liệu khác nhau để có tính khả dụng cao. Sharding là lý tưởng cho các tập dữ liệu rất lớn hoặc triển khai thông lượng cao đòi hỏi nhiều dung lượng hơn mà bạn có thể nhận được với một máy chủ duy nhất. Trong đó việc triển khai điển hình mở rộng theo chiều dọc bằng cách bổ sung thêm dung lượng cho máy chủ khi cần thiết, sharding cho phép bạn mở rộng quy mô theo chiều ngang bằng cách chia dữ liệu của bạn và tải trên nhiều máy. Khi bạn đã thiết lập môi trường phân đoạn, bạn có thể thêm nhiều phân đoạn hơn nếu cần để hỗ trợ sự phát triển ứng dụng của mình.
Tại ScaleGrid, chúng tôi cung cấp các cấu hình Standalone, 2 Replicas + Arbiter, 3 Replicas và Sharding nâng cao để lưu trữ MongoDB trên DigitalOcean theo gói Lưu trữ Chuyên dụng của chúng tôi bắt đầu với kích thước gói Micro với giá 35 đô la / lên đến gói X4XLarge với 16 lõi, 48 GB RAM và 950 GB dung lượng lưu trữ. Bạn cũng có thể tùy chỉnh bộ bản sao MongoDB của mình với số lượng bản sao không giới hạn cho nhu cầu ứng dụng của bạn.
Lưu trữ MongoDB được quản lý trên DigitalOcean
Bây giờ chúng ta đi đến câu hỏi cuối cùng - bạn nên tự quản lý MongoDB của mình khi triển khai DigitalOcean hay tận dụng nền tảng Cơ sở dữ liệu như một Dịch vụ (DBaaS) được quản lý đầy đủ? Câu trả lời dựa trên thời gian, kiến thức và khả năng tiếp cận mọi lúc của bạn để xử lý bất kỳ vấn đề quan trọng nào xảy ra khi triển khai của bạn.
Nhiệm vụ Quản lý &Bảo trì
Nền tảng MongoDB DBaaS cho phép bạn tự động hóa tất cả các hoạt động quản lý và bảo trì tốn nhiều thời gian của mình như nâng cấp phiên bản, mở rộng quy mô, sao lưu miễn phí, khôi phục, cung cấp, hủy cấp phép, sao chép, thu gọn, lập chỉ mục quản lý, vá lỗi hệ điều hành và luân chuyển nhật ký. Tùy thuộc vào quy mô triển khai của bạn, quá trình này có thể mất 1-2 ngày mỗi tháng với đội quân toàn thời gian gồm các chuyên gia MongoDB làm việc suốt ngày đêm. Lợi ích to lớn của việc tận dụng nền tảng DBaaS là bạn loại bỏ rủi ro do lỗi của con người vì các hoạt động quản lý được tự động hóa cho bạn. Nó cũng giữ cho các cụm MongoDB của bạn trên DigitalOcean được bảo mật hoàn toàn và cập nhật để bạn không mở các triển khai của mình trước các lỗi hoặc mối đe dọa tiềm ẩn có thể xuất hiện với cơ sở dữ liệu bị bỏ quên.
Giám sát Hiệu suất
Giám sát cũng là một thành phần quan trọng để quản lý triển khai MongoDB. Với nền tảng DBaaS, bạn có thể tự động hóa cảnh báo trên tất cả các chỉ số MongoDB chính của mình để bạn được thông báo về thời điểm đạt đến ngưỡng không mong muốn và truy cập bảng điều khiển giám sát nâng cao để phân tích tất cả các chỉ số MongoDB và OS trên các trường hợp chính và phụ của bạn và trong bất kỳ khoảng thời gian nào. Ngoài ra, với DBaaS như ScaleGrid, bạn có thể tận dụng Trình phân tích truy vấn chậm, cho phép bạn trực quan hóa các truy vấn chạy chậm và tối ưu hóa chúng trước khi chúng bắt đầu ảnh hưởng đến hiệu suất triển khai của bạn.
Hỗ trợ gỡ rối
Cuối cùng, nhưng không kém phần quan trọng, là khả năng tiếp cận để hỗ trợ. Nếu bạn bị đánh thức vào lúc 4 giờ sáng bởi một cuộc gọi điên cuồng từ sếp, thắc mắc tại sao đơn đăng ký của bạn bị lỗi và bạn có thể khôi phục nó nhanh như thế nào, bạn biết chính xác tôi đang nói về điều gì. Mỗi phút thời gian ngừng hoạt động có thể gây ra cho bạn hàng nghìn đô la kinh doanh và tệ hơn nhiều, một vi phạm bảo mật có thể đóng cửa hoàn toàn doanh nghiệp của bạn và đặt một vết nhơ vĩnh viễn lên danh tiếng của bạn. Bằng cách tận dụng nền tảng DBaaS, bạn có thể vượt qua hơn 90% các vấn đề quan trọng này và có một nhóm chuyên gia MongoDB ở bên bạn 24/7 đối với 10% không thể tránh khỏi để giúp bạn nhanh chóng xác định và giải quyết các vấn đề để triển khai trở lại trạng thái hoạt động khỏe mạnh.
Tại ScaleGrid, chúng tôi đã xác định DigitalOcean là ngôi sao nhạc rock mới nổi để lưu trữ MongoDB và điện toán đám mây nói chung vào năm 2013 và là DBaaS đầu tiên nền tảng để khởi chạy hỗ trợ cho MongoDB DigitalOcean. Cho đến ngày nay, chúng tôi là nền tảng DBaaS được quản lý hoàn toàn duy nhất cho phép bạn tự động hóa lưu trữ của mình cho MongoDB trên DigitalOcean và tận dụng các công cụ quản lý cơ sở dữ liệu cấp doanh nghiệp để tối ưu hóa hiệu suất triển khai, bảo mật và tính khả dụng của bạn trên đám mây. Nếu bạn quan tâm đến việc thử một số khả năng nâng cao của DBaaS cho MongoDB trên DigitalOcean, bạn có thể bắt đầu dùng thử miễn phí 30 ngày mà không cần thẻ tín dụng để khám phá các công cụ tự động hóa và xem trang So sánh các nhà cung cấp MongoDB để xem cách chúng tôi xếp chồng lên MongoDB Atlas, mLab, ObjectRocket và Compose cho MongoDB.