Jaka jest podstawowa różnica między konwergencją a idempotencją u szefa kuchni?Różnica między zbieżnością a idempotencją u szefa kuchni
Odpowiedz
Konwergencja i idempotencja nie są specyficzne dla szefa kuchni. Zwykle są one przypisywane do teorii zarządzania konfiguracją, choć mają zastosowanie w innych dziedzinach, w szczególności w matematyce.
Zacznijmy od bardziej podstawowego, idempotentnego. Zignorujemy matematyczne użycie idempotentnych i skupimy się na tym, co ludzie kierujący konfiguracją mają na myśli, kiedy o tym rozmawiają. To znaczy: "wiele aplikacji tego samego działania nie ma skutków ubocznych w stanie systemu." Prostym przykładem operacji idempotent jest mkdir -p
:
mkdir -p /var/lib/statedir/myapp
Nie ważne ile razy uruchomić to polecenie, to spowoduje, że drzewo jest tworzony. Innym sposobem na stwierdzenie tego o operacjach idempotentnych jest "ciągłe uruchamianie narzędzia nie zmienia systemu po raz pierwszy."
Teraz kontrastujemy z konwergencją. Ogólnie rzecz biorąc, zbieżność oznacza połączenie [ludzi lub] rzeczy. W zarządzaniu konfiguracją konwergencja oznacza dostosowanie stanu systemu do określonej polityki. Oznacza to, że zmiany wprowadzane są w systemie tylko wtedy, gdy trzeba je wprowadzić. Prostym przykładem działania zbieżnym jest:
if [ ! -d /var/lib/statedir/myapp ]; then
mkdir -p /var/lib/statedir/myapp
fi
ten jest zbieżny, bo jesteśmy tylko wykonując polecenia mkdir jeśli żądany katalog nie istnieje. Nazywamy to również operacją "testuj i napraw". Oznacza to, że testujemy bieżący stan konkretnej rzeczy, którą zarządzamy, a następnie naprawiamy ją za pomocą określonego polecenia lub operacji, jeśli nie jest ona w tym stanie. To, co robi Chef za kulisami z zasobu tak:
directory '/var/lib/statedir/myapp' do
recursive true
end
Sposób, w jaki (Chef) mówić o tym, że szef kuchni trwa idempotent działania zbiegają systemu do stanu deklarowanego przez różnych zasobów. Każdy zasób w Chef jest deklaratywny i wykonuje test na temat bieżącego stanu zasobu, a następnie naprawia system, aby go dopasować.
Aby wniknąć w głąb chwastów o tym, jak działa Chef, ma on fazę "kompilacji" i fazę "zbieżności" w biegu szefa kuchni. W fazie "kompilacji" ocenia receptury Rubiego na węźle i szuka obiektów zasobów, które dodaje do "kolekcji zasobów". Po dokonaniu oceny wszystkich receptur, wchodzi w fazę "zbierania", w której dokonuje iteracji nad zbiorem zasobów, podejmując odpowiednie działania, aby umieścić zasoby w pożądanym stanie, w którym użytkownicy są tworzeni, zapisywane są pliki, instalowane są pakiety, i tak dalej.
To było naprawdę świetne wyjaśnienie !! Byłem świadomy koncepcji konwergencji u szefa kuchni, ale nie idempotencji. Dziękuję za artykulację. :) – dextren
-1. Nie uważam tego za szczególnie jasne wyjaśnienie; sprawia, że idempotencja i konwergencja brzmią tak, jakby były w zasadzie tym samym, ponieważ polecenia, których używasz jako przykłady dwóch pojęć, są semantycznie identyczne. Przykład polecenia idempotent-but-not-convergent (lub polecenie convergent-but-not-idempotent, jeśli coś takiego ma sens) dodawałoby jasności. –
- 1. Atrybuty szefa kuchni a worki z danymi
- 2. Jak uruchomić plik skryptu bash u szefa kuchni?
- 3. Aktualizowanie listy wyników u szefa kuchni przy użyciu noża
- 4. Jaka jest różnica między Dockerem a nowym narzędziem Habitat szefa kuchni?
- 5. Zrozumienie szefa kuchni tylko_if not_if
- 6. Jak przerwać/zakończyć bieg szefa kuchni?
- 7. Jak można zmodularyzować przepis na szefa kuchni?
- 8. Jak zainstalować zależności dla obsługi szefa kuchni?
- 9. DRY w ramach przepisu Szefa Kuchni
- 10. Zarządzanie wersjami szefa kuchni w stosie soli?
- 11. Nazwa węzła w szablonie szefa kuchni?
- 12. Zastąp kod powrotu bash szefa kuchni
- 13. Różnica między obiektem a *?
- 14. Różnica między jquery a $
- 15. W jaki sposób uczynić zasoby szefa kuchni opcjonalnymi?
- 16. Zmiana miejsca, w którym kucharz-włóczęga ściąga szefa kuchni z
- 17. Błąd sprawdzania poprawności ssl nadchodzi podczas robienia ustawień szefa kuchni
- 18. Dostęp do zasobów szefa kuchni w rubinowym bloku
- 19. Debugowanie receptur szefa kuchni bez niszczyciela i ponownego rezerwowania
- 20. Możliwość zmiany źródeł klejnotów dla szefa kuchni klienta?
- 21. Atrybuty szefa kuchni. Które z nich są dostępne?
- 22. Szablon szefa kuchni zmienna @node wydaje się rzucać błąd
- 23. Szablony szefa kuchni i erb. Jak używać bloków kodu Boolean
- 24. Jak mogę umieścić wyjście "zasobu wykonawczego szefa kuchni" w zmiennej
- 25. Vagrant - jak wydrukować dane wyjściowe polecenia szefa kuchni na stdout?
- 26. Różnica między String [] a i String ... a
- 27. Różnica między bip pid a $$
- 28. Różnica między kodowaniem a sortowaniem?
- 29. Różnica między onbeforeunload a onunload
- 30. Różnica między OpenCV a OpenCL
Jaki jest twój problem? Konwergencja jest jedną z faz w prowadzeniu szefa kuchni (wykonaj wyszukiwanie na http.docs.chef.io o tym), idempotencja jest terminem matematycznym dla f (x) = f (f (x)): Tzn. być tym samym niezwiązanym z tym ile razy funkcja jest wywoływana na jej wyniku => zrobić coś tylko z potrzebnego => nie dotykaj pliku, którego treść jest już oczekiwaną treścią – Tensibai