GCP: Podział stosu obliczeniowego Google Cloud Platform

Tłumaczenie artykułu zostało przygotowane specjalnie dla studentów kursu "Usługi w chmurze".

Jesteś zainteresowany rozwojem w tym kierunku? Obejrzyj nagranie profesjonalnej klasy mistrzowskiej „Usługa AWS EC2”, który prowadził Egor Zuev – TeamLead w InBit i autor programu edukacyjnego w OTUS.

GCP: Podział stosu obliczeniowego Google Cloud Platform

Google Cloud Platform (GCP) oferuje wiele usług, a w szczególności stos obliczeniowy, który zawiera Google Compute Engine (GCE), Google Kubernetes Engine (dawniej Container Engine) (GKE), Google App Engine (GAE) i Google Cloud Functions (GCF) . Wszystkie te usługi mają fajne nazwy, ale ich funkcje i to, co czyni je wyjątkowymi, mogą nie być całkowicie oczywiste. Ten artykuł jest przeznaczony dla osób, które nie mają jeszcze pojęcia o chmurach, zwłaszcza o usługach w chmurze i GCP.

GCP: Podział stosu obliczeniowego Google Cloud Platform

1. Oblicz stos

Stos obliczeniowy można traktować jako warstwową abstrakcję tego, co może zapewnić system komputerowy. Ten stos rośnie (porusza się w górę) z „gołego żelaza” (czystego metalu), odnoszące się do rzeczywistych komponentów sprzętowych komputera, aż do funkcji (Funkcje), które reprezentują najmniejszą jednostkę obliczeniową. Należy zauważyć, że w przypadku stosu usługi są agregowane w miarę przesuwania się w górę stosu, na przykład w sekcji „aplikacje” (mobilne i webowe), pokazany na rysunku 1 poniżej, powinien zawierać wszystkie podstawowe elementy kontenera (Pojemniki), wirtualne maszyny (wirtualne maszyny) i żelazo. W ten sam sposób komponent maszyn wirtualnych musi zawierać sprzęt, aby działał.

GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 1: Stos obliczeniowy | Obraz pochodzi z Google Cloud

Model ten, pokazany na rysunku 1, stanowi podstawę do opisu ofert dostawców usług chmurowych. Dlatego niektórzy dostawcy mogą na przykład dostarczać jedynie kontenery i usługi o niższej jakości wzdłuż stosu, podczas gdy inni mogą świadczyć wszystko, co pokazano na rysunku 1.

— Jeśli znasz usługi w chmurze, przejdź do Sekcja 3aby zobaczyć odpowiednik GCP
— Jeśli chcesz tylko zestawienie usług chmurowych, przejdź do Sekcja 2.4

2. Usługi w chmurze

Świat przetwarzania w chmurze jest bardzo różnorodny. Dostawcy rozwiązań chmurowych oferują różnorodne usługi dostosowane do różnych wymagań klientów. Być może słyszałeś o terminach takich jak IaaS, PaaS, SaaS, FaaS, KaaS itp. ze wszystkimi literami alfabetu, po których następuje „aaS”. Pomimo dziwnej konwencji nazewnictwa tworzą one zestaw usług dostawców chmury. Oświadczam, że istnieją 3 główne oferty „jako usługi”, które prawie zawsze oferują dostawcy usług w chmurze.

Są to IaaS, PaaS i SaaS, które oznaczają odpowiednio infrastrukturę jako usługę, platformę jako usługę i oprogramowanie jako usługę. Ważne jest, aby wizualizować usługi w chmurze jako warstwy świadczonych usług. Oznacza to, że w miarę przechodzenia w górę lub w dół z poziomu na poziom, jako klient napotykasz różne opcje usług, które są dodawane lub odejmowane z oferty podstawowej. Najlepiej myśleć o tym jak o piramidzie, jak pokazano na rysunku 2.
GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 2: Piramida aaS | Obraz pochodzi z Rubinowy garaż

2.1 Infrastruktura jako usługa (IaaS)

Jest to najniższy poziom, jaki może zaoferować dostawca chmury i obejmuje dostawcę chmury dostarczającego infrastrukturę typu bare metal, w tym oprogramowanie pośrednie, okablowanie sieciowe, procesory, procesory graficzne, pamięć RAM, pamięć zewnętrzną, serwery i podstawowe obrazy systemów operacyjnych, np. Debian Linux, CentOS, Windows itp.

Jeśli zamówisz wycenę od dostawcy IaaS w chmurze, właśnie tego powinieneś się spodziewać. To od Ciebie, klienta, zależy, czy zmontujesz te elementy, aby prowadzić swoją firmę. Zakres zadań, z którymi będziesz musiał pracować, może się różnić w zależności od dostawcy, ale generalnie otrzymujesz tylko sprzęt i system operacyjny, a reszta zależy od Ciebie. Przykładami IaaS są AWS Elastic Compute, Microsoft Azure i GCE.

Niektórym osobom może nie podobać się fakt, że muszą instalować obrazy systemu operacyjnego i zajmować się obsługą sieci, równoważeniem obciążenia lub martwić się, jaki typ procesora będzie idealny do ich obciążenia. W tym miejscu przesuwamy się w górę piramidy w stronę PaaS.

2.2 Platforma jako usługa (PaaS)

PaaS obejmuje wyłącznie dostawcę usług w chmurze oferujący konkretną platformę, na której użytkownicy mogą tworzyć aplikacje. Jest to abstrakcja w stosunku do IaaS, co oznacza, że ​​dostawca chmury zajmuje się wszystkimi szczegółami dotyczącymi typów procesorów, pamięci, pamięci RAM, pamięci masowej, sieci itp. Jak pokazano na rysunku 2, jako klient masz niewielką kontrolę nad rzeczywistą platformą, ponieważ w chmurze, dostawca zajmie się wszystkimi szczegółami infrastruktury za Ciebie. Zamawiasz wybraną platformę i budujesz na niej projekt. Przykładami PaaS są Heroku.

Dla niektórych może to być zbyt wysoki poziom, gdyż niekoniecznie chcą budować projekt na określonej platformie, a raczej potrzebują zestawu usług bezpośrednio od dostawcy chmury. Tutaj wkracza SaaS.

2.3 Oprogramowanie jako usługa (SaaS)

SaaS to najpopularniejsze usługi świadczone przez dostawców usług w chmurze. Są skierowane do użytkowników końcowych i są dostępne głównie za pośrednictwem witryn internetowych, takich jak Gmail, Dokumenty Google, Dropbox itp. Jeśli chodzi o Google Cloud, poza ich stosem obliczeniowym istnieje kilka ofert, które są SaaS. Należą do nich Studio danych, Big Query itp.

2.4 Podsumowanie usług w chmurze

Komponenty
IaaS
PaaS
SaaS

Co dostajesz
Otrzymujesz infrastrukturę i odpowiednio płacisz. Swoboda używania lub instalowania dowolnego oprogramowania, systemu operacyjnego lub jego kompozycji.
Tutaj dostaniesz to, o co prosisz. Oprogramowanie, sprzęt, system operacyjny, środowisko internetowe. Otrzymujesz gotową do użycia platformę i odpowiednio płacisz.
Tutaj nie musisz się o nic martwić. Otrzymujesz preinstalowany pakiet dostosowany do Twoich wymagań i jedyne, co musisz zrobić, to odpowiednio zapłacić.

Wartość
Podstawowe obliczenia
Najlepsze rozwiązania IaaS
Jest to w zasadzie kompletny pakiet usług

Problemy techniczne
Wymagana wiedza techniczna
Masz podstawową konfigurację, ale nadal potrzebujesz wiedzy o domenie.
Nie ma potrzeby zawracać sobie głowy szczegółami technicznymi. Dostawca SaaS zapewnia wszystko.

Z czym to działa?
Maszyny wirtualne, pamięć masowa, serwery, sieć, moduły równoważenia obciążenia itp.
Środowiska wykonawcze (takie jak środowisko uruchomieniowe Java), bazy danych (takie jak mySQL, Oracle), serwery internetowe (takie jak Tomcat itp.)
Aplikacje takie jak usługi e-mail (Gmail, poczta Yahoo itp.), witryny interakcji społecznościowych (Facebook itp.)

Wykres popularności
Popularny wśród wysoko wykwalifikowanych programistów i badaczy, którzy wymagają dostosowania do swoich wymagań lub obszaru badawczego
Najpopularniejszy wśród programistów, ponieważ mogą skupić się na tworzeniu swoich aplikacji lub skryptów. Nie muszą się martwić obciążeniem ruchem, zarządzaniem serwerami itp.
Najpopularniejszy wśród zwykłych konsumentów lub firm korzystających z oprogramowania, takiego jak poczta e-mail, udostępnianie plików, sieci społecznościowe, ponieważ nie muszą się martwić o szczegóły techniczne

Rysunek 3: Podsumowanie głównych ofert w chmurze | Dostarczono obraz Amir na blogu Specia

3. Pakiet obliczeniowy Google Cloud Platform

Po zapoznaniu się z typowymi ofertami dostawców usług w chmurze w sekcji 2, możemy porównać je z ofertami Google Cloud.

3.1 Google Compute Engine (GCE) – IaaS

GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 4: Ikona Google Compute Engine (GCE).

GCE to oferta IaaS firmy Google. Dzięki GCE możesz dowolnie tworzyć maszyny wirtualne, przydzielać zasoby procesora i pamięci, wybierać rodzaj przechowywania np. SSD lub HDD oraz ilość pamięci. To prawie tak, jakbyś zbudował własny komputer/stację roboczą i zajął się wszystkimi szczegółami jego działania.

W GCE do wyboru są mikroinstancje z 0,3-rdzeniowym procesorem i 1 GB RAM-u, aż po 96-rdzeniowe monstra z ponad 300 GB RAM-u. Możesz także tworzyć maszyny wirtualne o niestandardowych rozmiarach dla swoich obciążeń. Dla zainteresowanych są to maszyny wirtualne, które można zbudować.

Typy maszyn | Dokumentacja silnika obliczeniowego | Chmura Google

3.2. Google Kubernetes Engine (GKE) – (Caas / Kaas)

GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 5: Ikona Google Kubernetes Engine (GKE).

GKE to wyjątkowa oferta obliczeniowa firmy GCP, która stanowi abstrakcję na bazie Compute Engine. Mówiąc bardziej ogólnie, GKE można sklasyfikować jako kontener jako usługę (CaaS), czasami określany jako Kubernetes jako usługa (KaaS), który umożliwia klientom łatwe uruchamianie kontenerów Docker we w pełni zarządzanym środowisku Kubernetes. Dla tych, którzy nie są zaznajomieni z kontenerami, kontenery pomagają w modularyzacji usług/aplikacji, więc różne kontenery mogą zawierać różne usługi, na przykład jeden kontener może hostować fronton aplikacji internetowej, a drugi może zawierać jej backend. Kubernetes automatyzuje, koordynuje, zarządza i wdraża Twoje kontenery. Więcej informacji tutaj.

Silnik Google Kubernetes | Chmura Google

3.3 Google App Engine (GAE) – (PaaS)

GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 6: Ikona Google App Engine (GAE).

Jak wspomniano w sekcji 2.2, PaaS znajduje się powyżej IaaS, a w przypadku GCP można je również uznać za ofertę powyżej GKE. GAE to niestandardowy model PaaS firmy Google, który najlepiej opisuje siebie jako „przynieś swój kod, a my zajmiemy się resztą”.

Dzięki temu klienci korzystający z GAE nie muszą zajmować się podstawowym sprzętem/oprogramowaniem pośrednim i mogą już mieć gotową do użycia wstępnie skonfigurowaną platformę; wystarczy, że dostarczą kod potrzebny do jego uruchomienia.

GAE automatycznie obsługuje skalowanie w celu zaspokojenia obciążenia i wymagań użytkowników, co oznacza, że ​​jeśli Twoja witryna sprzedająca kwiaty nagle osiągnie szczyt w związku ze zbliżającymi się Walentynkami, GAE zajmie się skalowaniem podstawowej infrastruktury, aby zaspokoić popyt i zapewnić, że Twoja witryna nie ulegnie awarii z powodu zwiększonego popytu. Oznacza to, że płacisz dokładnie za zasoby, których potrzebuje w danym momencie Twoja aplikacja.

Do obsługi tego wszystkiego GAE używa Kubernetesa lub jego natywnej wersji, więc nie musisz się tym martwić. GAE najlepiej nadaje się dla firm, które nie są zainteresowane podstawową infrastrukturą i zależy im jedynie na tym, aby ich aplikacja była dostępna w najlepszy możliwy sposób.

Moim zdaniem GAE to najlepsze miejsce na rozpoczęcie, jeśli jesteś programistą ze świetnym pomysłem, ale nie chcesz zajmować się mozolną konfiguracją serwerów, równoważeniem obciążenia i wszystkimi innymi czasochłonnymi pracami devops/SRE . Z biegiem czasu możesz wypróbować GKE i GCE, ale to tylko moja opinia.

Zrzeczenie się: AppEngine jest używany w aplikacjach internetowych, a nie mobilnych.

Dla informacji: App Engine — Twórz skalowalne backendy internetowe i mobilne w dowolnym języku | Chmura Google

3.4 Funkcje Google Cloud — (FaaS)

GCP: Podział stosu obliczeniowego Google Cloud Platform

Rysunek 7: Ikona Google Cloud Functions (GCF).

Mamy nadzieję, że zauważyłeś trend, przeglądając poprzednie oferty. Im wyżej wspinasz się po drabinie rozwiązań obliczeniowych GCP, tym mniej musisz się martwić o leżącą u ich podstaw technologię. Piramida ta kończy się najmniejszą możliwą jednostką obliczeniową, czyli funkcją, jak pokazano w części 1.

GCF to stosunkowo nowa oferta GCP, która jest wciąż w fazie beta (w momencie pisania tego tekstu). Funkcje chmury umożliwiają uruchomienie określonych funkcji napisanych przez programistę przez zdarzenie.

Kierują się zdarzeniami i stanowią sedno modnego hasła „bezserwerowe”, co oznacza, że ​​nie znają serwerów. Funkcje chmury są bardzo proste i mają wiele różnych zastosowań, które wymagają myślenia o zdarzeniach. Na przykład za każdym razem, gdy zarejestruje się nowy użytkownik, może zostać uruchomiona funkcja chmury, aby ostrzec programistów.

W fabryce, gdy określony czujnik osiągnie określoną wartość, może uruchomić funkcję chmury, która przetwarza pewne informacje lub powiadamia personel konserwacyjny itp.

Funkcje chmury — przetwarzanie serwerowe sterowane zdarzeniami | Chmura Google

wniosek

W tym artykule omówiliśmy różne oferty chmurowe, takie jak IaaS, PaaS itp., oraz sposób, w jaki stos obliczeniowy Google implementuje te różne warstwy. Widzieliśmy, że warstwy abstrakcji podczas przechodzenia z jednej kategorii usług do drugiej, takiej jak IaaS w Paas, wymagają mniejszej wiedzy na temat ich podstaw.

Dla firmy zapewnia to krytyczną elastyczność, która nie tylko spełnia jej cele operacyjne, ale także spełnia inne kluczowe obszary, takie jak bezpieczeństwo i koszty. Podsumowując:

Compute Engine - umożliwia utworzenie własnej maszyny wirtualnej poprzez przydzielenie określonych zasobów sprzętowych, na przykład pamięci RAM, procesora, pamięci. Jest to również dość praktyczne i na niskim poziomie.

Silnik Kubernetes to krok naprzód w stosunku do Compute Engine i umożliwia używanie Kubernetes i kontenerów do zarządzania aplikacją, co pozwala na jej skalowanie w miarę potrzeb.

Silnik aplikacji to krok naprzód w stosunku do Kubernetes Engine, dzięki któremu możesz skupić się wyłącznie na kodzie, podczas gdy Google zajmuje się wszystkimi podstawowymi wymaganiami platformy.

Funkcje chmury to szczyt piramidy obliczeniowej, umożliwiający napisanie prostej funkcji, która po uruchomieniu wykorzystuje całą infrastrukturę bazową do obliczenia i zwrócenia wyniku.

Dziękuję za uwagę!

Twitter: @martinomburajr

Źródło: www.habr.com

Dodaj komentarz