Plusy i minusy zdecentralizowanej architektury lalek

14

Mamy około 300 serwerów RHEL, które obecnie łączą się z serwerem Puppetmaster. Zauważyliśmy jednak pewne wąskie gardła w wydajności i jest to przyczyną awarii w naszym systemie. Ogólnie jestem całkiem nowy w marionetce i zastanawiam się nad stworzeniem zdecentralizowanej architektury marionetek zamiast łączenia klientów Puppet z serwerem Puppetmaster. Oprócz tego, co podejrzewam, że się wydarzy, takiego jak wzrost wydajności oraz brak podpisywania i wymiany certyfikatów SSL na nowe maszyny, jakie są inne zalety i wady związane z tworzeniem zdecentralizowanej architektury?

JMeterX
źródło
3
Czy istnieje powód, dla którego musi być tak czy inaczej? Czy zastanawiałeś się nad opcjami gdzieś pomiędzy? Przy tak wielu serwerach i obawach związanych z jednym punktem awarii, dlaczego nie skonfigurowałeś dodatkowych masterów? Konfigurowanie wielu serwerów marionetek z równoważeniem obciążenia opisano w książce „Pro Puppet”. Istnieje duża elastyczność, powinna nawet być możliwa konfiguracja hierarchii serwerów marionetkowych, jeśli miałoby to sens.
Zoredache,
@Zoredache Naprawdę nie ma powodu, że musi być tak czy inaczej, szukałem więcej informacji na temat zdecentralizowanej architektury w ogóle, aby ułatwić decyzję. Rozważyłem dodatkowych mistrzów, ale rdzeń pomysłu, za który przepraszam za to, że nie wspomniałem, polega na zmniejszeniu liczby serwerów, ponieważ ma to bezpośredni wpływ na nasz budżet. Zgadzam się, równoważenie obciążenia serwerów marionetkowych ma sens, ale jeśli uda mi się pozbyć serwera razem, byłoby to najlepsze rozwiązanie.
JMeterX

Odpowiedzi:

7

Idź zdecentralizowany.

Zamiast podpisywać certyfikaty, twórz klucze ssh. Nie przekazuj kluczy osobom niebędącym administratorami

Możesz używać Git jako transportu zamiast subversion, a następnie możesz rozgałęziać się dla różnych maszyn / ról, a następnie wersjonować zmiany, a także pozwalać na ... ale w tym momencie musisz znać grę DVCS.

Konfiguracja jest szybsza i mniej wybredna. Dodaj kilka haków zatwierdzania do sprawdzania poprawności.

Teraz, w tym momencie, zastąpiłeś puppetmaster, jego model klient-serwer, ssh i git, oba o lepszej skali niż puppetmaster.

W Twojej organizacji może istnieć potrzeba hierarchii. Nie ma problemu, po prostu przechowuj repozytorium git zawierające definitywną gałąź w bezpiecznym miejscu.

Premia:

git blame

pozwoli ci zobaczyć, kto dokonał zmiany.

http://bitfieldconsulting.com/scaling-puppet-with-distribut-version-control

https://www.braintreepayments.com/braintrust/decentralize-your-devops-with-masterless-puppet-and-supply-drop ?

chiggsy
źródło
3

Prowadzisz marionetkę pasażera? przechowywane konfiguracje? Naprawdę nie powinieneś mieć problemów ze skalowalnością w przypadku 300 węzłów, o ile zajmujesz się podstawowymi problemami z konfiguracją.

czervik
źródło
1
Używamy konfiguracji Apache + Passenger. Używamy również subversion, aby wprowadzić zmiany w
Puppetmaster
1

Zdecentralizowany jest najlepszym rozwiązaniem, ponieważ każdy klient kompiluje własny manifest z lokalnej kopii źródła manifestu. Jest aktualizowany za każdym razem, gdy wysyłasz aktualizacje z serwera powiedzmy git. Znacznie bardziej wydajne wykorzystanie przepustowości, ponieważ klienci nie muszą kontaktować się z puppetmasterem przy każdym uruchomieniu. Eliminuje także pojedyncze punkty awarii, ponieważ klienci mogą być aktualizowane z dowolnego miejsca.

What'sTheStoryWishBone
źródło