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ć”.