Azure Stack - Potęga Azure w firmowym datacenter - część 1

Uważam, że żyjemy w arcyciekawych czasach. Pamiętam jak instalacja nowej karty dźwiękowej wiązała się z konfiguracją przerwań, dysku zworek, a reinstalacja systemu operacyjnego przekładaniem dyskietek o pojemności 1,44 MB każda. Obecnie procedura instalacji nowego urządzenia często kończy się na zaznaczeniu pola wyboru w oknie kreatora lub dodaniu parametru w linii komend. Szacuje się, że do 2020 roku status "Online" zyska dodatkowo prawie trzy miliardy ludzi. Możliwe, że do tego czasu język jakim się komunikujemy przestanie być barierą, a wyborem z menu kontekstowego w opcjach aplikacji. Trend Mobile First, Cloud First zwiększa idącym z nurtem firmom zasięg i możliwości świadczenia usług. Wybór producenta urządzenia mobilnego przestaje być jednokierunkowym biletem w kierunku wyłącznie jego rozwiązań. Za sprawą rozwoju technologii opartych o Chmurę urządzenie, miejsce i dystans staje się sprawą drugorzędną. W dobie automatyzacji i coraz bardziej zaawansowanej sztucznej inteligencji dwa parametry kultury firmy zdają się być szczególnie premiowane wzrostem przychodów:

  • kreatywność
  • czas wdrażania pomysłów w życie

W kontekście kreatywności wystarczy wejść na stronę https://www.microsoft.com/cognitive-services/en-us/apis aby wyrobić sobie idee jakie cechy będą miały nasze aplikacje jutra, przy znacznym zmniejszeniu wydatków na badania i rozwój. Natomiast aby skrócić czas implementacji pomysłów trudno o lepszy model biznesowy niż ten w oparciu o Chmurę. Model zachęca, bo nie płacimy, gdy zakupione zasoby chwilowo "mielą powietrze". Kusi bo gdy dopiero rozpoczynamy przygodę z Chmurą, możemy zachowawczo dokupywać moc obliczeniową tylko w miarę wzrostu potrzeb. Taka granulacja pozwala zachować płynność finansową i objawia swoje atuty szczególnie na etapach planowania rozwoju firmy.

Na potrzeby artykułu wcielę się jednak tymczasowo w rolę adwokata diabła. Ponieważ nie wszystkie instytucje mogą się zdecydować na dobrodziejstwa Chmury, choćby ich zarządy dostrzegały zyski i wyrażały chęci. Na drodze do przełączenia dźwigni zielonego światła wiodącego ku przejściu na model Chmurowy mogą stanąć, wśród wielu innych, następujące czynniki:

  • Charakterystyka biznesu
  • Charakterystyka przechowywanych danych
  • Regulacje prawne
  • Lokalizacja
  • Brak zaufania
  • Decyzje historyczne

Rozprawmy się więc z powyższymi argumentami za jednym zamachem - Azure Stack. Najłatwiej będzie nam zrozumieć czym jest Azure Stack, opisując co robi i w jakie obszary biznesu wnosi wartość. Skonfrontujmy na chwilę przeszłość i teraźniejszość na przykładzie powoływania do życia platformy pod aplikacje tj. infrastruktury. Wyobraźmy sobie, że wpadliśmy na pomysł stworzenia aplikacji, wypracowaliśmy model biznesowy i zbudowaliśmy wykwalifikowany zespół gotowy do implementacji. Niech to będzie coś dla kobiet.

Aplikacja

Umożliwia wklejenie URL z filmem lub reklamą w odpowiednie pole aplikacji. Za pomocą zaimplementowanego API Microsoft Cognitive Services aplikacja rozpoznaje elementy ubioru aktorek. Następnie wyszukuje sklepy udostępniając linki witryn, w których można zakupić podobne lub takie same ubiory jak aktorek/modelek na wklejonych filmikach.

Rozważmy jak Azure Stack wpisuje się w asystę skracania czasu implementacji powyższego scenariusza zakładając, że od początku z jakichś tajemniczych powodów nie decydujemy się na implementację w publicznym Azure. Absolutne minimum na start to środowisko testowe, produkcyjne oraz zapasowe. Celowo pominę szereg elementów, a wspomnę tylko o sieciach, łączach, utrzymaniu, miejscu, klimatyzacji. Można tak wymieniać co najmniej kilka linijek tekstu, które przełożą się na tygodnie planowania. A teraz wyobrażając sobie sukces aplikacji, nasze potrzeby szybko urosną o środowiska Staging, Pre-Production. Bardzo szybko również należałoby zapewnić automatyczne skalowanie rozwiązania w miarę przyrastania obciążenia. No i na horyzoncie zaczynamy dostrzegać widmo prokrastynacji.

Scenariusz jak to było kiedyś

Należało przewidzieć potrzebną wydajność platformy sprzętowej. Trzeba było wybrać platformę systemową (Windows vs Linuks) na każde piętro architektury (Front-End, Middle, Backend). Wymagane było sprawdzić kompatybilność sprzętu, wybrać producenta, ogłosić przetarg i wreszcie zamówić. Gdy sprzęt dotarł należało go odpakować, czasem złożyć, podłączyć, zainstalować OS, skonfigurować, zainstalować sterowniki, aplikacje. Wyobraźmy sobie, że docelowo infrastruktura pod aplikację to kilkadziesiąt serwerów. Proces nie rzadko trwał miesiącami. A to dopiero początek bo bardzo często kolejne warstwy infrastruktury pochodziły od różnych producentów, miały różne SLA i różną jakość serwisu gdy występowała awaria. Kłania się pytanie za sto punktów: "A jeśli projekt nie wypali zgodnie z oczekiwaniami, co zrobimy ze sprzętem?".

Scenariusz z Azure Stack

Programista loguje się do portalu samoobsługowego. Wybiera elementy składające się na rozmiar maszyny, zaznacza system operacyjny, wpisuje kilka zmiennych składających się na konfigurację systemu i po czym zatwierdza guzikiem "Finish". Procedura potrwała maksymalnie kilka minut i za chwilę system jest gotowy do pracy. Może mieć zainstalowaną bazę SQL lub inną, serwer aplikacyjny. To nie wszystko. Można utworzyć szablon w pliku JSON, zaimportować go do Azure Stack, tym samym powołując do życia kilkadziesiąt czy kilkaset maszyn wirtualnych o dowolnej konfiguracji za pomocą swojego ulubionego interpretera poleceń (sic!).

Podsumowanie

W tej części artykułu dowiedzieliśmy się o scenariuszach wykorzystania platformy Azure Stack. W kolejnej części przejedziemy do spraw natury technicznej i uruchomimy Proof of Concept rozwiązania.

/Tomasz Gościmiński