Po co uruchamiać aplikacje w chmurze?

18

Chmura, chmura i chmura – ciągle i wszędzie. Nawet jeśli nie “piszesz na chmurę”, to z chmury prawie na pewno używasz. A może warto zainwestować jednak trochę czasu i poduczyć się, jak można to zjawisko wykorzystać dla własnych aplikacji?

O technologiach “chmurowych” mówi się od bardzo wielu już lat. Jednak to wygląda trochę tak, jak z programowaniem w .NET. Kto nie wskoczył do tej łódki na samym początku, ten może się teraz poczuć… nieco zagubiony. Zdecydowanie możemy zacytować własnych pradziadków, który kiedyś wstawali wraz ze słońcem, ciągali brony czy inne pługi cały dzień, a wieczorem wyprzęgali konia, walili kubek bimbru, padali na wyro i tyle. A teraz przerażeni patrzą na ekran smartfona i szepczą: “kiedyś było prościej“.

Oktawave & Red Hat zapraszają na webinarium: Ansible – stawianie środowiska HA.
Zabezpieczenie WordPressa.

28 lutego w godzinach 10:30 – 11:30

Podczas webinarium pokażemy, jak przygotować playbook uruchamiający zautomatyzowaną instalację serwera WordPress w konfiguracji HA wraz z zaleceniami bezpieczeństwa.
Uruchomione środowisko będzie się składało z dwóch serwerów aplikacyjnych i dwóch bazodanowych.
Do synchronizacji danych użyjemy Lsync i Unison. Ruch będzie balansowany przez load balancer Oktawave. W przygotowanej infrastrukturze wykorzystamy też autoskalowanie wertykalne.

AGENDA
– Konfiguracja serwerów www
– Konfiguracja synchronizacji pomiędzy serwerami www
– Konfiguracja bazy danych pod aplikacje WordPress
– Instalacja WordPress
– Konfiguracja WordPress wraz z zaleceniami bezpieczeństwa
– Dostosowanie konfiguracji iptables

Rejestracja ➡ http://bit.ly/WebinariumAnsibleHA

oktawave

Tak. Było. Było-minęło.

Co daje chmura?

Tak prosto z mostu waląc: kasę. Nie, dostawca chmury nie zapłaci Ci za wybranie jego usług. ALE! Dzięki chmurze to TY będziesz płacić prawdopodobnie mniej. Szczególnie jeśli mowa o początkowych inwestycjach w sprzęt. Nie musisz kupować serwerów na swoje aplikacje. Nie musisz fizycznie chronić tych serwerów. Nie musisz martwić się o ich chłodzenie, wentylację czy drobinki kurzu osiadające na wentylatorach i tylko czyhające, by narobić biedy. Dostajesz kawałek maszyny z całym tym dobrodziejstwem – o te wszystkie rzeczy dba ktoś inny.

Dzięki chmurze zyskujemy prostą skalowalność. Zaczynamy odnosić sukces, użytkowników przybywa? Przesuwamy odpowiednie suwaki i już – nagle nasza aplikacja ma do dyspozycji więcej RAMu, więcej dysku, więcej wszystkiego. Czasami nawet proces ten można zautomatyzować tak, aby środowisko samo wiedziało, kiedy trzeba “dokupić” zasobów i kiedy można je “zwolnić”. Cyber Monday? Święta? Ferie? Walentynki? Dzień Programisty? Nieważne w jaki czas roku celujemy swoim przedsięwzięciem – nie musimy kupować ton żelastwa na zapas, do wykorzystania tylko przez bardzo ograniczony okres.

A jeśli lubimy się pobawić, pouczyć, to także chmura nam dopomoże. Niezmiernie prosto jest stworzyć plac zabaw to eksperymentowania z nowymi technologiami. Nie musimy posiadać mega-wypasionych maszyn deweloperskich za X-naście tysięcy, tracących na wartości szybciej niż nowa fura. Wszystko postawimy sobie w obłokach. Jedyne wymaganie: dostęp do internetu. To nie powinno raczej nastręczać nikomu problemów, prawda?

Dla kogo?

Jeśli po prostu masz blogaska albo wizytówkę firmową i szukasz miejsca w internecie, które je czule przytuli, to… chmura oczywiście da radę. Ale niekoniecznie będzie to idealne rozwiązanie. Dedykowanych hostingów WordPressa (czy innych CMSów) jest cała masa.

Co innego, jeśli faktycznie mówimy o aplikacjach, usługach, serwisach. Tworzysz startup? Chmura jest dla Ciebie idealna. Budujesz system, który może rozrosnąć się w nieprzewidzianych kierunkach (jak chociażby moje parentingowe.pl)? Chmura, chmura, chmura!

Ważna, o czym napomknąłem już wcześniej, jest możliwość powolnego rozbiegania się.

Najpierw powoli, jak żółw ociężale,
Malutka maszyna: dużo nie chcę wcale.
Lecz pragnę mieć spokój i niedrżące ręce,
Gdy sukces zapuka, poprosi o więcej,
Bo gdy się rozpędzę, zostanę gigantem,
Chmurką się nakarmię! Niczym raper blantem

Tworząc aplikację gotową do działania w chmurze – a będzie taka, jeśli ją w chmurze od początku uruchomisz – jesteś gotowy na sukces. To jak z testowaniem: pisząc testy przed napisaniem kodu produkcyjnego siłą rzeczy utworzysz kod testowalny. Czyli: lepszy. Jak wielce smutne musi być uczucie niemocy, gdy powodzenie zabija produkt.

Dwa typy chmury

Do dyspozycji mamy kilka… rodzajów chmury. Dwa najpopularniejsze to:

Platform as a Service (PaaS) – kupujesz środowisko z systemem operacyjnym, frameworkami, runtimami i wszystkim tym, co jest potrzebne Twojej aplikacji do funkcjonowania. “Wrzucasz appkę i śmiga ™”.

Infrastructure as a Service (IaaS) – możesz wszystko. Kupujesz “komputer” i robisz co chcesz. Tyle, że nie musisz go targać ze sklepu do piwnicy na własnych plecach. I nikt Ci go nie ukradnie. Z wolnością jednak otrzymujesz w pakiecie odpowiedzialność: teraz to TY odpowiadasz za instalację, konfigurację i odpowiednie dbanie o swoje środowisko.

Tak naprawdę nie ma “jednego słusznego” podejścia. Wszystko ma swoje zastosowania, a oferta różni się pomiędzy dostawcami usług. Trzeba samemu zastanowić się, czego potrzebujemy. I ewentualnie wykorzystać ogromną elastyczność, jaką dostajemy wraz z chmurą.

Czy warto?

To nawet nie jest odpowiednie pytanie. Pytanie brzmi raczej: “czy już czas?”.

Tak. Trzeba zerknąć w stronę chmury i przygotować się na jej dominację. Pierwsze nieśmiałe kroki już za nami. Chmura jest, zadomowiła się, i żadne wichry jej nie rozwieją. Do nas należy świadome i mądre wykorzystanie oferowanych przez nią możliwości.

Podczas wielu rozmów słyszałem stwierdzenie, że “nie ma się co spieszyć“. Sam od dość dawna już należę do ostrożnych, mniej ryzykujących technologicznie, “nudniejszych” dinozaurów (do czego się zresztą przyznaję w tekście “‘Prawdziwy programista’ w pogoni za nowościami“). Nie piętnuję “niech inni najpierw zobaczą, z czym to się je“. Jako “ex-early-adopter” doceniam rozwagę i podejście “lata miną, zanim będzie sens eksplorowania tej technologii“. To wszystko prawda. Ale wiesz co? Te lata już minęły.

Teraz czas na nas. Trzeba zacząć nadganiać.

Miłego biegu!

Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

18 Comments

  1. Z punktu widzenia przeciętnego biznesowego ludka – jest on (SaaS) najbardziej popularny i daje największe korzyści w określonym czasie. PaaS, IaaS to oferty dla programistów / kadry technicznej.

    • Pełna zgoda! Dlatego właśnie SaaS rośnie, a wraz z nim wyzwania z nim związane (dostęp, kontrola, montorowanie itp.).

      Z drugiej strony raz na jakiś czas pojawia się potrzeba, której nie zaadresuje gotowe rozwiązanie, lub chociażby potrzeba rozszerzenia gotowego pakietu SaaS. I tutaj wchodzi już przewaznie platforma.

      I tak – PaaS to rozwiązanie kierowane do developerów. Dlatego, aby szybciej i łatwiej tworzyli oprogramowanie wspierające biznes.

  2. Problem z chmurą jest taki, że nadal jest droga, jeśli stawiamy ją na cały czas. Chmura ma sens, jak przez krótki czas musimy coś policzyć. Każdy z zasobów, łącznie z czasem, czy bazą jest bowiem kalkulowany. Nie masz nad tym żadnej kontroli, więc pojedynczy dedyk jest lepszy. Masz limit i najwyżej ci aplikacja zacznie przymulać. Jak nie będzie wyrabiać, dopiero się przerzuci na chmurę. Wiesz, że nagle nie oskubią cię do golca. Jeżeli zaś piszesz o poligonie doświadczalnym – mamy teraz kompy na tyle szybkie, że postawienie maszyny wirtualnej, czy trzech maszyn wirtualnych nie stanowi problemu. Baw się puki chcesz, a jak zepsujesz, to przywrócisz snapshot. Logi i błędy w konfiguracji znikają w przypadku ssd w kilka sekund, kilkanaście na zwykłym dysku. I można bawić się od początku, tym razem inaczej. Jak potrzebujesz dostęp z sieci, przekierowujesz na routerze porty i masz. Wszystko u Ciebie w domu. Nie potrzebujesz, po prostu zamykasz system. Nie masz neta? Nie problem, działasz lokalnie. I nie trzeba mnożyć bytów – korzystasz ze swojego kompa na którym sprawdzasz facebooki i klepiesz kody.
    Ale co ja się rozpisuję, przecież tego bloga czytają tylko zarabiający minimum 15k…

    • No właśnie – w szczególności jak ktoś nie zarabia 15k to chmura jest dla niego dobra. Uruchamiasz tyle ile chcesz wtedy kiedy chcesz. Koszty da sie kontrolowac i nikt cie nie oskubie. Ewentualnie oskubiesz się sam jak odpalisz maszynę gigant na tydzień i zapomnisz wyłączyć.

      Kiedyś miałem też takie podejście – maszyny wirtualne na laptopie, w końcu jest szybki itp. ale to jest bez sensu. Nie zrobisz tego tak szybko jak na chmurze jeżeli już mówimy o VMkach i wymaga to od Ciebie większego wysiłku. W szczególności jeżeli chcesz zrobić cos skomplikowanego.

    • Piatkosia,
      Widzę tutaj doszukiwanie się teorii spiskowych :). Nikt nikogo nie skubie. Żeby postawić 3 sensownie działające wirtualki, o których piszesz, to np mój komputer za ponad 4tys jest za słaby. A za 4tys to w chmurze mogę zdziałać naprawdę dużo.

      Dodatkowo piszesz “wszystko u Ciebie w domu” – ja nie chcę mieć niczego “u mnie w domu”.

      Kwestia podejścia o potrzeb, ale stawiane przez Ciebie wymagania są jakieś takie trochę oderwane od dzisiejszej rzeczywistości moim zdaniem :).

  3. Z punktem #1 od razu się zgodzę i nie zgodzę :). Zgodzę się – tak, kasa. Nie zgodzę się – chmura nie oznacza, że od razu będzie taniej.

    Uwaga tłumaczę!

    Większość ludzi nadal kojarzy chmurę z maszynami wirtualnymi. To jedno z podstawowych zastosowań obecnie ale to skojarzenie to błąd. Maszyny wirtualne to tylko przejście do PaaS. W tym wypadku jeżeli ktoś porówna koszt maszyn wirtualnych z jakimś dedykowanym serwerem – chmura wyjdzie drożej. i tak ma być. Nie chodzi o to, że ma być taniej. Ma być bardziej elastycznie. Dedykowany serwer tak czy inaczej musisz utrzymywać, zarządzać nim itp. Jeżeli dojdziesz do wniosku, że nie potrzebujesz mocy lub potrzebujesz jej więcej -> AWS, Amazon, Google, po prostu zmień opcję. Dedykowany serwer – nie tak łatwo.

    Można obniżyć koszty VM i to znacznie – kwestia odpowiedniego zarządzania. My w firmie przeszliśmy z Hetznera na Azure i koszt jest porównywalny w tej chwili.

    Z punktu widzenia developerów VM nie powinny istnieć. To gdzie bym się skupiał w tej chwili to PaaS, i tutaj znowu – w tekście zrobiłeś duże uproszczenie. PaaS rozumiany jako środowisko uruchomienia konkretnej aplikacjii albo runtime to też duże ograniczenie. Tak naprawdę liczy się ta masa usługi API, które te platformy udostępniają. Sztuką jest poznanie ich, przynajmniej do poziomu “istnieją, wiem do czego służą” i jak je zastosować we własnych aplikacjach.

    Teraz będzie buzzword ale nie da się go uniknąć “serverless” -> jesteś dev, lepiej żebyś wiedział jak i do czego można użyć Azure FUnctions albo AWS Lambda. Tego typu usługi + API i usługi udostępniane w modelu PaaS będą przyszłością. O VM już niedługo (no dobra, nie tak szybko) zapomnimy.

    • “Bardziej elastycznie” – dokładnie, i to podkreśla mój piękny poemat ;).

      Pozostałe argumenty: bardzo git, same wartościowe treści. Choć usługi API… czy to jeszcze PaaS czy już Saas? :).

      • Rozpatrywanie czy coś jest SaaS czy PasS to trochę jak post-industrial-heavy-core-rock-etno-punk-grind-core-trash-pop-fusion-regge.

        API jako takie to przeważnie część większej układanki – ja patrzę na to tak, jest usługa, jest ona częścią platformy, nie musze się zastanawiać jak ona działa. Usługa sama w sobie nic nie robi, dopóki nie zaprzęgnę jej do mojej aplikacji. Bez aplikacji ma ona tylko pewne funkcje, które w zasadzie pozostaja martwe. Potrafi przetworzyć to, potrafi przetworzyć tamto. APlikacja moja tchnie w to życie, ale dzieki temu, że te klocki już istnieją mogę pisać ją szybciej \ łatwiej \ realizować coś, co byłoby strasznie trudno mi zbudować samemu. Płacę za to, że mam dostępne te klocki i za ich wykorzystanie. To jest PaaS.

        SaaS – gotowy kawałek softu, który robi coś, to coś nie wymaga odemnie własnej infrastruktury, myślenia o tym itp (chociaż to czasami jest różnie). Płacę za funkcjonalność dostarczaną end-to-end przez ten soft. To jest SaaS.

  4. Brakuje kwestii prawnych np. ochrony danych osobowych, przekazanie odpowiedzialności podmiotom trzecim, lokalizacja przetwarzania danych (UE) itp.
    Jeśli zbiera się jakieś dane osobowe (a kto nie zbiera?) to warto poświecić nieco czasu na przekminkę.
    Gdzieś widziałem info, ze rozwiązania MS są zgodne z dyrektyw UE dotyczącą ochrony danych osobowych tylko czy urzędnik podczas kontroli w to uwierzy?

    • Nie ma powodu NIE uwierzyć bo na wszystko sa stosowne papiery i rozwiązania. W razie potrzeby w Microsoft służymy pomocą w tych kwestiach :)

    • Jacek,
      Bardzo sensowne uwagi – nawet poniekąd trochę w tym temacie pisałem ostatnio u nas na blogu: http://predica.pl/blog/google-vs-microsoft/.

      Kazdy z dostawców chmury dba o to, żeby te uwagi jakoś zaadresowac – stąd centra dnaych w niemczech, stąd certyfikacje w kolejnych krajach i na zgodność z kolejnymi normami i regulacjami.

      Teraz jeżeli masz wymóg na spełnienie jakiejś regulacji, masz na to dokument potwierdzający, że dany dostawca to spełnia i taki urzędznik przychodzi i mówi, że on tego nie uznaje:
      (1) koleś ma problem ze swoim ego :)
      (2) I tak go nic nie przekona :)

  5. Chmura to przyszłość. Kto wcześniej w nią nie zainwestuje ten potem będzie liczyć straty. Ilość zalet jaka płynie ze współpracy z chmurą jest ogromna. Super artykuł.