Jak najlepiej wykorzystać bezpłatną warstwę Google Cloud

Branża przetwarzania w chmurze uwielbia rozdawać bezpłatne próbki, a Google nie różni się pod tym względem od Amazon czy Microsoft. Firmy wiedzą, że jeśli dasz klientom swobodny smak, wrócą, gdy nadejdzie pora na posiłek.

Google oferuje dwa rodzaje bezpłatnych. Nowi klienci otrzymują 300 USD do wydania na dowolne maszyny lub usługi rozmieszczone w 24 „regionach chmurowych”, 73 „strefach” i 144 „lokalizacjach brzegowych sieci”. Pieniądze działają praktycznie wszędzie w chmurze Google, od surowej mocy obliczeniowej po dowolny z kilkudziesięciu różnych produktów, takich jak bazy danych lub usługi mapowe.

Ale nawet gdy te darmowe pieniądze się skończą, darmowe prezenty są kontynuowane. Istnieją 24 różne produkty, które oferują ciągłe bezpłatne próbki, które są rozliczane jako „zawsze bezpłatne”. Nawet jeśli jesteś klientem od lat, nadal możesz eksperymentować. Oczywiście Google dodaje zastrzeżenie, że słowo „zawsze” w tej hojnej obietnicy jest „podlega zmianom”. Ale do tego dnia baza danych BigQuery będzie odpowiadać na jeden terabajt zapytań każdego miesiąca, a funkcja AutoML Translation zmieni 500 000 znaków z jednego języka na inny.

Niektórzy programiści wykorzystują darmowy poziom do tego, co ma być: możliwość eksploracji bez błagania szefa i szefa szefa o budżet. Inni pracują nad pobocznym zgiełkiem lub stroną internetową dla dzieci z sąsiedztwa. Gdy obciążenie jest małe, łatwo jest wprowadzać innowacje bez konieczności płacenia miesięcznego rachunku.

Niektórzy programiści przyjmują to do skrajności. Starają się pozostać na bezpłatnym poziomie tak długo, jak to możliwe. Może dlatego, że chcą się chwalić swoim niesamowicie niskim współczynnikiem spalania. Może to tylko forma nowoczesnego machismo. Może brakuje im gotówki.

W każdym razie, jak najdłuższa praca z tym wolnym kątem generalnie prowadzi do tworzenia oszczędnych i wydajnych aplikacji internetowych, które robią jak najwięcej przy jak najmniejszym możliwym użyciu. Kiedy nadejdzie dzień, w którym opuszczą poziom darmowy, miesięczne rachunki pozostaną niskie wraz ze skalą projektu, co rozgrzewa serce każdego dyrektora finansowego.

Oto kilka sekretów wyciskania ostatniej kropli dobroci z bezpłatnej oferty Google. Może jesteś tani. Może po prostu czekasz, aby powiedzieć swojemu szefowi, aż niesamowity widok zostanie całkowicie zrealizowany. Może po prostu dobrze się bawisz i to jest głupota. W każdym razie istnieje wiele sposobów oszczędzania. 

Przechowuj tylko to, co niezbędne

Bezpłatne bazy danych, takie jak Firestore i Cloud Storage, są całkowicie elastycznymi narzędziami, które odpowiednio usuwają dokumenty i obiekty o kluczowej wartości. Warstwa zawsze bezpłatna w Google Cloud umożliwia przechowywanie odpowiednio pierwszego 1 GB i 10 GB w każdym produkcie. Ale im więcej szczegółów przechowuje Twoja aplikacja, tym szybciej skończą się darmowe gigabajty. Przestań więc zapisywać informacje, chyba że absolutnie ich potrzebujesz. Oznacza to brak obsesyjnego gromadzenia danych na wypadek, gdyby były potrzebne do późniejszego debugowania. Bez dodatkowych sygnatur czasowych, bez dużej pamięci podręcznej pełnej danych, które przechowujesz tylko po to, by być gotowym.

Kompresja to twój przyjaciel

Istnieją dziesiątki dobrych fragmentów kodu do dodawania warstwy kompresji do klientów. Zamiast przechowywać grube bloki JSON, kod klienta może uruchamiać dane za pomocą algorytmu takiego jak LZW lub Gzip przed wysłaniem ich przez sieć do instancji serwera, które przechowują je bez rozpakowywania. Oznacza to szybsze odpowiedzi, mniej problemów z przepustowością i mniejszy wpływ na bezpłatny miesięczny limit miejsca na dane. Zachowaj ostrożność, ponieważ niektóre bardzo małe pakiety danych mogą się powiększyć, gdy uwzględni się narzut związany z kompresją.

Idź bez serwera

Google jest bardziej hojny dzięki swoim sporadycznym usługom obliczeniowym, które są rozliczane na żądanie. Cloud Run uruchomi się i uruchomi bezpłatnie kontener bezstanowy, który każdego miesiąca odpowiada na dwa miliony żądań. Cloud Functions uruchomi Twoją funkcję w odpowiedzi na kolejne dwa miliony żądań. To średnio ponad 100 000 różnych operacji dziennie. Więc przestań czekać i zacznij pisać swój kod w modelu bezserwerowym.

Uwaga: niektórzy architekci wzdrygną się na myśl o skorzystaniu z dwóch zupełnie różnych usług. Może to zaoszczędzić pieniądze, ale podwoi złożoność aplikacji, a to oznacza, że ​​będzie trudniejsza w utrzymaniu. To jest prawdziwe niebezpieczeństwo, ale często możesz mniej więcej powielić strukturę funkcji jako usługi w Cloud Functions we własnym kontenerze, umożliwiając późniejszą konsolidację kodu, jeśli to planujesz.

Użyj App Engine

Google App Engine pozostaje jednym z najlepszych sposobów na uruchomienie aplikacji internetowej bez zastanawiania się nad wszystkimi szczegółami jej wdrażania lub skalowania. Prawie wszystko jest zautomatyzowane, więc wdraża nowe instancje, jeśli obciążenie wzrośnie. App Engine zapewnia 28 „godzin instancji” każdego dnia - co oznacza, że ​​Twoja podstawowa aplikacja będzie działać bezpłatnie przez 24 godziny na dobę, a nawet może być skalowana przez cztery godziny w przypadku gwałtownego wzrostu zapotrzebowania.

Konsolidacja zgłoszeń serwisowych

Jeśli jesteś ostrożny, możesz dodawać dodatki. Ograniczenia dotyczące wywołań bezserwerowych dotyczą liczby pojedynczych żądań, a nie złożoności. Możesz spakować więcej akcji i wyników do każdej wymiany, łącząc wszystkie operacje na danych w jeden większy pakiet. Możesz więc oferować głupie sztuczki, takie jak notowania giełdowe, ale tylko wtedy, gdy włożysz dodatkowe kilka bajtów do absolutnie niezbędnych pakietów. Pamiętaj tylko, że Google liczy używaną pamięć i czas obliczeń. Twoje funkcje nie mogą przekraczać 400 000 GB-sekund pamięci i 200 000 GHz-sekund czasu obliczeniowego.

Użyj pamięci lokalnej

Nowoczesny interfejs API sieci Web oferuje wiele dobrych miejsc do przechowywania informacji. Jest doskonale dobre, staromodne ciasteczko, które jest ograniczone do czterech kilobajtów. Web Storage API to oparty na dokumentach system klucza i wartości, który będzie buforował co najmniej pięć megabajtów danych, a niektóre przeglądarki będą przechowywać 10 megabajtów. IndexedDB oferuje bogatszy zestaw funkcji, takich jak kursory bazy danych i indeksy, które przyspieszą przeglądanie danych, które są często przechowywane bez ograniczeń.

Im więcej danych przechowujesz lokalnie na komputerze użytkownika, tym mniej potrzebujesz do wykorzystania cennej pamięci masowej po stronie serwera. Może to również oznaczać szybsze odpowiedzi i znacznie mniejszą przepustowość przeznaczoną na przenoszenie niekończących się kopii danych z powrotem na serwer. Będą jednak problemy, gdy użytkownicy będą przełączać urządzenia, ponieważ dane prawdopodobnie nie będą zsynchronizowane. Upewnij się tylko, że ważne szczegóły są spójne.

Znajdź ukryte okazje

Google utrzymuje pomocną stronę, która podsumowuje wszystkie „zawsze bezpłatne” produkty, ale jeśli się po niej przejrzysz, znajdziesz wiele bezpłatnych usług, których nawet nie ma na liście. Na przykład Mapy Google oferują „200 USD bezpłatnego miesięcznego wykorzystania”. Dokumenty Google i kilka innych interfejsów API są zawsze bezpłatne.

Użyj G Suite

Wiele usług G Suite, w tym Dokumenty, Arkusze i Dysk, jest rozliczanych osobno, a użytkownicy albo otrzymują je bezpłatnie za pomocą konta GMail, albo ich firma płaci za nie jako pakiet. Zamiast tworzyć aplikację z wbudowanym raportowaniem, po prostu zapisz dane w arkuszu kalkulacyjnym i udostępnij je. Arkusze kalkulacyjne są wystarczająco wydajne, aby zawierać wykresy i wykresy, jak każdy pulpit nawigacyjny. Jeśli tworzysz aplikację internetową, musisz nagrać swoje obliczenia i przydziały danych, aby obsłużyć interaktywne żądania. Ale jeśli po prostu utworzysz dokument Google dla swojego raportu, zrzucisz większość pracy na komputerze Google.

Pozbądź się sztuczek

Niektóre funkcje nowoczesnych aplikacji internetowych są dość zbędne. Czy Twoja aplikacja bankowa wymaga notowań giełdowych? Czy musisz uwzględnić lokalny czas lub temperaturę? Czy musisz osadzać najnowsze tweety lub zdjęcia z Instagrama? Nie. Pozbądź się tych wszystkich dodatków, ponieważ każdy z nich oznacza kolejne połączenie z serwerami, a to zjada Twoje bezpłatne limity. Zespół projektantów produktów może marzyć o wielkich marzeniach, ale możesz im powiedzieć „Nie!”

Uważaj na nowe opcje

Niektóre fajniejsze narzędzia do tworzenia usług sztucznej inteligencji dla twojego stosu oferują dobre ograniczenia dla eksperymentowania. Usługa AutoML Video umożliwia trenowanie modelu uczenia maszynowego na kanałach wideo przez 40 godzin każdego miesiąca, zanim pojawią się opłaty. Usługa danych tabelarycznych będzie szlifować wiersze i wiersze informacji w węźle bezpłatnie przez sześć godzin. Dzięki temu masz wystarczająco dużo liny, aby eksperymentować lub budować podstawowe modele, ale uważaj. Automatyzacja tego procesu byłaby niebezpieczna, aby każdy użytkownik mógł uruchomić duże zadanie uczenia maszynowego.

Zachowaj odpowiednią perspektywę kosztów

Łatwo jest doprowadzić tę grę do ekstremum i zmienić architekturę aplikacji w urządzenie Rube Goldberg, aby zaoszczędzić trochę więcej gotówki. Należy pamiętać, że przejście z poziomu bezpłatnego do płacącego klienta jest często dość małym krokiem w Google Cloud. Chociaż istnieje wiele bezpłatnych usług w Internecie, które jednym kliknięciem przeskakują z bezpłatnych do tysięcy dolarów, usługi Google generalnie nie są tak wyceniane.

Po przebiciu się przez dwa miliony darmowych wywołań Cloud Functions, następny kosztuje aż 0,0000004 $. To tylko 40 centów na milion. Jeśli zaczniesz kopać wokół szuflady ze skarpetami, powinieneś bez problemu pokryć kilka dodatkowych milionów.

Cennik jest na tyle hojny, że po wyjściu z wolnej strefy nie dostaniesz ataku serca. Jeśli twoja aplikacja potrzebuje kilku dodatkowych milionów tego lub tamtego, prawdopodobnie będziesz w stanie to pokryć. Ważną lekcją jest to, że utrzymywanie niskiego obciążenia obliczeniowego przełoży się na mniejsze rachunki i szybsze odpowiedzi.