Opuszczanie chmury

Dec 23 2022
Dużo się teraz mówi o tym, że chmura jest passe i po prostu drogim sposobem wysyłania ludzi w kosmos. Post na blogu Davida Heinemeira Hanssona opublikowany jakiś czas temu o tym, jak uważa, że ​​chmura to w dużej mierze nowe warstwy farby na starych rzeczach i dlatego chce ją natychmiast zostawić.

Dużo się teraz mówi o tym, że chmura jest passe i po prostu drogim sposobem wysyłania ludzi w kosmos. Post na blogu Davida Heinemeira Hanssona opublikowany jakiś czas temu o tym, jak uważa, że ​​chmura to w dużej mierze nowe warstwy farby na starych rzeczach i dlatego chce ją natychmiast zostawić. Oto mój komentarz jako praktyka, który spędził czas w chmurze i poza nią w dużych i małych firmach.

Mam ten obraz stworzony przez DALL-E-2

Teraz David nie jest lekki. To on stoi za Basecampem, z którego korzystają miliony ludzi. Jest także twórcą szeroko stosowanej platformy Ruby on Rails, z której korzystają dziesiątki milionów ludzi. Jest autorem bestsellerów. Jest nawet prawdziwym, certyfikowanym kierowcą wyścigowym. Nigdy nie napisałem dużego projektu open source i jeżdżę tylko na rowerach po torach wyścigowych, więc powiedzmy sobie jasno – strzelam do gigantów. Moja jedyna obrona — zrobiłem niektóre z tych rzeczy na wszelkiego rodzaju skalę. Raz urodziłem się w chmurze, spędziłem czas wyłącznie na ziemi i kilka razy byłem tam iz powrotem, i mam nadzieję, że daje mi to widok warty obejrzenia.

Podstawowy argument Daviego, że nie należy wynajmować, jeśli można kupić, jest słuszny — ale tylko w pewnych okolicznościach. Sam Dawid wskazuje na dwa z nich; nowa firma, która nie ma jeszcze klientów lub firma o ugruntowanej pozycji z bardzo niestabilnym wzrostem, w której według niego chmura jest lepsza. Jednak jego argumentem jest to, że są to TYLKO dwa przypadki, w których chmura jest lepsza, w których, jak sądzę, potyka się o swój samochód wyścigowy.

Najpierw zdobądźmy trochę tła. David — trzeba zrozumieć jego punkt widzenia. Firma 37Signals to mała firma — 7,9 mln USD przychodów i około 95 pracowników. Ma około 14 milionów użytkowników miesięcznie przez około 150 000 płatnych klientów. Jest to dochodowa, stale rozwijająca się firma, która nie jest finansowana z funduszy VC i, w przeciwieństwie do większości innych firm technologicznych, ceni powolny zyskowny wzrost zamiast szybkiego skalowania. Jest to coś, o czym wielokrotnie rozmawiali — ich ideałem jest lokalny sklep spożywczy, a nie Slack czy NetFlix.

To sprawia, że ​​37Signals jest dość odstające. Z tego powodu to, co działa dla nich, nie zawsze jest tym, co działa dla innych, dlatego potrzebujemy więcej niuansów.

Skalowanie bez chmury

Artykuł mówi, że Basecamp już obsługuje dużą i złożoną usługę, ale to nie do końca prawda. O ile mogę wywnioskować z własnej strony Basecamp i z googlowania innych źródeł, firma ma 8-10 mln odwiedzających dziennie i 130 000 kont. To nie jest bardzo duże; nawet RBL Bank, w którym obecnie pracuję, odwiedza miesięcznie około 7–8 mln. Co więcej, Basecamp nie ma transakcji w czasie rzeczywistym, ma stosunkowo proste przetwarzanie zaplecza i znacznie łatwiejsze wymagania bezpieczeństwa.

Sam David mówi: „Mamy model biznesowy, który jest niesamowicie kompatybilny z posiadaniem sprzętu i spisywaniem go na straty przez wiele lat. Trajektorie wzrostu, które są w większości przewidywalne. Doświadczony personel, który równie dobrze mógłby wykorzystać swoje talenty, obsługując nasze własne maszyny”

Ta różnica jest kluczowa. Obciążenia Basecamp są prawdopodobnie zarządzane przez garstkę serwerów, w porównaniu z ponad 3000 serwerów dla RBL Bank obsługującego ponad 40 linii biznesowych. Obsługa pełnej infrastruktury z setkami szaf i tysiącami serwerów, nie wspominając o stosach routerów i przełączników. I cała ta potrzeba wsparcia 24x7. Czy garstka ludzi sobie z tym poradzi?

W przypadku większości firmowych dyrektorów ds. technicznych odpowiedź brzmi od razu „nie”. Tak wiele sprzętu zazwyczaj się czaruje. Jest zespół serwerowy z ekspertami od Linuksa, zespół ds. sieci z ekspertami Cisco, zespół ds. pamięci masowych z ekspertami EMC, zespół ds. wirtualizacji z ekspertami VMWare, zespół ds. baz danych z ekspertami Oracle i tak dalej. Mnóstwo ekspertów, wielu przełożonych, mnóstwo złożoności, z którymi trzeba się zmierzyć.

Jednak zgadzam się z Davidem; to nie jest dzisiejsza rzeczywistość.

Dzisiejsza infrastruktura, nawet lokalna, jest zwykle już zwirtualizowana i istnieją dojrzałe narzędzia do zarządzania każdym aspektem w sposób w dużej mierze zautomatyzowany, dzięki czemu mały (niespecjalnie doświadczony) zespół może zrobić — z niewielką pomocą producentów OEM — wszystko, co kiedyś wymagało armii. Pamiętaj, że był czas, kiedy kserokopiarka wymagała certyfikowanego operatora — dziś małe dziecko może nacisnąć przycisk i uzyskać doskonałe odpowiedzi, ponieważ technologia poszła do przodu, interfejsy zostały uproszczone, a liczba ruchomych części zredukowana. Coś podobnego stało się z serwerami i sieciami; większość CIO po prostu tego nie zauważyła. Wszystkie proste i zintegrowane funkcje zarządzania, które są obecnie dostępne w chmurze, są również łatwo (i niezawodnie) dostępne lokalnie.

Amazon i Google sami udostępnili wiele narzędzi, których używają, a VMWares, Nuntanix i Dell z całego świata skopiowali i dojrzeli. Dzisiejsze hiperskalary osiągają stosunek liczby serwerów do liczby osób rzędu 10 000 — co oznacza, że ​​jedna osoba zarządza 10 000 serwerów. W nieco mniejszej skali firmy nadal łatwo jest zarządzać kilkoma tysiącami serwerów z zaledwie drużyną krykieta. Pamiętaj, że nie mówimy o obsłudze kodu aplikacji — to ten sam wysiłek w chmurze lub lokalnie — ale raczej o zarządzaniu bazową infrastrukturą sieciową do przechowywania danych obliczeniowych.

Nie ma magii. Uproszczona, zwirtualizowana konfiguracja sprzętowa (wszystko jest tego samego rodzaju) i wszechstronnie wykwalifikowani ludzie oraz doskonałe narzędzia do zarządzania — wszystko to jest dostępne dla większości firm, jeśli tylko spróbują. NSE robi to w IFSC Gift City, robi to Zerodha, robią to startupy, ale firmy o ugruntowanej pozycji mają trudności z wyjściem z istniejących paradygmatów, aby robić to w ten sposób.

Jest jednak zastrzeżenie (i może być duże). Twój stos sprzętowy musi być jednolity i stosunkowo nowy, aby to zadziałało (co, nawiasem mówiąc, jest rzeczywiście rzeczywistością. Większość narzędzi i umiejętności staje się skomplikowana lub niemożliwa, chyba że zdecydujesz się na uproszczone, zmodernizowane stosy. Trochę tak, jak linie Southwest Airlines mające tylko jeden rodzaj samolotu, który jest kluczowym elementem strategii stosowanej przez Southwest, aby dosłownie wzbić się w chmury.

Skoki bez chmury

Twierdzenie Davida, że ​​firmy są albo stabilne, albo niestabilne, jest zbyt proste. Każda złożona jednostka biznesowa zawsze ma wiele linii biznesowych i wiele produktów — a zatem mieszankę stabilności i zmienności. Nowe firmy mogą rozpocząć działalność na małą skalę i szybko skalować działalność lub rozpocząć działalność na dużą skalę i jeszcze szybciej skalować działalność, lub też osiągać stały wzrost w obu skalach. Co więcej, trudno przewidzieć kolczastość w przyszłości.

Basecamp ma luksus zarówno stałego wzrostu, jak i przewidywalności przyszłej kolczastości. Po latach w tej samej branży z tym samym produktem jest mało prawdopodobne, aby doszło do nieoczekiwanych skoków. Nie dotyczy to najbardziej złożonych biznesów, w których ciągłe wprowadzanie nowych produktów i wprowadzanie na rynek sprawia, że ​​sytuacja staje się bardziej niestabilna. Jednak nawet tutaj sam David mówi o tym, jak wielkim dobrodziejstwem była chmura, kiedy uruchomili Hey — 300 000 użytkowników w ciągu godzin zamiast przewidywanych 30 000 w ciągu miesięcy.

Czy można to osiągnąć bez chmury? Tutaj odpowiedź brzmi „nie” (ale z kilkoma klauzulami wyjścia). Skalowanie na miejscu dla pojedynczej firmy zasadniczo oznacza pozostawienie niewykorzystanej mocy produkcyjnej; nie ma innego sposobu na uzyskanie pojemności na żądanie. Część obciążeń można złagodzić poprzez dynamiczną realokację zasobów z bezczynnych aplikacji do zajętych (zdolność, którą ma obecnie większość nowoczesnych stosów lokalnych), ale pojemność lokalna jest skończona i ostatecznie stosunkowo ograniczona.

To, co można zrobić dzisiaj, to wybuch w chmurze. Nawet tradycyjne firmy zaczęły to robić w ograniczony sposób, wykonując masowe zadania zarządzania danymi w chmurze zamiast kupować do tego sprzęt. Oracle i wielu innych producentów OEM sprzętu zapewnia sposób na płatną ekspansję do chmury, gdy wykraczasz poza podstawowe obciążenie lokalne — RBL Bank świetnie to wykorzystał podczas pierwszych kilku dni aktualizacji podstawowej bankowości, kiedy wiele miejsc pracy traciło znacznie więcej mocy obliczeniowej, gdy optymalizacja była włączona. Wszystkie aplikacje tego nie obsługują, ale w miarę jak aplikacje będą umieszczane w kontenerach, będzie to w coraz większym stopniu normą.

Oczywiście, jeśli jesteś w trybie hiperrozrostu, cała ta wybuchowość nie pomoże; wolisz pozostać w chmurze.

Błyszczące nowe warstwy farby

David spędza dużo czasu na rozmowach o tym, jak ludzie dają się nabrać na magię AWS. Wydaje się to zaprzeczać faktowi, że firmy, które są bardzo zaawansowane technologicznie (takie jak Capital One, Nasdaq, Slack czy Netflix) nadal korzystają z chmury i nadal się do niej angażują. Netflix wydaje obecnie około 12 milionów dolarów miesięcznie i publicznie zobowiązał się do trzykrotnego zwiększenia tej liczby do 2025 roku. Slack zobowiązał się wydać 400 milionów dolarów. Jest mało prawdopodobne, aby te firmy nie dokonały obliczeń lub były olśnione nowymi warstwami farby.

Co wie Netflix, czego nie wie Basecamp. Nic tak naprawdę, to tylko różnica punktów widzenia. Cokolwiek robisz w chmurze, możesz robić lokalnie i nie jest to tak trudne ani nie wymaga dużej liczby ludzi, jak kiedyś — ale wymaga więcej pracy niż robienie tego w chmurze. Basecamp stawia na pierwszym miejscu oszczędności kosztów i jest skłonny zatrudnić kilka dodatkowych osób do zarządzania usługą. Capital One, który jest znacznie większy, a także bardziej złożony, prawdopodobnie przedkłada inne zadania nad oszczędności kosztów chmury; mogą na przykład zdecydować się na oddelegowanie ludzi do rozwoju produktu zamiast zarządzania infrastrukturą. Jest też kwestia skali — rozwiń się do setek tysięcy serwerów i nie jest to już kilka narzędzi open source i pewna automatyzacja.

A potem są usługi. Chmura może oferować wiele usług w pełni wstępnie opracowanych; po prostu skorzystaj z usługi i nie martw się ani o aplikację, ani o infrastrukturę. Analityka, logowanie, baza danych, mobilny backend, obiektowa pamięć masowa, bezserwerowe udostępnianie sieci, przesyłanie wiadomości - wszystko to jest dostępne na żądanie i z wyjątkową niezawodnością. Oczywiście są płatne, ale nawet ludzie, którzy posiadają samochody i domy, wynajmują Hertz i Marriott. Sztuczka polega na tym, aby używać go odpowiednio i mądrze oraz wiedzieć, kiedy opuścić wypożyczalnię.

Streszczenie

Adopcja chmury to wiele rzeczy, w tym koszt. Firmy, które potrzebują elastyczności, muszą trzymać stopę w chmurze. Zajmowanie się sprawami drugorzędnymi za pomocą umiejętności drugorzędnych ostatecznie rozsadza siłę roboczą organizacji. Chmura nie jest srebrną kulą — to jeszcze jeden potężniejszy wybór w arsenale broni. Czasy, w których IAAS był celem, już dawno minęły. Przenieś się do chmury tylko wtedy, gdy jesteś gotowy, aby być natywnym w chmurze — konteneryzacja, DevOps, skalowanie w poziomie itp.

Kluczowe lekcje:

  • Nie umieszczaj ślepo rzeczy w chmurze. Nieustannie rozważaj — przy każdej premierze produktu — czy jesteś bardziej Basecampem, czy raczej Netflixem. Nowe aplikacje lub wysoce niestabilne aplikacje są oczywistymi kandydatami, ale są też inni. A rzeczy się zmieniają, przeglądaj to okresowo, aby zobaczyć, gdzie co przenieść.
  • Nie martw się o to, że nie będziesz w stanie zatrudnić lub utrzymać lokalnych umiejętności. Nie potrzebujesz już tych armii ekspertów, więc możesz szkolić całą siłę roboczą znacznie szerzej i częściej. DevOps pochłania większość Twoich zadań eksperckich (wymaga znaczącej zmiany kulturowej).
  • Oczyść i uprość swój stos. Większość lokalnych złożoności i kosztów wynika z zakupu wielu wariantów, dostawców i wersji. — Bądź na południowym zachodzie
  • Przenieś się do domu, aby uzyskać najdroższe bity — w AWS dzisiaj jest to RDS (zarządzane bazy danych Postgres), więc zdecydowanie sugerowałbym odejście od tego. Zbuduj wewnętrzne umiejętności zarządzania Postgres i przestań bać się baz danych.
  • Czasy, w których IAAS był celem, już dawno minęły. Przenieś się do chmury tylko wtedy, gdy jesteś gotowy, aby być natywnym w chmurze — konteneryzacja, DevOps, skalowanie w poziomie itp. Tam, gdzie ma to sens, wykorzystaj dodatkową wartość dodaną, którą chmura oferuje za darmo, na przykład znacznie lepsze monitorowanie, automatyczne skalowanie AI Operations, znacznie dokładniejsza kontrola kosztów (Netflix zrobił tutaj niesamowite rzeczy). Jeśli nie jesteś gotowy, aby to wszystko zrobić, wymień CIO zamiast infrastruktury.