Dlaczego inwestuję w chmurę?
Można naprawdę długo pisać na temat przewag cloud computingu nad on-premises. W szczególności o tym że:
- chmura jest elastyczna i nie jesteśmy więźniami własnej serwerowni,
- umożliwia rozbudowane scenariusze disaster recovery,
- nie trzeba zatrudniać personelu tylko po to, aby dbał o warstwę sprzętową a w przypadku usług PaaS również o aktualizację systemów operacyjnych czy tworzenie backup-ów.
- daje możliwość tworzenia i zdalnego zarządzania zasobami na całym świecie.
Myślę, że już o tym czytałeś w pismach branżowych lub wysłuchałeś na konferencjach, dlatego tym razem opowiem Ci o moich zebranych doświadczeniach odpowiadając na pytanie: dlaczego inwestuję w chmurę tak dużo mojego czasu i energii?
Imagine Cup
W kwietniu 2017 roku miałem przyjemność bycia jurorem w prestiżowym konkursie studenckim Imagine Cup organizowanym przez Microsoft. Świetna przygoda!
Przez dwa dni obejrzeliśmy około 20 zespołów w kategorii Innowacje. Imagine Cup nie jest zwykłym konkursem na najlepszą prace studencką. To jest konkurs startupów, w którym oprócz pomysłu bardzo często mamy gotowy już produkt (lub kolejną jego iterację) zaprezentowany w profesjonalny sposób, przed potencjalnymi inwestorami.
Jeżeli do tego dorzucimy niesamowitą energię zespołów, pomysły, upór i determinację, mamy obraz przyszłych wizjonerów, przedsiębiorców, twórców nowych usług.
To co łączyło wszystkie zespoły i było naturalnie uwzględnione w biznes planie to fakt, że budowanie startupu nie zaczyna się od budowania własnej serwerowni.
Zbudujmy usługę! Umieśćmy ją w chmurze! Działajmy globalnie, bo startup ograniczony tylko do jednego kraju jest bardzo trudny w utrzymaniu rentowności. Płaćmy za infrastrukturę w chmurzę, w której koszt jest łatwy do przewidzenia.
Najważniejsze: kiedy wzrastają koszty oznacza to również, że coraz więcej użytkowników korzysta z naszego rozwiązania a co za tym idzie wzrastają zyski, które z nawiązką pokrywają koszty.
Co więcej, globalny biznes oznacza możliwość ciągłej ekspansji a to idealnie wpasowuje się w scenariusze usług chmurowych. Takie jest właśnie myślenie startupowców.
A co z biznesami, które już funkcjonują w tradycyjnym modelu on-premises?
Przy okazji rozmów z przedstawicielami strony biznesowej z różnych branż przewija się myśl:
„Jesteśmy firmą, która świetnie się zna na swoim biznesie, ale nie chcemy być jednocześnie ekspertami w naszej branży i w utrzymywaniu infrastruktury IT. Naszą energię chcemy w 100% skupić na tym na czym się znamy. Chcemy wyjść poza lokalny rynek, wdrażać usługi szybciej, elastycznie reagować na zmiany, dostosowywać infrastrukturę do aktualnego obciążenia i mieć gwarancje (SLA), że usługi będą działać bez zakłóceń.”
Co więcej, firmy te mają świadomość, że przejście do chmury to nie tylko lift and shift na poziomie maszyn wirtualnych (IaaS), ale również konieczna transformacja do poziomu usług (PaaS, SaaS).
Pytanie jakie zadają sobie dzisiaj CTO na całym świecie nie brzmi „Czy chmura jest dla mnie?”, tylko: „Czy już jestem gotowy na chmurę?”.
Chmura? To nie dla mnie!
Istnieją przypadki, w których nie zdecyduję się na użycie chmury publicznej. Jakie? Chociażby scenariusz, w którym część infrastruktury jest w on-premises a opóźnienia są krytycznie ważne lub wtedy, gdy zwyczajnie ogranicza nas szybkość transferu.
A gdyby tak można było zainstalować Azure we własnej serwerowni? Wykorzystywać usługi PaaS, SaaS hostowane lokalnie? Przetwarzać dane lokalnie a do tego mieć pełną kontrolę nad sprzętem, wersją, fizycznym bezpieczeństwem danych. Dodatkowo, dysponować identycznym sposobem produkcji oprogramowania, bez względu na to czy finalnie będzie ono umieszczone w chmurze publicznej, we własnym centrum danych czy u lokalnego partnera. Wszystko to jest możliwe do zrealizowania dzięki Azure Stack, który już teraz staje się rzeczywistością.
Microsoft proponuje, aby Azure był pierwszym wyborem programistów przy rozwiązywaniu każdego problemu, niezależnie czy działamy lokalnie we własnej serwerowni czy publicznie na współdzielonej infrastrukturze. Takie podejście znacząco uprości pracę programistom zwłaszcza w odpowiedzi na wymagania, aby rozwiązanie było dostępne zarówno w środowisku on-premises jak i Azure.
Azure dla developmentu
W przeszłości pozyskiwanie nowych zasobów do celów developerskich, testowych bądź produkcyjnych odbywało się podobną ścieżką: zgłoszenie zapotrzebowania (wraz z estymacją wielkości instancji) a następnie odczekanie na przydzielenie.
Nierzadko jednak sprzęt nie był dostępny od ręki, firma musiała go zakupić bądź zaopatrzyć się w licencję, co jeszcze bardziej wydłużało czas oczekiwania. Niekiedy w międzyczasie zdążyły już zmienić się wymagania. Udręka!
Aktualnie nie mam tego problemu, bo wszystkie komponenty potrzebne podczas codziennej pracy tworzę w ramach subskrypcji Azure dostępnej w pakiecie MSDN. Zaczynając nowy projekt mogę stworzyć zestaw potrzebnych usług, zapisać je formie szablonu ARM i udostępnić zespołowi.
Skalowalny PaaS
Niewątpliwie to, co przekonało mnie już przy pierwszym projekcie do Azure to wysokoskalowalne usługi PaaS dostępne jedynie w chmurze, takie jak: Storage Account, Service Bus Queue, Event Hub, Application Insights, Cosmos DB. Owszem narzędzia te nie są nowością w świecie IT, ale cała siła tkwi w skali. W on-premises sam muszę zapewnić SLA, wydajność sieci, łącza internetowe a nawet odporność na ataki typu DDoS itp. Co więcej od razu muszę wyskalować usługę na odpowiedni poziom.
W świecie chmur, usługi z definicji są projektowane do pracy w ekstremalnie trudnych warunkach z możliwością automatycznego skalowania w zależności od potrzeb. Aby przeprowadzić szybkie PoC skupiam się jedynie na zaimplementowaniu logiki przetwarzania a kwestie wydajności pozostawiam chmurze. Za całość płacę tyle ile zużyłem.
Szybciej, mocniej, wyżej
Cloud computing otwiera możliwości tworzenia globalnych, skalowalnych rozwiązań w sposób szybki, elastyczny i tani. Przyjazny zarówno dla programisty jak i dla biznesu, który z definicji jest globalny z olbrzymia ilością danych. Dostawcy usług chmurowych wkładają niesamowicie dużo energii w rozwój ich oferty co przekłada się na to, że my programiści dostajemy narzędzia dzięki którym jesteśmy w stanie dostarczyć szybciej dane rozwiązanie, a co najważniejsze realizujemy z łatwością projekty, które jeszcze kilka lat temu wydawał się poza naszym zasięgiem, zarezerwowane jedynie dla największych graczy. Dlatego właśnie to mnie motywuje do tego aby przekraczać kolejne granicę, robić kolejne systemy dla milionów, znaleźć odpowiedź na kolejny problem, którego rozwiązanie przypomina zabawę klockami Lego.
