Co to jest szef kuchni? - Narzędzie używane do zarządzania konfiguracją



Ten blog o What is Chef jest pierwszym blogiem z serii blogów Chef. Mówi o zarządzaniu konfiguracją io tym, jak Chef osiąga to za pomocą przypadku użycia.

Chef to narzędzie służące do zarządzania konfiguracją, z którym ściśle konkuruje Marionetka . Na tym blogu wyjaśnię, co to jest szef kuchni, zarządzanie konfiguracją i jak szef kuchni osiąga zarządzanie konfiguracją za pomocą przypadku użycia.

Co to jest szef kuchni?

Chef to narzędzie do automatyzacji, które umożliwia definiowanie infrastruktury jako kodu. Infrastruktura jako kod (IAC) oznacza po prostu zarządzanie infrastrukturą poprzez pisanie kodu (infrastruktura automatyzacji) zamiast korzystania z procesów ręcznych. Można to również nazwać infrastrukturą programowalną. Chef używa czystego języka Ruby, specyficznego dla domeny języka (DSL) do pisania konfiguracji systemu. Poniżej przedstawiamy rodzaje automatyzacji wykonywane przez Szefa Kuchni, niezależnie od wielkości infrastruktury:





  • Konfiguracja infrastruktury
  • Wdrażanie aplikacji
  • Konfiguracje są zarządzane w całej sieci

Lubić Marionetka który ma architekturę Master-Slave, nawet Chef ma architekturę klient-serwer. Ale Chef ma dodatkowy komponent o nazwie Workstation. O stacji roboczej opowiem w następnym blogu. Zapoznaj się z poniższym schematem:

Chef vs Puppet - What Is Chef - Edureka



W Chef, węzły są dynamicznie aktualizowane zgodnie z konfiguracjami na serwerze. To się nazywa Konfiguracja ściągania co oznacza, że ​​nie musimy wykonywać nawet jednego polecenia na serwerze Chef, aby przesłać konfigurację do węzłów, węzły automatycznie zaktualizują się zgodnie z konfiguracjami obecnymi na serwerze. Mój następny blog Samouczek szefa kuchni wyjaśni szczegółowo architekturę Chef wraz ze wszystkimi komponentami Chef.

Przyjrzyjmy się teraz przyczynom popularności Chefa.

Co to jest szef kuchni - kluczowe wskaźniki szefa kuchni

  • Chef obsługuje wiele platform, takich jak AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows i Ubuntu. Dodatkowe platformy klienckie obejmują Arch Linux, Debian i Fedora.
  • Chef można zintegrować z platformami chmurowymi, takimi jak Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure i Rackspace, aby automatycznie udostępniać i konfigurować nowe maszyny.
  • Szef kuchni ma aktywne, inteligentne i szybko rozwijające się wsparcie społeczności.
  • Ze względu na dojrzałość i elastyczność szefa kuchni jest on używany przez gigantów, takich jak Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School z University of Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney i Cheezburger.

Według Phila Dibowitza, inżyniera produkcji, Facebook



„Istnieją trzy wymiary skali, na które zwykle zwracamy uwagę w przypadku infrastruktury - liczbę serwerów, liczbę różnych konfiguracji w tych systemach oraz liczbę osób potrzebnych do utrzymania tych konfiguracji. Szef kuchni dostarczył rozwiązanie do automatyzacji na tyle elastyczne, aby dostosować się do dynamiki naszej skali bez konieczności zmiany naszego przepływu pracy ”.

Bez wątpienia Chef jest jednym z najbardziej znanych narzędzi do zarządzania konfiguracją, z którym ściśle konkuruje Marionetka . Ale zanim zagłębię się w temat „Co to jest szef kuchni”, sprawiedliwe jest, że najpierw wyjaśnię, czym jest zarządzanie konfiguracją i dlaczego jest ważne.

Zarządzanie konfiguracją

Nie martw się, na tym blogu nie będzie ciężkiej definicji zarządzania konfiguracją :)

Zrozummy zarządzanie konfiguracją w ten sposób - przypuśćmy, że musisz wdrożyć oprogramowanie na setkach systemów. To oprogramowanie może być systemem operacyjnym, kodem lub aktualizacją istniejącego oprogramowania. Możesz wykonać to zadanie ręcznie, ale co się stanie, jeśli będziesz musiał zakończyć to zadanie w nocy, ponieważ jutro może być Wielki miliard dni sprzedaż w firmie lub jakiś M lub Sprzedaż itp., w których spodziewany jest duży ruch. Nawet jeśli byłbyś w stanie zrobić to ręcznie, istnieje duże prawdopodobieństwo wystąpienia wielu błędów w Twój wielki dzień. Co jeśli oprogramowanie, które zaktualizowałeś w setkach systemów, nie działa, to jak powrócisz do poprzedniej stabilnej wersji, czy będziesz w stanie wykonać to zadanie ręcznie? Oczywiście, że nie!

Aby rozwiązać ten problem, wprowadzono Zarządzanie konfiguracją. Używając narzędzi do zarządzania konfiguracją, takich jak Chef, Puppet itp., Możesz zautomatyzować to zadanie. Wszystko, co musisz zrobić, to określić konfiguracje na jednym scentralizowanym serwerze i odpowiednio skonfigurowane zostaną wszystkie węzły. Umożliwia dostęp do dokładnego, historycznego zapisu stanu systemu na potrzeby zarządzania projektami i audytu. Zasadniczo musimy określić konfiguracje raz na serwerze centralnym i powielić je na tysiącach węzłów. Zarządzanie konfiguracją pomaga w wykonywaniu poniższych zadań w bardzo uporządkowany i łatwy sposób:

  • Dowiedzieć się, które komponenty zmienić, gdy zmienią się wymagania.
  • Ponowne wykonanie implementacji, ponieważ wymagania uległy zmianie od czasu ostatniej implementacji.
  • Przywracanie poprzedniej wersji komponentu w przypadku wymiany na nową, ale wadliwą wersję.
  • Zastąpienie niewłaściwego komponentu, ponieważ nie można było dokładnie określić, który komponent miał zostać wymieniony.

Sprawdź mój blog na Puppet, aby dowiedzieć się, jak NYSE zaoszczędziło miliony dolarów dzięki zarządzaniu konfiguracją

Istnieją zasadniczo dwa sposoby zarządzania konfiguracjami, a mianowicie konfiguracjami wypychania i ściągania.

  • Konfiguracja ściągania: W przypadku tego typu zarządzania konfiguracją węzły okresowo sondują scentralizowany serwer w celu uzyskania aktualizacji. Węzły te są konfigurowane dynamicznie, więc zasadniczo pobierają konfiguracje ze scentralizowanego serwera. Konfiguracja ściągania jest używana przez narzędzia takie jak Chef, Puppet itp.
  • Konfiguracja push: W przypadku tego typu zarządzania konfiguracją scentralizowany serwer przekazuje konfiguracje do węzłów. W przeciwieństwie do konfiguracji ściągania, istnieją pewne polecenia, które należy wykonać na serwerze centralnym, aby skonfigurować węzły. Konfiguracja Push jest używana przez narzędzia takie jak Ansible.

Naucz się różnych składników zarządzania konfiguracją na moim blogu Puppet Tutorial

Teraz jest właściwy moment, aby zabrać Cię do przodu w dążeniu do zrozumienia „Co to jest szef kuchni”, wyjaśniając, w jaki sposób szef kuchni osiąga zarządzanie konfiguracją.

Co to jest szef kuchni - zarządzanie konfiguracją za pomocą szefa kuchni

Zrozumieliśmy, co to jest Chef, teraz wyjaśnię Ci, w jaki sposób Chef osiąga zarządzanie konfiguracją w przypadku użycia. Gannett jest amerykańskim holdingiem medialnym notowanym na giełdzie. Jest to największy wydawca gazet w USA pod względem całkowitego dziennego nakładu.

Tradycyjny proces wdrażania firmy Gannett charakteryzował się wieloma przekazaniami i testami ręcznymi. Zobaczmy, jakie problemy napotkali podczas tego procesu:

  • Utrzymanie dokładnych, powtarzalnych kompilacji było trudne.
  • Było wiele błędów kompilacji, a testy często były uruchamiane w niewłaściwych środowiskach.
  • Czas wdrożenia i udostępniania może wynosić od kilku dni do kilku tygodni.
  • Zespół operacyjny nie miał dostępu do chmury ani środowisk programistycznych.
  • Każda grupa korzystała z własnego zestawu narzędzi i nie była odpowiedzialna za finanse ani bezpieczeństwo. Nikt nie wiedział, ile faktycznie kosztuje aplikacja. Bezpieczeństwo nie miało możliwości przeprowadzenia audytu stosów oprogramowania.

Gannett był gotowy na zmianę. Programiści chcieli szybko wdrażać swoje aplikacje. Operatorzy potrzebowali stabilnej infrastruktury, w której mogliby budować i wdrażać w powtarzalny sposób. Dział finansów chciał poznać rzeczywisty koszt aplikacji. Ochrona chciała przeglądać i kontrolować wszystkie stosy oraz móc śledzić zmiany.

Gannett widział, że chmura jako usługa ma wiele zalet. Programiści mieli dostęp do standardowych zasobów. Obsługa szczytowego ruchu była łatwiejsza dzięki modelowi przetwarzania na żądanie w chmurze i zminimalizowano przekazywanie połączeń.

Chef umożliwia dynamiczne udostępnianie i wyłączanie infrastruktury na żądanie, aby nadążać za szczytami wykorzystania i ruchu. Umożliwia częstsze wdrażanie i aktualizowanie nowych usług i funkcji, przy niewielkim ryzyku przestojów. Dzięki Chef możesz skorzystać z całej elastyczności i oszczędności, jakie oferuje chmura.

Zobaczmy, jakie funkcje pełnił Szef Kuchni w Gannett:

  • Gannett zaczął budować VPC (Virtual Private Cloud) dla środowiska programistycznego naśladującego produkcję. Żadne z narzędzi, których już używali, nie było odpowiednie. Okazało się jednak, że Chef dobrze współpracuje z chmurą oraz środowiskiem Linux i Windows. Wykorzystali Chefa do zbudowania środowiska programistycznego, które idealnie pasuje do środowiska produkcyjnego.
  • Aby aplikacja mogła zostać przeniesiona do VPC, musiała zostać przygotowana i wdrożona za pomocą programu Chef.
  • Bezpieczeństwo byłoby zaangażowane na wczesnym etapie i zarządzałoby obowiązkowymi kontrolami dostępu do Szefa kuchni i utrzymania standardów bezpieczeństwa systemu.

Nadszedł czas, aby zrozumieć, jakie były wyniki tego procesu:

  • Wdrożenie Gannetta stało się szybsze i bardziej niezawodne. Udostępnianie i wdrażanie aplikacji, które kiedyś trwało kilka tygodni, po użyciu programu Chef trwało kilka minut.
  • Wszystkie nowe aplikacje zostały wdrożone w chmurze za pomocą programu Chef. Te aplikacje zostały wdrożone we wszystkich środowiskach w taki sam sposób, w jaki zostały wdrożone w środowisku produkcyjnym. Ponadto testy przeprowadzono w każdym środowisku, aby wdrożenia były niezawodne.
  • Cała infrastruktura została potraktowana jako kod, co znacznie zwiększa widoczność wszelkich zmian, które miały miejsce. Skorzystały na tym rozwój, operacje, bezpieczeństwo i finanse.

Po ' Co to jest szef kuchni ”Mój następny blog tj. Samouczek szefa kuchni skupia się na architekturze Chefa wraz z jej komponentami. Wyjaśniłem również, jak wdrożyć Apache2 przy użyciu programu Chef.

przeglądarka db do przeglądu sqlite

Jeśli znalazłeś tego bloga na „ Co to jest szef kuchni ' istotnych, Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zdobyć wiedzę na temat różnych procesów DevOps i narzędzi, takich jak Puppet, Jenkins, Nagios i GIT, do automatyzacji wielu kroków w SDLC.