sql >> Databáze >  >> NoSQL >> MongoDB

Základy automatizace databáze MongoDB pomocí Chef

Spravovaná prostředí se postupem času zvětšují, často v důsledku většího zapojení dat nebo možná kvůli potřebě zvýšit výkon prostřednictvím sdílené pracovní zátěže. Z tohoto důvodu je potřeba přidávat členy. Například s MongoDB se můžete rozhodnout provést replikaci a sharding, což následně bude vyžadovat přidání dalších členů do clusteru. Konfigurace a nasazení těchto prostředí se časem stává hektickým, časově náročným, náchylným k lidským chybám a mnoha souvisejícím neúspěchům, které nakonec představují provozní náklady. Vezměme si příklad sady replik s 50 členy v MongoDB a chcete rozdělit určitou sbírku v každém z členů, dělat to ručně pro každého je časově náročné, proto potřebujeme centralizovaný systém, ze kterého můžete snadno nakonfigurovat všechny členy . S centralizovanými systémy napíšete nějaký kód, který následně konfiguruje připojené členy. Kód je proto čitelný pro člověka, lze jej upravovat a testovat, aby se před nasazením odstranily možné chyby.

Co je Chef Software?

Chef je automatizační software napsaný v jazyce Ruby, který se používá ke zefektivnění úlohy konfigurace a údržby cloudových strojů nebo na prem serverech. Činí tak tím, že zajistí, aby všichni připojení členové dostali požadované prostředky, prostředky byly dobře nakonfigurovány a opraví všechny prostředky, které nejsou v požadovaném stavu. Šéfkuchař tedy v zásadě zajišťuje, že soubory a softwarové prostředky, o kterých se očekává, že budou na určitém počítači, jsou přítomny, správně nakonfigurovány a fungují správně, jak bylo zamýšleno.

Součásti šéfkuchaře

Server šéfkuchaře

Toto je centrální řídicí systém, ve kterém jsou uložena konfigurační data. Údaje jsou zapsány v „receptu“ a pokud se jich mnoho týká, tvoří kuchařku. Centrální systém také obsahuje metadata popisující každý z uzlů, jak je uvedeno v chef-client.

Všechny změny provedené v receptech se před nasazením předávají k ověření. Server také zajišťuje, že pracovní stanice a připojené uzly jsou spárovány pomocí autorizačních klíčů, než mezi nimi povolí komunikaci a použije změny.

Uzel hlavního klienta

Uzel klienta Chef registruje a ověřuje uzly a vytváří objekty uzlů. V podstatě obsahuje aktuální stav daného uzlu a jeho metadata.

Uzel

Toto je fyzický, virtuální nebo cloudový počítač, který se má nakonfigurovat a na každém by měl být nainstalován klientský uzel.

Pracovní stanice

Pracovní stanice poskytuje rozhraní pro komunikaci mezi serverem a klientskými uzly. Poskytuje platformu pro psaní, testování a nasazení kuchařek. Zde jsou také definovány role

Test Kitchen

Zde se kód ověřuje.

Šéfkuchařský nůž

Interakce s uzly.

Kuchařské knihy

Obsahuje receptury napsané v jazyce Ruby a používá se k definování úkolů, které mají být provedeny. Receptury specifikují zdroje a pořadí implementace na definovaných úkolech.

  • atributy se používají k přepsání výchozího nastavení.
  • soubory používané k přenosu souborů z konkrétní cesty ke klientovi šéfkuchaře.
  • zdroj metadat definuje informace o uzlu, jak je popsáno v klientském uzlu.

Jak šéfkuchař pracuje

Chef má dva způsoby provozu, a to klient/server nebo v samostatném režimu známém jako „chef-solo“.

Chef-server přijímá různé atributy týkající se určitého uzlu od Chef-clienta. Tyto atributy jsou pak indexovány pomocí Elasticsearch serverem, který pak poskytuje aplikační programové rozhraní (API), odkud mohou klientské uzly dotazovat tato data. Vrácené výsledky jsou pak použity klientskými uzly ke konfiguraci příslušných počítačů a jejich transformaci do požadovaného stavu.

Server řídí všechny operace, kde se mají ukládat změny

Servery spravované šéfkuchařem jsou čas od času hodnoceny podle požadovaného stavu, který zajišťuje, že jakékoli změny v konfiguracích jsou automaticky opraveny a aplikovány univerzálně. S tímto přístupem existuje konzistentní konfigurace v měřítku.

Začínáme s šéfkuchařem

Chef-workstation si můžete stáhnout z tohoto webu a nainstalovat. Vytvořte složku s názvem kuchařky a v této složce spusťte příkaz:

$ chef generate cookbook first_cookbook

Vygeneruje se adresář s názvem first_cookbook s některými podsložkami a soubory.

Přejděte na cookbooks/first_cookbook/recipes/ a aktualizujte výchozí.rb recept s obsahem

file "test.txt" do

  content 'This is my first recipe file'

end

Tento soubor pak spustíme pomocí příkazu

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

NEBO ve složce receptů můžete soubor spustit pomocí příkazu

$ chef-apply default.rb

Pokud přejdete do složky receptů, určitě uvidíte soubor test.txt s obsahem Toto je můj první soubor receptu. Je to tak snadné. V další části budeme vytvářet recepty na provádění některých konkrétních úkolů týkajících se MongoDB

Instalace a konfigurace MongoDB pomocí Chef

Můžete nainstalovat MongoDB vytvořením instalačního receptu MongoDBInstall.rb a naplnit jej obsahem

package "mongodb" do

 action :install

 version '4.0.3'

end

V tomto případě je název našeho balíčku mongodb a chystáme se nainstalovat verzi 4.0.3

To, co máme, je základní recept, ale v mnoha případech budeme pro konfiguraci v MongoDB potřebovat pokročilou kuchařku. Pro usnadnění tohoto úkolu existují vyvinuté kuchařky, jako je SC-MongoDB, které obecně zpřesňují konfiguraci.

Kuchařka SC-MongoDB

Kuchařská kniha poskytuje  mongodb_instance, která umožňuje konfigurovat parametry MongoDB, sadu replik a sdílený cluster.

Pro instalaci kuchařky stačí spustit příkaz

$ knife supermarket download sc-mongodb

Potom můžete použít atributy definované na tomto webu k přenastavení některých výchozích atributů MongoDB.


  1. Meteor vrací chybu neplatného hexadecimálního řetězce při pokusu o vytvoření ObjectID?

  2. MongoDB select count(distinct x) na indexovaném sloupci – počítání jedinečných výsledků pro velké datové sady

  3. SQL LPAD()

  4. DeprecationWarning:collection.findAndModify je zastaralá. Místo toho použít findOneAndUpdate, findOneAndReplace nebo findOneAndDelete?