Jakie są zalety i wady serwerów SnowFlakes, Phoenix i Immutable?


15

Jestem ciekawy macierzy jak porównanie bezpieczeństwa / łatwości zarządzania / zdolności kryminalistycznych dla każdego typu serwera. Mogę też zapomnieć o kilku kluczowych funkcjach każdego typu.

Mam ogólne wyobrażenie o typach, ale macierz referencyjna może być pomocna przy wyborze między nimi w niektórych przypadkach (na przykład gdy automatyzacja staje się złożona dla aplikacji).

Aby uniknąć obaw o to, że jest on zbyt szeroki, uważam, że podzielenie go na pytanie wielokrotności rozproszyłoby informacje i że pytanie o porównanie bezpieczeństwa musiałoby również porównać każdy typ.

Odpowiedzi:


16

Termin Phoenix Server został wymyślony przez członka Martina Fowlera, a wszystkie trzy terminy opisano w krótkich artykułach na temat blikiego Martina.

Plusy i minusy każdego takiego serwera są opisane w artykułach. Główną różnicą jest sposób zarządzania serwerem.

Istnieją serwery spełniające rolę kontenera dla niektórych aplikacji. Ponieważ aplikacje często się zmieniają, często wymagana jest zmiana niektórych atrybutów kontenera - takich jak pakiety, konfiguracja itp. Czasami wymagana jest również zmiana atrybutów samego kontenera z przyczyn zewnętrznych, takich jak luki w zabezpieczeniach, które wymagają łatek do być zainstalowany.

Istnieje kilka sposobów zmiany istniejącego serwera:

  1. Najpierw ręcznie utwórz serwer, a następnie zmieniaj jego zawartość (mutując) za każdym razem, gdy wymagana jest zmiana.
  2. „Piec” obraz dla serwera na podstawie przepisu, zwykle w sposób zautomatyzowany (nie ręcznie). Następnie utwórz serwery z tego obrazu. Powtórz ten proces przy każdej zmianie.

Ten pierwszy nazywa się Snowflake, a drugi to praktyka, która pozwala na typy serwerów Phoenix i Immutable. Tam, gdzie Immutable stwierdza, że ​​po utworzeniu nie ma żadnych zmian na istniejącym serwerze, a Phoenix oznacza, że ​​serwer jest całkowicie zniszczony, a nowy jest używany do zastąpienia go podczas procesu zmiany.


9

Ponieważ bardziej zastanawiałem się nad listą zalet i wad każdego rodzaju, oto mój pogląd (nie wyczerpujący, moim zdaniem są to ważne operacyjne):

  1. Serwery płatków śniegu

    • Czym są : Systemy o określonej konfiguracji, żaden inny serwer w centrum danych nie ma dokładnie takich samych parametrów. Zazwyczaj są one podawane ręcznie.

    • Zalety :

      • Dostosowane do potrzeb tego, co na nich działa.
      • Długotrwałe aktualizacje są zwykle krótkie.
      • Dostosowany do specjalnych przypadków, w których poprawki są dobrze udokumentowane przez hostowany produkt.
    • Wady :

      • Czasami aktualizacje pozostawiają nieużywane pliki, czyszczenie może być skomplikowane.
      • Konieczne jest wprowadzenie zmian w wielu maszynach.
      • Nic nie stoi na przeszkodzie nieudokumentowanej zmianie.
      • W przypadku uszkodzenia musisz odbudować podstawowy system operacyjny i przywrócić go, niektórych poprawek systemu operacyjnego nie można przywrócić i należy je ponownie zastosować, łatwo prześlizgnąć się przez linię i zapomnieć o ważnej poprawce.
      • Zwykle długi czas na zaopatrzenie ze względu na ręczną konfigurację.
  2. Serwery Phoenix

    • Co to jest : Automatycznie konfigurowane przez jakiś kod.
    • Zalety :

      • Zdefiniowane przez kod, w wersji.
      • Łatwo replikowane do określonego momentu.
      • Długotrwałe, krótkie aktualizacje również.
      • Zmiany w kontrolowanych plikach są dokumentowane i nie można ich zapomnieć.
    • Wady :

    • Czasami aktualizacje pozostawiają nieużywane pliki, czyszczenie może być skomplikowane.
    • Nie wszystko jest objęte zarządzaniem kodem, niektóre poprawki wprowadzone przez człowieka mogą zostać pominięte, jeśli nie zostaną uwzględnione w automatyzacji.
  3. Niezmienne serwery

    • Czym są :
      • Zautomatyzowane jednorazowe udostępnianie z obrazu głównego bez dostępu.
    • Zalety :

      • Zdefiniowane przez kod, w wersji.
      • Łatwo replikowane do określonego momentu.
      • Zmniejszona powierzchnia ataku dzięki zwykłemu zdalnemu dostępowi.
      • Naprawiono konfigurację, żadna zmiana nie może coś zepsuć
      • Łatwo skalowalny „na żądanie” z obrazu głównego.
    • Wady :

      • Są niezmienne, musisz upewnić się, że możesz szybko rzucić aktualizację na wypadek wady 0-dniowej.
      • Nie wszystkie aplikacje dobrze pasują do tego modelu (bazy danych, na przykład, całkowite zastąpienie tych samych danych nie zawsze jest możliwe, istnieje migracja do obsługi).
      • Przynosi nowe wyzwania dla analizy kryminalistycznej zarządzania awariami i logami.

Żaden z tych wzorów nie jest wyłączny, musisz wybrać najlepszy zgodnie z rzeczywistą potrzebą. Płatki śniegu budzą wiele obaw w przypadku powrotu do zdrowia po katastrofie, więc zwykle wybór jest większy między Phoenix a niezmiennym.


2

Wszystkie trzy są rodzajami wzorców, nie chodzi o wybieranie i wybieranie, które z nich należy zastosować w konkretnych okolicznościach, ale o to, kiedy należy rozpoznać wzorce, które mogą ci pomóc lub zranić.

Serwer płatka śniegu

Snowflake Server jest bardzo anty-wzorzec reprezentująca przypadek, gdy serwer ewoluuje w sposób niekontrolowany do momentu, gdy nie może on być łatwo reprodukowane.

Miałem wiele uruchomień z tego rodzaju serwerem w produkcji, są one dość łatwe do wykrycia, ponieważ zwykle istnieje duża liczba nieudanych zmian i komentarzy, takich jak „to [zmiana] działało w Programowaniu / Testie / UAT / Staging „.

Phoenix Servier

Phoenix Server jest bardziej zleceniodawcy niż wzorzec jako Martin Fowler mówi:

Serwer powinien być jak feniks, regularnie powstający z popiołów. [za]

Jeśli zastosujesz zarządzanie usługami IT (ITSM) lub język ITIL w tej samej sytuacji, prawdopodobnie nazwałbyś to planem ciągłości usług IT lub planem naprawy:

Osobny plan dla każdej usługi powinien zawierać szczegółowe procedury i wytyczne krok po kroku dla każdego etapu incydentu, aby zespoły ds. Odzyskiwania mogły przywrócić usługi, a tym samym spełnić uzgodnione procedury i składowe RTO.

Niezmienny serwer

Niezmienne Server lub Niezmienne infrastruktury jest procesem, poprzez który możemy traktować wszystkie rozmieszczone infrastruktury, konfiguracji i kodu jako całkowicie niezmienne, czyli niezmienne. Kiedy wdrażamy coś nowego, uruchamiamy nową infrastrukturę i wdrażamy do tego kod. Co ciekawe, zaspokaja to w większości potrzeby tradycyjnie zaspokajane przez Evergreening .


Notatki

  • Odp . : Kolega Martina, Kornelis Sietsma, wymyślił termin „Serwer Feniks” na wewnętrznej liście dyskusji.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.