ML Engineer @ Expedia Group
The writer is smart, but don't just like, take their word for it. #DoYourOwnResearch before making any investment decisions or decisions regarding your health or security. (Do not regard any of this content as professional investment advice, or health advice)
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
Jeśli trafiłeś na tę stronę myśląc, że szybko się wzbogacisz dzięki jakiemuś schematowi szybkiego wzbogacenia się, przykro mi, że cię rozczaruję. Ten artykuł będzie raczej opowiadał o tym, jak zmniejszyć rachunki za usługi w chmurze o 1 milion dolarów. Dzięki temu wygenerujesz dodatkowy milion dolarów przychodu — który możesz wydać, kupując mój kurs online na temat tego, jak szybko się wzbogacić dzięki AWS ( link do kursu tutaj ).
Koszty chmury są często pomijane i nieuwzględniane na początku projektów firm. Badanie HashiCorp z 2021 r. wykazało, że prawie 40% firm przekroczyło wydatki na koszty chmury w 2021 r. [ 1 ]. W 2023 r. prawie wszystkie firmy (94%) przyznały, że marnują pieniądze na chmurę [ 1 ], a co najmniej 30% kosztów chmury zostało zmarnowane [ 2 ]. Wydatki na chmurę wyniosły prawie 500 miliardów dolarów w 2022 r. — mówimy zatem o 150 miliardach dolarów zmarnowanych rocznie!!
Nie dość, że jest to problem utraconych przychodów, to jeszcze złe praktyki w zakresie zrównoważonego rozwoju. 150 miliardów dolarów zmarnowanej energii!
Te ustalenia dotyczą dużych przedsiębiorstw, jak i mniejszych, od wysokiego poziomu dojrzałości chmury do niskiego poziomu dojrzałości chmury. Odnosi się to do AWS, ale te same zasady można zastosować do każdego innego dostawcy chmury. Tak więc, jeśli jakakolwiek część Twojej pracy jest w chmurze, to ten artykuł jest dla Ciebie.
Mówię to z perspektywy inżyniera danych, ale te same wnioski można odnieść do innych praktyk inżynierii oprogramowania.
Zanurzmy się w temat.
Tego rodzaju rachunki za usługi w chmurze są zazwyczaj przeznaczone dla bardzo dużych przedsiębiorstw, które działają globalnie i mają miliony klientów.
Aby dać ci wyobrażenie, rachunek za chmurę w wysokości 1 miliona dolarów może wynikać z przetwarzania zadania Spark ETL ~1,5 TB na godzinę 24x7 przez 365 dni w roku. Innym przykładem może być aplikacja, która otrzymuje miliardy żądań dziennie z wielu lokalizacji na świecie.
W dużym przedsiębiorstwie istnieją setki aplikacji tej wielkości — co skutkuje kontraktami wartymi miliardy dolarów z dostawcami usług w chmurze. Na przykład Airbnb zobowiązało się wydać 1,2 miliarda dolarów na zasoby w chmurze w ciągu pięciu lat pod koniec 2019 r. [3 ].
W Expedia obniżyliśmy koszty przetwarzania danych ETL, które kosztowały 1,1 miliona dolarów rocznie, do zaledwie 100 000 dolarów rocznie, wdrażając praktyki optymalizacji. To 91% redukcji kosztów!!
Nie wszystkie firmy mają aplikacje o tak dużych rozmiarach, ale wyobraź sobie obniżenie kosztów chmury o 90% w przypadku pojedynczej aplikacji lub całej firmy.
Przygotuj listę najdroższych aplikacji i poddaj analizie założenia projektowe .
Wszystkie te pytania sprowadzają się do najważniejszego pytania: jak aplikacja będzie używana? Jaka jest wartość biznesowa jej istnienia? W jaki sposób aplikacja pomaga nam osiągnąć dany cel?
Oczywiście, wszystkie te odpowiedzi są bardzo często niejasne na początku projektu; ale właśnie dlatego projektowanie powinno być zawsze procesem iteracyjnym — pozwalającym na wprowadzanie zmian tak płynnie, jak to możliwe. Inżynierowie powinni przyjąć ewolucję i zmiany, dostosowując rozwój aplikacji do wpływu.
Drugi krok polega na wyposażeniu aplikacji w odpowiednie zasoby i dostosowaniu jej do właściwej infrastruktury.
Jako inżynier bądź świadomy tego, jak obliczane są koszty chmury. Na przykład AWS zapewnia wystąpienia spot, w których możesz licytować cenę klastra — jest to szczególnie przydatne, jeśli masz odporne na błędy i elastyczne aplikacje. Korzystaj z nich, jeśli możesz — AWS twierdzi, że koszty można obniżyć nawet o 90% [ 4 ].
Oto kilka innych kwestii, które warto wziąć pod uwagę:
Korzystanie z instancji AWS Graviton ma niewiele lub wcale wad. AWS zainwestował dużo w tworzenie najbardziej opłacalnych procesorów. Możesz uzyskać do 40% redukcji wydatków na chmurę, po prostu zmieniając procesor oparty na architekturze Intel na procesor oparty na architekturze ARM [ 10 ].
Jedynym zastrzeżeniem jest to, że Twoja aplikacja musi być zgodna z procesorami ARM, na których działa Graviton. Jeśli masz do czynienia z usługą zarządzaną, taką jak RDS lub OpenSearch, nie ma żadnych komplikacji w przełączaniu — AWS zajmuje się podstawowym systemem operacyjnym i zgodnością aplikacji. Jeśli budujesz własną aplikację, może być konieczne ponowne skompilowanie pakietu w zależności od używanego języka — Java i inne języki nie wymagają żadnych zmian, podczas gdy Python wymaga pewnej uwagi.
Na koniec nie zapomnij monitorować kosztów pod kątem nieoczekiwanych szczytów i niespodzianek. Koszt w dniu 0 Twojej aplikacji będzie inny niż koszt w dniu 170. Upewnij się, że śledzisz zmiany i rozumiesz, dlaczego zmiana następuje: czy to kumulacja kosztów pamięci masowej s3, czy też jednorazowy skok?
Skonfiguruj niezbędne alerty i instrukcje operacyjne !
Co ważne, wdróż tagi alokacji kosztów, aby śledzić wydatki według działu, projektu lub środowiska. Unikaj ryzyka tworzenia bagna danych, w którym koszt jest niemożliwy do wyśledzenia lub wymaga długiej podróży przez różne systemy rejestrowania. Powrót do dowolnego kosztu aplikacji powinien być szybki i prosty.
Gdziekolwiek pracujesz, trudno jest zrównoważyć dostarczanie nowych funkcji z optymalizacją obecnych. Kto nie był pod presją dostarczania nowych dziwacznych funkcji z prędkością światła.
Niemniej jednak zarówno inżynierowie, jak i menedżerowie muszą podejmować świadome i proaktywne decyzje dotyczące bieżących projektów, skutecznie zarządzając ryzykiem i szansami.