Kiedy warto używać chmur
Autor: Grzegorz Glonek
Opublikowano: 2011-06-20
Pobierz i uruchom |
Wprowadzenie
Z poprzednich części cyklu artykułów dowiedzieliśmy się, jak jest zbudowana chmura Windows Azure oraz jak działają jej główne komponenty. Jak już wiemy, jest to platforma dająca możliwości zarówno łatwego budowania nowych, wysoko skalowalnych aplikacji dla tej platformy, jak i migracji już istniejących do używania tej technologii. Mając na uwadze powiedzenie: „kiedy coś jest do wszystkiego, to jest do niczego”, musimy pamiętać, że Windows Azure tylko wtedy zapewni naszym projektom sukces, kiedy będziemy go wykorzystywać w scenariuszach, do których została ta platforma stworzona. W tym artykule przytoczymy najbardziej charakterystyczne sytuacje, w których sprawdzi się platforma cloudcomputingowa.
Szybki wzrost użytkowników
Pierwszym przykładem, kiedy warto używać Windows Azure, to sytuacja, gdy nasza aplikacja okazuje się tak dobra i popularna, że bardzo szybko wzrasta grono jej użytkowników. Sytuację taką przedstawia wykres 1:
Wykres1. Wzrost liczby użytkowników w czasie.
Napowyższym wykresie widać, że w bardzo krótkim czasie należy się liczyć z wymianą sprzętu, na którym hostowana jest nasza aplikacja, co niesie ze sobą często wysokie wydatki. Co więcej, sukces naszej aplikacji w takim przypadku może, paradoksalnie, być przyczyną klęski, ponieważ w przypadku firm w fazie start up, których jest to pierwszy projekt, nie zawsze znajdą się środki na ciągłe inwestycje w sprzęt. W takiej sytuacji Windows Azure sprawdzi się idealnie ze względu na niskie nakłady finansowe, jakie trzeba ponieść, aby wzmocnić instancję, na której działa aplikacja. Co więcej, w przypadku dużej popularności usługi jest szansa, że nakłady te zostaną pokryte z przychodów, jakie będzie generować nasz projekt. Można wręcz powiedzieć, że jest to sytuacja wymarzona, której wszyscy możemy sobie życzyć.
Coraz bliżej Święta, czyli klęska urodzaju
Z punktu widzenia handlowców okres przedświąteczny to czas ogromnych obrotów i zazwyczaj niemałych zysków. W przypadku sprzedaży w sklepach internetowych jest dokładnie tak samo, ale zastanówmy się, jak to wygląda od strony zaplecza technicznego.
Wykres2. Ilość internautów korzystających ze sklepu bestbuy.com.
Wykres3. Ilość internautów korzystających ze sklepu tigerdirect.com.
Wykresy2 i 3 przedstawiają, jaki procent internautów odwiedzał dwa popularne sklepy internetowe na przestrzeni roku. Jak widać, grudzień to miesiąc, w którym odnotowano znaczący wzrost ilości odwiedzin takich stron. Niestety, taka tendencja wskazuje, że sprzęt, jaki należy kupić do hostowania sklepu, musi być w stanie wytrzymać obciążenie grudniowe, natomiast przez resztę roku jego zasoby są praktycznie niewykorzystane. Jak można się domyśleć, nie jest to dobra sytuacja z punktu widzenia optymalnego wydawania pieniędzy. Rozwiązaniem tego problemu w przypadku Windows Azure jest dynamiczne regulowanie ilości instancji, na których działa nasza aplikacja. Dzięki czemu w okolicach grudnia zwiększamy ich liczbę i jesteśmy przygotowani na zwiększone obciążenie, a po Nowym Roku wracamy do standardowej liczny instancji. Koszty, jakie przeznaczamy na IT, dzięki temu są w pełni pokryte przez przychód generowany ze sprzedaży.
Od okazji do okazji
Od czasu do czasu zdarza się, że chcemy wykonać jakieś obliczenia, które mogą być długotrwałe, ale dają się rozproszyć. Jako przykład niech nam posłuży studio filmowe, które czasami ma jakąś animację do wyrenderowania. Wówczas kilka bardzo wydajnych obliczeniowo serwerów „pracuje w pocie czoła” i zarabia na siebie, za to przez resztę czasu stoi, „nudzi” się i kurzy. Mały problem, jeśli są wyłączone i nie pobierają prądu, ale jest to raczej wyimaginowana sytuacja, a więc możemy przyjąć, że te serwery generują stałe koszty. Ten czas przestoju w obliczeniach to zdecydowane wyrzucanie pieniędzy, i nawet jeśli zyski wypracowane wcześniej w pełni pokrywają późniejsze wydatki, to myślę, że każdy z nas może wymienić przynajmniej kilka przykładów na to, jak lepiej wydać zarobione pieniądze, niż na rachunek za prąd. Po raz kolejny Windows Azure pozwala zoptymalizować takie wydatki. Kiedy potrzebujemy zrobić jakieś obliczenia, umieszczamy naszą aplikację w chmurze na wymaganej ilości instancji i cierpliwie czekamy na wyniki. Po skończonej pracy wyłączamy usługę i nie martwimy się o żadne rachunki. To wielka zaleta platformy cloudcomputingowej Microsoft, że rozliczamy się tylko za wykorzystywane zasoby, a więc tylko wtedy, kiedy nasza aplikacja zarabia na siebie.
A teraz małe wyjaśnienie, skąd ten dość specyficzny przykład ze studiem filmowym. W 2010 roku firma Pixar zaczęła wykorzystywać chmurę Windows Azure do rozproszonego renderowania filmów. Aby wyjaśnić, skąd ta decyzja, przytoczę przykład podany przez Chrisa Forda z tego studia filmowego, jaki podał on w trakcie konferencji PDC10.
„100 minutowy film <<Toy Story 3>> wymaga wyrenderowania 148 000 klatek, a w przypadku wersji 3D 290 000. Rendering jednej takiej klatki zabiera średnio osiem godzin. Mając do dyspozycji jeden procesor, taki film renderowałby się około 272 lat”.
O ile studio wielkości Pixara stać na zbudowanie i utrzymanie farmy serwerów renderujących, aby „nieco” przyspieszyć ten proces, o tyle mniejsze studia nie mogą już sobie na to pozwolić. Dlatego właśnie Pixar uruchomił w chmurze Azure usługę, która potrafi renderować filmy w sposób rozproszony, co znacznie przyspiesza ten proces, a dla mniejszych firm niweluje koszty budowy takiej farmy i jej utrzymania, kiedy nie jest używana.
Nieprzewidywalne skoki obciążenia
Ostatnim z przykładowych scenariuszy, w jakim świetnie sprawdzi się Windows Azure to sytuacja, w której nie jesteśmy przewidzieć, kiedy i jak duże wahania obciążenia nastąpią. Sytuację, w której występują takie trudne do przewidzenia zmiany prezentuje wykres 4.
Wykres4.Zmienne, nieprzewidywalne obciążenie maszyny w czasie.
W takiej sytuacji dobrze sprawdzi się zdolność Windows Azure do automatycznego dostosowywania ilości działających instancji aplikacji do aktualnego obciążenia. Zapewni to utrzymanie liczby używanych maszyn zawsze na optymalnym poziomie i dzięki temu zminimalizowanie ponoszonych wydatków.
Podsumowanie
W tym artykule poznaliśmy typowe scenariusze, w których chmura Windows Azure może ułatwić naszej aplikacji takie działanie, aby zarabiała ona na swoje utrzymanie.
W kolejnym artykule przybliżona zostanie jedna z aplikacji internetowych, która ułatwia zarządzanie chmurą – Azure Connect.