Wybieranie natywnego rozwiązania platformy Azure

Ukończone

Twoja organizacja ma kilka wymagań dotyczących przenoszenia jej aplikacji na maszyny wirtualne platformy Azure. Chcesz przejrzeć te wymagania i wybrać odpowiednie narzędzie na podstawie potrzeb organizacji.

Wybór właściwych narzędzi do aprowizacji zależy od problemu, rozmiaru infrastruktury i rezultatów, jakie chcesz osiągnąć. Ponieważ te kryteria różnią się w zależności od sieci, poniżej przedstawiono kilka podstawowych metryk, za pomocą których możemy określić, które narzędzie lepiej nadaje się do aprowizacji zasobów obliczeniowych:

  • Łatwość konfiguracji
  • Zarządzanie
  • Współdziałanie
  • Język konfiguracji
  • Ograniczenia i wady

Rozważmy zalety lub wady dla każdego z tych narzędzi, korzystając z tych metryk. Możemy przeanalizować scenariusz biznesowy i zobaczyć, jak każde narzędzie może pomóc nam w obsłudze konkretnego scenariusza.

Skrypt niestandardowy

  • Łatwość konfiguracji. Rozszerzenie niestandardowego skryptu jest wbudowane w witrynie Azure Portal, dlatego konfiguracja jest łatwa.
  • Zarządzanie Zarządzanie niestandardowymi skryptami może być coraz bardziej kłopotliwe w miarę rozwoju infrastruktury i gromadzenia różnych skryptów niestandardowych dla różnych zasobów.
  • Współdziałanie. Rozszerzenie niestandardowego skryptu można dodać do szablonu usługi Azure Resource Manager. Można również wdrożyć je za pomocą programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure.
  • Język konfiguracji. Skrypty można pisać przy użyciu wielu typów poleceń. Można użyć programu PowerShell i powłoki Bash.
  • Ograniczenia i wady. Niestandardowe skrypty są nieodpowiednie, gdy skrypt potrzebuje więcej niż półtorej godziny, aby zastosować konfigurację. Unikaj używania niestandardowych skryptów w przypadku konfiguracji, które wymagają ponownego uruchomienia.

Scenariusz

Organizacja, dla której pracujesz, otrzymała nowy kontrakt wymagający pracy z nowym klientem. Klient ma kilka maszyn wirtualnych działających na platformie Azure. Zespół deweloperów decyduje, że musi zainstalować niewielką aplikację, która została napisana w celu zwiększenia produktywności zespołu i sprawdzenia, czy zespół może dotrzymać nowych terminów. Aplikacja nie wymaga ponownego uruchomienia.

Zespół prosi o zaimplementowanie rozwiązania, aby upewnić się, że aplikacja została zainstalowana na wszystkich tych maszynach prawidłowo oraz w najszybszy i najmniej skomplikowany sposób.

Decydujesz, że w sprawdzeniu, czy aplikacja została skonfigurowana na wszystkich maszynach minimalnym wysiłkiem, może pomóc niestandardowy skrypt. Rozszerzenia można skonfigurować na maszynach wirtualnych przy użyciu zaledwie kilku ustawień w witrynie Azure Portal.

Podsumowanie rozwiązania

Rozszerzenie niestandardowego skryptu jest dobre dla niewielkich konfiguracji po przeprowadzeniu aprowizacji. Dobrze sprawdza się również w sytuacjach, gdy musisz szybko dodać lub zaktualizować niektóre aplikacje na maszynie docelowej. Jest to konieczne w przypadku skryptów międzyplatformowych ad hoc.

Rozszerzenia Azure Desired State Configuration

  • Łatwość konfiguracji. Konfiguracje żądanego stanu (Desired State Configuration, DSC) są łatwe do odczytywania, aktualizowania i przechowywania. Konfiguracje określają stan, jaki chcesz osiągnąć. Autor nie musi wiedzieć, jak osiągnąć ten stan.
  • Zarządzanie Konfiguracja DSC demokratyzuje zarządzanie konfiguracjami na serwerach.
  • Współdziałanie. Konfiguracji DSC używa się z usługą Azure Automation State Configuration. Można je konfigurować za pośrednictwem witryny Azure Portal, programu Azure PowerShell lub szablonów usługi Azure Resource Manager.
  • Język konfiguracji. Do konfigurowania DSC służy program PowerShell.
  • Ograniczenia i wady. Do definiowania konfiguracji można używać tylko programu PowerShell. Jeśli używasz konfiguracji DSC bez usługi Azure Automation State Configuration, musisz zatroszczyć się o własną aranżację i zarządzanie.

Scenariusz

Organizacja, dla której pracujesz, testuje nową aplikację wymagającą, aby nowe maszyny wirtualne były identyczne w celu jej dokładnego przetestowania. Firma chce mieć pewność, że maszyny wirtualne mają dokładnie takie same ustawienia konfiguracji. Zauważasz, że niektóre z tych ustawień wymagają wielokrotnego ponownego uruchomienia każdej maszyny wirtualnej. Firma potrzebuje pojedynczej konfiguracji stanu na wszystkich maszynach w punkcie aprowizacji. Obsługa jakichkolwiek błędów niezbędna do osiągnięcia stanu powinna być możliwie jak najbardziej wydzielona z konfiguracji stanu. Konfiguracje powinny być łatwe do odczytania.

Decydujesz się na użycie konfiguracji DSC. Konfiguracje DSC są łatwe do odczytania. Możesz zadeklarować jeden identyczny stan dla wszystkich maszyn wirtualnych. Możesz wyodrębnić logikę obsługi wszystkich błędów z konfiguracji stanu, aby zachować proste i czyste konfiguracje stanu. Możesz również upewnić się, że konfiguracje zakończyły się powodzeniem nawet po ponownym uruchomieniu.

Podsumowanie rozwiązania

Konfiguracja DSC jest łatwa do odczytywania, aktualizowania i przechowywania. Konfiguracje DSC ułatwiają deklarowanie stanu, w którym maszyny powinny znajdować się w momencie ich aprowizacji, zamiast instrukcji, które szczegółowo opisują sposób umieszczania maszyn w określonym stanie. Bez usługi Azure Automation State Configuration musisz zarządzać własnymi konfiguracjami DSC i aranżacją. Konfiguracja DSC pozwala osiągnąć więcej, gdy jest stosowana w połączeniu z usługą Azure Automation State Configuration.

Azure Automation State Configuration

  • Łatwość konfiguracji. Usługę Azure Automation State Configuration nietrudno skonfigurować, ale wymaga ona od użytkownika znajomości witryny Azure Portal.
  • Zarządzanie Usługa automatycznie zarządza wszystkimi maszynami wirtualnymi za Ciebie. Każda maszyna wirtualna może wysyłać szczegółowe raporty dotyczące swojego stanu, których można używać do wyciągania wniosków z tych danych. Usługa Automation State Configuration ułatwia także zarządzanie konfiguracjami DSC.
  • Współdziałanie. Usługa Automation State Configuration wymaga konfiguracji DSC. Działa ona automatycznie z maszynami wirtualnymi platformy Azure i wszystkimi maszynami wirtualnymi, które są lokalne lub innego dostawcy usług w chmurze.
  • Język konfiguracji. Korzystanie z programu PowerShell.
  • Ograniczenia i wady. Do definiowania konfiguracji można używać tylko programu PowerShell.

Scenariusz

Dowiadujesz się, że firma, dla której pracujesz, chce mieć możliwość utworzenia setek maszyn wirtualnych o identycznych konfiguracjach. Chce otrzymywać informacje na temat tych konfiguracji. Chce mieć możliwość sprawdzania, które maszyny bez problemów akceptują poszczególne konfiguracje. Chce również widzieć te problemy, gdy maszyna nie osiąga żądanego stanu. Ponadto chce mieć możliwość dostarczania wszystkich tych danych do narzędzia monitorowania w celu analizowania wszystkich danych i uczenia się na ich podstawie.

Na podstawie wymagań dostarczonych przez Twoją organizację decydujesz, że najlepszym rozwiązaniem jest użycie usługi Azure Automation State Configuration z konfiguracjami DSC deklarującymi stany. Usługa Azure Automation State Configuration może automatycznie ustawiać konfiguracje stanu DSC na wszystkich węzłach. Takie podejście gwarantuje również, że maszyny będą zgłaszać stan każdego węzła. Te dane można również przesyłać dalej do dzienników usługi Azure Monitor. Usługa Azure Automation State Configuration służy do ulepszania zarządzania konfiguracjami stanu DSC.

Podsumowanie rozwiązania

Usługa Azure Automation State Configuration nadaje się do automatyzowania konfiguracji DSC, zarządzania maszynami, które potrzebują tych konfiguracji, oraz do uzyskiwania scentralizowanych raportów z każdej maszyny. Konfiguracji DSC możesz używać bez usługi Azure Automation State Configuration, szczególnie jeśli chcesz administrować mniejszą liczbą maszyn. W przypadku większych i bardziej złożonych scenariuszy wymagających aranżacji usługa Azure Automation State Configuration jest rozwiązaniem, którego potrzebujesz. Wszystkie potrzebne konfiguracje i funkcje można wypychać do wszystkich maszyn i stosować równomiernie przy minimalnym wysiłku.

Szablony usługi Azure Resource Manager

  • Łatwość konfiguracji. Tworzenie szablonów usługi Resource Manager jest łatwe. Społeczność usługi GitHub udostępnia wiele szablonów, których możesz używać lub które możesz modyfikować. Możesz również tworzyć własne szablony w witrynie Azure Portal.
  • Zarządzanie Zarządzanie szablonami usługi Resource Manager jest proste, ponieważ zarządzasz plikami JavaScript Object Notation (JSON).
  • Współdziałanie. Do aprowizowania szablonów usługi Resource Manager możesz używać innych narzędzi, takich jak interfejs wiersza polecenia platformy Azure, witryna Azure Portal, program PowerShell i rozwiązanie Terraform.
  • Język konfiguracji. Używaj formatu JSON.
  • Ograniczenia i wady. Format JSON ma ściśle określoną składnię i gramatykę, a pomyłki mogą łatwo spowodować, że szablon będzie nieprawidłowy. Konieczność poznania wszystkich dostawców zasobów na platformie Azure i ich opcji może być uciążliwa.

Scenariusz

Każdy deweloper powinien umieć automatycznie aprowizować całą grupę maszyn wirtualnych, które będą identyczne jak utworzone przez jakiegokolwiek innego członka zespołu. Deweloperzy chcą mieć pewność, że wszyscy pracują w tym samym środowisku. Deweloperzy znają kod JSON, ale niekoniecznie wiedzą, jak administrować infrastrukturą. Muszą mieć możliwość aprowizowania wszystkich zasobów potrzebnych do uruchamiania tych maszyn wirtualnych w łatwy i szybki sposób.

Decydujesz się przedstawić deweloperom szablony usługi Azure Resource Manager. Dzięki temu możesz współpracować z deweloperami, aby zdecydować, które zasoby potrzebują na platformie Azure. Możesz również wyrazić zgodę na szablon spełniający ich wymagania. Ponieważ szablon jest oparty na formacie JSON i można go łatwo wdrożyć, deweloperzy mogą szybko nauczyć się aprowizować i wdrażać zasoby platformy Azure.

Podsumowanie rozwiązania

Szablonów usługi Resource Manager można używać w przypadku małych infrastruktur ad hoc. Idealnie nadają się również do wdrażania większych infrastruktur z wieloma usługami i ich zależnościami. Szablony zasobów można również dopasować do przepływów pracy deweloperów. Za pomocą tego samego szablonu możesz wdrażać aplikację na każdym etapie jej cyklu życia.