Potrzebujesz szybko stworzyć aplikacje oraz strony internetowe, korzystając z w pełni zarządzanej platformy? A może chcesz uruchamiać usługi frontendowe i backendowe, zadania wsadowe, czy też kolejkować workloady, ale nie musieć zarządzać infrastrukturą? Rozwiązaniem jest Cloud Run.Czym jest i jakie korzyści możesz osiągnąć z jego implementacji?
Cloud Run jest jedną z bezserwerowych usług dostępnych w ramach Google Cloud, która pozwala na tworzenie aplikacji za pomocą kontenerów. Jak to bywa w środowisku kontenerowym, jedną z wielu korzyści jest brak narzuconych z góry języków programowania. Masz tu całkiem dużą swobodę.
Możesz postawić swoje kontenery zarówno jako samodzielne serwisy internetowe, API lub też wywołać je w odpowiedzi na konkretne zdarzenie. Masz również możliwość wykorzystania charakterystycznej dla chmury opcji skalowania, zarówno w górę, jak i w dół, co sprawia, że zarówno przy większym ruchu aplikacje podołają zapytaniom, a przy znikomym, nie będą generowały dodatkowych kosztów.
Cloud Run, oprócz tworzenia aplikacji czy też strony internetowych, idealnie nada się do tzw. lightweight data transformation czy też planowania zadań czy workflows przy pomocy webhooks.
Dowolny język, biblioteka czy plik binarny
Pisząc kod nie musisz obawiać się specjalnych ograniczeń. Tak jak wspomniałem we wstępie, możesz pisać kod z wykorzystaniem swojego ulubionego języka programowania, frameworku czy też biblioteki lub bibliotek a całość spakować do kontenera i uruchomić gcloud run Deploy. Sprawi to, że twoja aplikacja będzie nie tylko działać, ale będzie również wyposażona we wszystko co potrzebne do bezproblemowego funkcjonowania w środowisku produkcyjnym.
W przypadku takich języków jak GOo, Node.js, Python, Java, .NET Core czy Ruby możesz również skorzystać z opcji wdrażania opartego na źródle. W tym przypadku kontener zostanie zbudowany za ciebie, z wykorzystaniem najlepszych praktyk stosowanych dla danego języka.
Szybkie autoskalowanie
Automatyczne skalowanie w górę i w dół, od zera, sprawia, że płacisz tylko wówczas gdy Twój kod jest uruchomiony, Działa to zarówno przy wdrożeniach kontenerów jak i przy usługach tzw. long running.
Automatyczne tworzenie obrazów kontenerów ze źródła
Dzięki Cloud Run możliwe jest zautomatyzowane przejście do środowiska produkcyjnego, Możliwe jest to przy skorzystaniu z pakietów kompilacji umożliwiających wdrażanie bezpośrednio ze źródła bez konieczności instalowania Dockera. Możliwe jest więc zautomatyzowanie kompilacji i wdrożenie swojego kodu za każdym razem, gdy nowe commity są przesyłane do repozytorium Git.
Uruchamianie zaplanowanych zadań
Zadania Cloud Run umożliwiają przetwarzanie wsadowe z instacjami działającymi równolegle. Możesz wykonywać zadania w trybie run-to-completion, które nie odpowiadają na zapytania HTTP.
Bezpośrednia łączność VPC
Możesz przekierowywać ruch bezpośrednio do sieci VPC, czyli wirtualnej chmury prywatnej hostowanej w ramach Google Cloud i łączyć się w ten sposób z wszystkimi usługami uruchomionymi w VPC.
Główne zastosowanie Cloud Run
Cloud Run jest często wykorzystywany do tworzenia stron internetowych oraz aplikacji. Kolejnym zastosowaniem jest budowanie interfejsów API REST czy API GraphQL jak również prywatnych mikrousług komunikujących się za pośrednictwem protokołu HTTP lub gRCP.
Usługi Cloud Run mogą odbierać wiadomości z subskrypcji push Pub/Sub oraz wydarzeń EventArc. Są również pomocne przy wsadowym przetwarzaniu danych.
Dzięki nim uruchomisz skrypty, zadania cron oraz zadania związane z równoległym przetwarzaniem danych. Cloud Run sprawdzi się więc zarówno przy zadaniach, w których liczy się czas wykonania jak i tych długoterminowych.
Przykład BBC
Myślę, że nie trzeba nikomu przedstawiać BBC, jednego z kluczowych mediów informacyjnych. Strony internetowe należące do BBC zapewniają dostęp do informacji i rozrywki niemal pół miliarda osobom na całym świecie. Różne nagłe wydarzenia, takie jak np. śmierć Królowej Elżbiety II, powodują ogromne skoki ruchu.
BBC przechodząc do Google Cloud wykorzystało nie tylko możliwości Cloud Storage, EventArc czy BigQuery, ale również Cloud Run do świadczenia niezawodnej i stabilnej usługi bez obaw o skalowanie w godzinach szczytu, czy nagłych przypadkach. Pozwala to z jednej strony nadążać za ruchem, a z drugiej ograniczać koszty.
W momencie, w którym ogłoszono śmierć królowej Elżbiety II, ruch wzmógł się w takim stopniu, że w ciągu zaledwie jednej minuty BBC przeszło automatycznie od uruchomionych 150-200 instancji kontenerów do ponad 1000.
Okazało się, że korzystanie z Cloud Run to rozwiązanie znacznie bardziej opłacalne niż uruchamianie zgodnej z potrzebami liczby maszyn wirtualnych, dzięki którym system mógłby przetrwać skoki ruchu. Cloud Run pozwolił również zaoszczędzić czas, jako że od jego uruchomienia nie ma już potrzeby zarządzania i monitorowania skalowania maszyn wirtualnych. Cloud Run jest więc wyborem dla tych, którzy stawiają na na dobrze skalowalny, automatyczny system nie wymagający ręcznej interwencji.
Czy BBC to nie jest zbyt abstrakcyjny przykład? Czy Cloud Run przyda się mniejszym organizacjom? Jak najbardziej. Przecież nawet mały ruch może ulec kilkukrotnemu zwiększeniu w bardzo krótkim czasie i chociaż nie osiągnie nawet promila wartości jakie generuje BBC to dla ciebie, jako właściciela czy osoba zarządzającej stroną lub aplikacją może okazać się zaporowo duży.
Jeżeli chcesz dowiedzieć się jak skonfigurować Cloud Run to polecam kontakt z ekspertami FOTC. Pokażą Ci krok po kroku jak uruchomić i dostosować to rozwiązanie do potrzeb twojej aplikacji czy strony internetowej. Pomogą Ci też wyliczyć koszty, żebyś świadomie dokonał wyboru Cloud Run.