Virtual Machine Scale Set czyli o tym, jak „uPaaSowić” maszyny wirtualne w Azure. cz. 3

To już ostatni wpis z serii. Zakładam, że już masz swój VMSS i umiesz już przygotować swój pipeline w VSTS, który buduje Twoją paczkę i ładuje na obraz. Teraz czas by uruchomić aplikację i pobawić się skalowaniem VMSS. Zapraszam!

No właśnie, uruchomić…

Możesz wziąć publiczny adres swojego VMSS, wpisać w przeglądarkę i przekonać się, że Twoja aplikacja w Node.JS nie ma ochoty Ci odpowiedzieć.

Zapomniałeś o sieci 🙂 więc czym prędzej odwiedź swój Load Balancer i skonfiguruj na nim tzw. Health Probe oraz Load Balancing Rule. Skąd wiem, że chodzi o port 1337? Popatrz w pliki konfiguracyjne w katalogu Drop w swoim repozytorium kodu a zobaczysz skąd ten port.

Czy teraz Twoja aplikacja objawi się całemu światu?

Spróbuj, by przekonać się, że nadal nie. Możesz zestawić sesję SSH do jednej z instancji VMSS, sprawdzić serwisy i przekonać się, że nikt nie powiedział Twojemu serwerowi, by „podniósł” aplikację, kiedy zostanie uruchomiony.

Smuteczek 🙁

Teraz już wystarczy drobiazg, VMSS pozwala dodać rozszerzenie, które zawiera polecenie w bash’u / powershell w zależności od systemu, które jest uruchamiane w trakcie startu VMSS.

Dla naszego przykładu to rozszerzenie jest bardzo proste i w konsoli bash, poprzez narzędzie pm2 startuje aplikację Node.JS. Możesz sprawdzić czy polecenie zadziała u Ciebie wchodząc wprost na jeden z serwerów VMSS i uruchamiając taką komendę bezpośrednio w linii poleceń. Poniżej zawartość pliku settings.json (wybacz, że na zrzucie plik ma inną nazwę :))

Żeby takie rozszerzenie dodać, musisz stworzyć prosty plik (taki jak u mnie wyżej) i wykonać proste polecenie Azure CLI.

az vmss extension set --publisher Microsoft.Azure.Extensions --version 2.0 --name Custom.Script --resource-group chat-vmss-dev-rg --vmss-name chat-vmss-dev --settings @c:\temp\settings.json

Jeśli Twoje rozszerzenie zostało poprawnie dodane, to przy starcie VMSS przejdź w portalu Azure, w ramach VMSS do zakładki Instances i zobaczysz tam mniej więcej taki zapis z procesu „wstawania”. Komunikat poniżej właśnie informuje o tym, że narzędzie PM2 poprawnie zadziałało i uruchomiło aplikację.

Czas na testy i tym razem powinno się udać. I jak widzisz, Load Balancing też zadziałał.

A może chciałbyś zobaczyć jak działa skalowanie?

To ostatni z obiecanych punktów na liście. Ja ustawiłem reguły bardzo prosto. Zrzut poniżej. Pamiętaj, że VMSS pozwala się „skalować” co najwyżej co 5 min, nie można ustawić krótszego okna badania obciążenia środowiska. Biorąc pod uwagę, że dodanie nowej VM’ki do takiego środowiska potrwa ok. 2 min to nie wydaje się być problem, ale warto wiedzieć.

Po dodaniu reguł „autoscalowania” wygenerowałem sztucznie obciążenie środowiska by zobaczyć proces w akcji. Zapis moich „zabaw” poniżej, takie właśnie rzeczy robię w niedzielny wieczór:).

Done! 3 wpisy, dzięki którym mam nadzieję powiększyłem Twoją wiedzę o tym, czym jest Virtual Machine Scale Set i jak go „wykorzystać” i „uPaaSowić”.

Ten wpis został opublikowany w kategorii Krok po kroku i oznaczony tagami , , , . Dodaj zakładkę do bezpośredniego odnośnika.
  • Świetny tutorial. Przyda się jeszcze „jak aktualizować OS w VMSS”

    • Michal Furmankiewicz

      Dzięki! Będzie w takim razie cz. 4.