MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Podstawy automatyzacji baz danych MongoDB przy użyciu szefa kuchni

Zarządzane środowiska rozwijają się z czasem, często w wyniku zwiększonego zaangażowania danych lub być może ze względu na potrzebę zwiększenia wydajności poprzez współdzielone obciążenie pracą. Z tego powodu istnieje potrzeba dodawania członków. Na przykład z MongoDB można zdecydować się na replikację i sharding, co w konsekwencji będzie wymagało dodania większej liczby członków do klastra. Konfigurowanie i wdrażanie tych środowisk z czasem staje się gorączkowe, czasochłonne, podatne na błędy ludzkie i wiele związanych z nimi niepowodzeń, które ostatecznie powodują koszty operacyjne. Weźmy na przykład zestaw replik z 50 członkami w MongoDB i chcesz shardować określoną kolekcję w każdym z członków, robienie tego ręcznie dla każdego jest czasochłonne, dlatego potrzebujemy scentralizowanego systemu, z którego możesz łatwo skonfigurować wszystkich członków . Za pomocą scentralizowanych systemów piszesz kod, który następnie konfiguruje podłączonych członków. Kod jest zatem czytelny dla człowieka, wersjonowalny i testowalny w celu usunięcia ewentualnych błędów przed wdrożeniem.

Co to jest oprogramowanie szefa kuchni?

Chef to oprogramowanie do automatyzacji napisane w języku Ruby, które służy do usprawnienia konfiguracji i utrzymania maszyn w chmurze lub na serwerach prem. Czyni to, zapewniając, że wszyscy podłączeni członkowie otrzymują wymagane zasoby, zasoby są dobrze skonfigurowane i koryguje wszelkie zasoby, które nie są w pożądanym stanie. Tak więc szef kuchni zasadniczo zapewnia, że ​​pliki i zasoby oprogramowania, które powinny znajdować się na określonej maszynie, są obecne, poprawnie skonfigurowane i działają zgodnie z przeznaczeniem.

Komponenty szefa kuchni

Serwer szefa kuchni

Jest to centralny system kontroli, w którym przechowywane są dane konfiguracyjne. Dane są zapisane w „przepisie”, a jeśli dotyczy to wielu z tych przepisów, tworzą one książkę kucharską. System centralny zawiera również metadane opisujące każdy z węzłów zgodnie z opisem w szefie kuchni.

Wszystkie zmiany wprowadzone w przepisach przechodzą tutaj do weryfikacji przed wdrożeniem. Serwer zapewnia również, że stacja robocza i podłączone węzły są sparowane za pomocą kluczy autoryzacyjnych przed umożliwieniem komunikacji między nimi i zastosowaniem zmian.

Węzeł klienta szefa kuchni

Węzeł klienta Chef rejestruje i weryfikuje węzły oraz buduje obiekty węzłów. Zasadniczo przechowuje aktualny stan danego węzła i jego metadane.

Węzeł

Jest to maszyna fizyczna, wirtualna lub w chmurze do skonfigurowania i każda powinna mieć zainstalowany węzeł klienta.

Stacja robocza

Stacja robocza zapewnia interfejs do komunikacji między serwerem a węzłami klienta. Zapewnia platformę do pisania, testowania i wdrażania książek kucharskich. Tutaj również definiuje się role

Przetestuj kuchnię

Tutaj następuje walidacja kodu.

Nóż szefa kuchni

Interakcja z węzłami.

Książki kucharskie

Zawiera przepisy napisane w języku Ruby i służą do definiowania zadań do wykonania. Receptury określają zasoby i kolejność realizacji na zdefiniowanych zadaniach.

  • atrybuty są używane do zastąpienia ustawień domyślnych.
  • pliki używane do przesyłania plików z określonej ścieżki do kucharza-klienta.
  • Zasób metadanych definiuje informacje o węźle zgodnie z opisem w węźle klienta.

Jak działa szef kuchni

Chef ma dwa sposoby działania, czyli klient/serwer lub w trybie samodzielnym, znanym jako „szef-solo”.

Serwer szefa kuchni otrzymuje różne atrybuty dotyczące określonego węzła od klienta szefa kuchni. Atrybuty te są następnie indeksowane za pomocą Elasticsearch przez serwer, który następnie udostępnia interfejs programowania aplikacji (API), z którego węzły klienckie mogą wysyłać zapytania do tych danych. Zwrócone wyniki są następnie wykorzystywane przez węzły klienckie do skonfigurowania odpowiednich maszyn i przekształcenia ich do pożądanego stanu.

Serwer skupia wszystkie operacje, w których mają być przechowywane zmiany

Serwery zarządzane przez szefa kuchni są od czasu do czasu oceniane pod kątem pożądanego stanu, wszelkie zmiany w konfiguracjach są automatycznie korygowane i stosowane powszechnie. Dzięki takiemu podejściu istnieje spójna konfiguracja na dużą skalę.

Pierwsze kroki z szefem kuchni

Stację roboczą kucharza można pobrać z tej strony i zainstalować. Utwórz folder o nazwie książki kucharskie i wewnątrz tego folderu uruchom polecenie:

$ chef generate cookbook first_cookbook

Spowoduje to wygenerowanie katalogu o nazwie first_cookbook z kilkoma podfolderami i plikami.

Przejdź do książki kucharskie/first_cookbook/recipes/ i zaktualizuj przepis default.rb o zawartość

file "test.txt" do

  content 'This is my first recipe file'

end

Następnie uruchamiamy ten plik za pomocą polecenia

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

LUB w folderze z przepisami możesz uruchomić plik za pomocą polecenia

$ chef-apply default.rb

Jeśli przejdziesz do folderu z przepisami, na pewno zobaczysz plik test.txt z treścią To jest mój pierwszy plik z przepisami. To jest takie proste. W następnej sekcji będziemy tworzyć przepisy, aby wykonać określone zadania dotyczące MongoDB

Instalowanie i konfigurowanie MongoDB z szefem kuchni

Możesz zainstalować MongoDB, tworząc przepis instalacji MongoDBInstall.rb i wypełniając go zawartością

package "mongodb" do

 action :install

 version '4.0.3'

end

W tym przypadku nazwa naszego pakietu to mongodb i zamierzamy zainstalować wersję 4.0.3

To, co mamy, to podstawowy przepis, ale w wielu przypadkach będziemy potrzebować zaawansowanej książki kucharskiej, aby wykonać naszą konfigurację w MongoDB. Aby ułatwić to zadanie, opracowano książki kucharskie, takie jak SC-MongoDB, które generalnie czynią konfigurację dokładną.

Książka kucharska SC-MongoDB

Książka kucharska udostępnia mongodb_instance, która umożliwia konfigurację parametrów MongoDB, zestawu replik i klastra podzielonego na fragmenty.

Aby zainstalować książkę kucharską, po prostu uruchom polecenie

$ knife supermarket download sc-mongodb

Następnie możesz użyć zdefiniowanych atrybutów w tej witrynie, aby zmienić konfigurację niektórych domyślnych atrybutów MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Symbol wieloznaczny prefiksu mongoDB:wyszukiwanie pełnotekstowe ($text) znajdź część z ciągiem wyszukiwania

  2. Podstawowe uwagi dotyczące tworzenia kopii zapasowej MongoDB

  3. Często zadawane pytania dotyczące wywiadu MongoDB

  4. ImportError:Brak modułu o nazwie objectid

  5. Jak mogę użyć zmiennej regex w zapytaniu do MongoDB?