MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Khái niệm cơ bản về tự động hóa cơ sở dữ liệu MongoDB bằng Chef

Môi trường được quản lý phát triển theo thời gian, thường là kết quả của việc tăng cường sự tham gia của dữ liệu hoặc có thể do nhu cầu tăng hiệu suất thông qua khối lượng công việc được chia sẻ. Bởi vì điều này cần phải thêm thành viên. Ví dụ, với MongoDB, người ta có thể quyết định thực hiện việc sao chép và phân bổ sắc nét, do đó sẽ yêu cầu người ta thêm nhiều thành viên hơn vào cụm. Việc cấu hình và triển khai các môi trường này theo thời gian trở nên bận rộn, tốn thời gian, dễ xảy ra sai sót do con người gây ra và rất nhiều thất bại liên quan cuối cùng gây ra chi phí hoạt động. Lấy ví dụ về một tập hợp bản sao với 50 thành viên trong MongoDB và bạn muốn chia nhỏ một tập hợp nhất định trong mỗi thành viên, việc thực hiện điều này theo cách thủ công cho từng thành viên sẽ tốn thời gian, do đó chúng tôi cần một hệ thống tập trung để bạn có thể dễ dàng định cấu hình tất cả các thành viên . Với một hệ thống tập trung, bạn viết một số mã để cấu hình các thành viên được kết nối. Do đó, con người có thể đọc được, có thể so sánh được và có thể kiểm tra mã để loại bỏ các lỗi có thể xảy ra trước khi triển khai.

Phần mềm Chef là gì?

Chef là một phần mềm tự động hóa được viết bằng ngôn ngữ Ruby được sử dụng để hợp lý hóa tác vụ cấu hình và bảo trì các máy đám mây hoặc trên các máy chủ tiền nhiệm. Nó làm như vậy bằng cách đảm bảo rằng tất cả các thành viên được kết nối nhận được tài nguyên cần thiết, tài nguyên được cấu hình tốt và sửa bất kỳ tài nguyên nào không ở trạng thái mong muốn. Vì vậy, về cơ bản, Chef đảm bảo các tệp và tài nguyên phần mềm dự kiến ​​có trong một máy nhất định hiện diện, được định cấu hình chính xác và hoạt động bình thường như dự kiến.

Các thành phần của Chef

Máy chủ đầu bếp

Đây là hệ thống điều khiển trung tâm chứa dữ liệu cấu hình. Dữ liệu được viết trong một "công thức nấu ăn" và nếu nhiều công thức nấu ăn này có liên quan thì chúng sẽ tạo thành một cuốn sách nấu ăn. Hệ thống trung tâm cũng chứa siêu dữ liệu mô tả từng nút như đã nêu trong đầu bếp-khách hàng.

Tất cả các thay đổi được thực hiện trong công thức nấu ăn đều chuyển vào đây để xác thực trước khi triển khai. Máy chủ cũng đảm bảo rằng máy trạm và các nút được kết nối được ghép nối bằng cách sử dụng các khóa ủy quyền trước khi cho phép giao tiếp giữa chúng và áp dụng các thay đổi.

Nút khách hàng đầu bếp

Nút máy khách Chef đăng ký và xác nhận các nút cũng như xây dựng các đối tượng nút. Về cơ bản, nó giữ trạng thái hiện tại của một nút nhất định và siêu dữ liệu của nó.

Nút

Đây là máy vật lý, máy ảo hoặc máy đám mây được định cấu hình và mỗi máy phải được cài đặt nút máy khách.

Máy trạm

Máy trạm cung cấp một giao diện để giao tiếp giữa máy chủ và các nút máy khách. Nó cung cấp một nền tảng để viết, thử nghiệm và triển khai sách dạy nấu ăn. Đây là nơi các vai trò cũng được xác định

Thử nghiệm Bếp

Đây là nơi mã được xác thực.

Dao đầu bếp

Tương tác với các nút.

Sách dạy nấu ăn

Chứa các công thức được viết bằng ngôn ngữ Ruby và được sử dụng để xác định các công việc sẽ được thực hiện. Các công thức chỉ định các nguồn lực và thứ tự thực hiện các nhiệm vụ đã xác định.

    Thuộc tính
  • được sử dụng để ghi đè cài đặt mặc định.
  • tệp được sử dụng để chuyển tệp từ đường dẫn cụ thể đến đầu bếp-khách hàng.
  • tài nguyên siêu dữ liệu xác định thông tin nút như được mô tả trong nút máy khách.

Cách hoạt động của đầu bếp

Chef có hai cách hoạt động, đó là client / server hoặc ở chế độ độc lập được gọi là 'chef-solo'.

Chef-server nhận các thuộc tính khác nhau liên quan đến một nút nhất định từ Chef-client. Các thuộc tính này sau đó được lập chỉ mục bằng cách sử dụng Elasticsearch bởi máy chủ, sau đó cung cấp Giao diện chương trình ứng dụng (API) từ đó các nút máy khách có thể truy vấn những dữ liệu này. Các kết quả trả về sau đó được sử dụng bởi các nút khách để định cấu hình các máy liên quan và chuyển đổi chúng sang trạng thái mong muốn.

Máy chủ tập trung tất cả các hoạt động nơi các thay đổi sẽ được lưu trữ

Các máy chủ do Chef quản lý được đánh giá theo thời gian dựa trên một số trạng thái mong muốn đảm bảo rằng bất kỳ thay đổi nào trong cấu hình đều được tự động sửa chữa và áp dụng trên toàn cầu. Với cách tiếp cận này, có một cấu hình nhất quán trên quy mô lớn.

Bắt đầu với Đầu bếp

Bạn có thể tải xuống máy trạm đầu bếp từ trang web này và cài đặt nó. Tạo một thư mục có tên sách nấu ăn và bên trong thư mục này chạy lệnh:

$ chef generate cookbook first_cookbook

Thao tác này sẽ tạo một thư mục có tên first_cookbook với một số thư mục con và tệp.

Điều hướng đến sách dạy nấu ăn / first_cookbook / cooks / và cập nhật công thức default.rb với nội dung

file "test.txt" do

  content 'This is my first recipe file'

end

Sau đó, chúng tôi thực thi tệp này bằng lệnh

$ chef-client --local-mode --override-runlist first_cookbook.

HOẶC, bên trong thư mục công thức, bạn có thể chạy tệp bằng lệnh

$ chef-apply default.rb

Nếu bạn điều hướng đến thư mục công thức của mình, chắc chắn bạn sẽ thấy tệp test.txt với nội dung Đây là tệp công thức đầu tiên của tôi. Nó là dễ dàng. Trong phần tiếp theo, chúng tôi sẽ tạo các công thức để thực hiện một số tác vụ cụ thể liên quan đến MongoDB

Cài đặt và định cấu hình MongoDB với Chef

Bạn có thể cài đặt MongoDB bằng cách tạo công thức cài đặt MongoDBInstall.rb và điền nội dung vào nó

package "mongodb" do

 action :install

 version '4.0.3'

end

Trong trường hợp này, tên gói của chúng tôi là mongodb và chúng tôi sẽ cài đặt phiên bản 4.0.3

Những gì chúng tôi có là một công thức cơ bản nhưng trong nhiều trường hợp, chúng tôi sẽ cần một sách dạy nấu ăn nâng cao để thực hiện cấu hình của chúng tôi trong MongoDB. Để giảm bớt nhiệm vụ, có những sách dạy nấu ăn được phát triển như SC-MongoDB thường giúp cấu hình chính xác.

Sách dạy nấu ăn SC-MongoDB

Sách dạy nấu ăn cung cấp mongodb_instance để nâng cao tính năng này để định cấu hình tham số MongoDB, tập hợp bản sao và một cụm phân đoạn.

Để cài đặt sách nấu ăn, chỉ cần chạy lệnh

$ knife supermarket download sc-mongodb

Sau đó, bạn có thể sử dụng các thuộc tính đã xác định trong trang web này để định cấu hình lại một số thuộc tính MongoDB mặc định.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lợi thế của việc sử dụng ObjectId thay vì một Chuỗi đơn giản là gì?

  2. Làm thế nào để thực hiện cập nhật hàng loạt tài liệu trong MongoDB với Java?

  3. Tích hợp &Dịch vụ có sẵn từ MongoDB cho Đám mây

  4. Giao điểm chỉ số MongoDB

  5. nhóm theo truy vấn về bộ sưu tập sao băng