Az írás fordítása kifejezetten a kurzus hallgatói számára készült .
Érdekel, hogy ebben az irányban fejlődj? Nézd meg a professzionális mesterkurzus felvételét , amelyet Zuev Egor, a InBit cég csapatvezetője, és az OTUS oktatási program szerzője tartott.

A Google Cloud Platform (GCP) számos szolgáltatást kínál, különösen a számítási stackot, amely tartalmazza a Google Compute Engine-t (GCE), a Google Kubernetes Engine-t (korábban Container Engine) (GKE), a Google App Engine-t (GAE) és a Google Cloud Functions-t (GCF). Mindezek a szolgáltatások menő nevekkel rendelkeznek, de a funkcióik és az egymáshoz viszonyított egyediségük nem mindig nyilvánvaló. Ez a cikk azok számára készült, akik most ismerkednek az felhős koncepciókkal, különösen a felhős szolgáltatásokkal és a GCP-vel.

1. Számítási stack
A számítási stack a számítógépes rendszer által nyújtott lehetőségek felett egy többrétegű absztrakcióként tekinthető. Ez a stack felemelkedik (moves up) a „tiszta hardver” (bare metal) fogalmától, amely a számítógép tényleges hardverelemeire vonatkozik, egészen a funkciókig (functions), amelyek a legkisebb számítási egységet képviselik. Fontos megjegyezni a stackkel kapcsolatban, hogy a szolgáltatások aggregálódnak, amikor a stack fele emelkedünk, például az „alkalmazások” szakasz (apps), amely az 1. ábrán látható, tartalmaznia kell az összes alapvető komponensét a konténereknek (containers), virtuális gépeknek (virtual machines) és a hardvernek. Hasonlóképpen, a virtuális gépek komponensének tartalmaznia kell a hardvert is, hogy működjön.

1. ábra: Számítási stack | Kép forrása
Ez a modell, amely az 1. ábrán látható, az alapja a felhőszolgáltatók ajánlatainak leírásához. Így egyes szolgáltatók például csak konténereket és az alacsonyabb minőségű szolgáltatásokat kínálhatnak a stackben, míg mások mindent kínálnak, amit az 1. ábra mutat.
— Ha ismeri a felhőszolgáltatásokat, ugrás a 3. szakaszra, hogy megismerkedjen a GCP megfelelőjével
— Ha csak egy összefoglalóra van szüksége a felhőszolgáltatásokról, ugrás a 2.4 szakaszra
2. Felhőszolgáltatások
A felhőalapú számítástechnika világa rendkívül változatos. A felhőszolgáltatók számos olyan szolgáltatást kínálnak, amelyeket az ügyfelek különböző igényeihez igazítottak. Talán hallott már olyan kifejezésekről, mint az IaaS, PaaS, SaaS, FaaS, KaaS stb., mindegyik az „aaS” betűkkel végződik. A furcsa névadási konvenció ellenére ezek a felhőszolgáltatók szolgáltatásait alkotják. Megállapítom, hogy három alapvető, „szolgáltatásként” (as a Service) kínált ajánlat létezik, amelyeket a felhőszolgáltatók szinte mindig nyújtanak.
Ezek az IaaS, PaaS és SaaS, amelyek az infrastruktúra mint szolgáltatás (Infrastructure as a Service), a platform mint szolgáltatás (Platform as a Service) és a szoftver mint szolgáltatás (Software as a Service) rövidítései. Fontos elképzelni a felhőszolgáltatásokat, mint az oltalmak szolgáltatási szintjeit. Ez azt jelenti, hogy amikor egy szintről a másikra lép, mint ügyfél, különböző szolgáltatási lehetőségeken halad át, amelyek vagy hozzáadódnak, vagy eltávolítanak az alapajánlatból. A legjobb ezt egy piramisként elképzelni, ahogyan a 2. ábrán is látható.

2. ábra: Az „aaS” piramis | Kép forrása
2.1 Infrastruktúra mint szolgáltatás (IaaS)
Ez a legalacsonyabb szint, amelyet egy felhőszolgáltató kínálhat, és magában foglal egy felhőszolgáltatót, amely „meztelen” infrastruktúrát biztosít, ideértve a köztes szoftvereket, hálózati kábeleket, processzorokat, grafikus processzorokat, RAM-ot, külső tárolókat, szervereket és alapvető operációs rendszerek, például Debian Linux, CentOS, Windows stb. képeit.
Ha IaaS ajánlatot rendel a felhőszolgáltatótól, akkor ezt várhatja el. Az Ön feladata, mint ügyfél, összeszerelni ezeket az elemeket az üzletmenetéhez. Az, amivel dolgoznia kell, szolgáltatónként változhat, de általában csak a hardvert és az operációs rendszert kapja meg, a többi már az Ön felelőssége. Az IaaS példái közé tartozik az AWS Elastic Compute, a Microsoft Azure és a GCE.
Néhány embernek lehet, hogy nem tetszik, hogy nekik kell telepíteniük az operációs rendszer képeit és foglalkozniuk a hálózattal, a terheléselosztással, vagy hogy milyen típusú processzor a legjobban megfelel a munkaterhelésüknek. Itt emelkedünk fel a piramisban a PaaS felé.
2.2 Platform as a Service (PaaS)
A PaaS includes only a cloud service provider offering a specific platform on which users can create applications. This is an abstraction over IaaS, meaning that the cloud provider takes care of all the details regarding CPU types, memory, RAM, storage, networks, etc. As shown in Figure 2, you, as a client, have limited control over the actual platform, as the cloud provider handles all the infrastructure details for you. You request the chosen platform and build your project on it. Examples of PaaS include Heroku.
For some, this may be too high a level, as they do not necessarily want to build a project on the specified platform, but rather require a set of services directly from the cloud service provider. This is where SaaS comes into play.
2.3 Software as a Service (SaaS)
SaaS represents the most common services provided by cloud service providers. They are designed for end users and are mainly accessible via websites, such as Gmail, Google Docs, Dropbox, etc. Regarding Google Cloud, there are several offerings outside their computing stack that are SaaS. These include Data Studio, BigQuery, etc.
2.4 Cloud Services Overview
Components
IaaS
PaaS
SaaS
What You Get
You receive infrastructure and pay accordingly. The freedom to use or install any software, OS, or their combination.
Here you get what you ask for. Software, hardware, OS, web environment. You get a ready-to-use platform and pay accordingly.
Here you don't need to worry about anything. You are provided with a pre-installed package tailored to your requirements, and you just have to pay accordingly.
Value
Basic level of computing
The top of IaaS
This is essentially a complete package of services
Technical complexities
Technical knowledge is required
You are given a basic configuration, but domain knowledge is still necessary.
No need to worry about technical details. The SaaS provider takes care of everything.
What it works with
Virtual machines, storage, servers, network, load balancers, etc.
Futtatási környezetek (mint a java runtime), adatbázisok (mint a mySQL, Oracle), webszerverek (mint a tomcat stb.)
Olyan alkalmazások, mint az emailező szolgáltatások (Gmail, Yahoo mail stb.), közösségi média oldalak (Facebook stb.)
Népszerűségi grafikon
Népszerű a magasan képzett fejlesztők és kutatók körében, akiknek testreszabott beállításokra van szükségük az igényeik vagy kutatási területük szerint
Legtöbbször a fejlesztők körében népszerű, mivel ők az alkalmazásaik vagy szkriptjeik fejlesztésére koncentrálhatnak. Nincs szükségük arra, hogy a forgalom kezelésével vagy a szerverrel foglalkozzanak stb.
Leginkább szokásos felhasználók vagy cégek körében népszerű, akik szoftvereket használnak, mint például az e-mail, fájlmegosztók, közösségi média, mivel nekik nem kell aggódniuk a technikai részletek miatt.
3. Ábra: Az alapvető felhőszolgáltatások összefoglalása | Kép forrása
3. Google Cloud Platform számítási csomag
A felhőszolgáltatók tipikus ajánlatait a 2. fejezetben megvizsgálva összehasonlíthatjuk azokat a Google Cloud ajánlataival.
3.1 Google Compute Engine (GCE) — IaaS

4. Ábra: Google Compute Engine (GCE) ikonja
A GCE a Google IaaS ajánlata. A GCE-vel szabadon létrehozhat virtuális gépeket, eloszthatja a CPU és memória erőforrásokat, kiválaszthatja a tárolási típust, például SSD vagy HDD, valamint a memória mennyiségét. Ez szinte olyan, mintha saját számítógépet/munkát állítana össze, és foglalkozna annak működésének minden részletével.
A GCE-ben választani lehet mikro instanciák között, 0,3 magos processzorokkal és 1 GB RAM-mal, egészen 96 magos monstrumokig, amelyek több mint 300 GB RAM-ot kínálnak. Emellett saját terheléseihez testreszabott méretű virtuális gépeket is létrehozhat. Akik érdekeltek — ezeket a virtuális gépeket maguk állíthatják össze.
3.2. Google Kubernetes Engine (GKE) — (CaaS / KaaS)

5. Ábra: Google Kubernetes Engine (GKE) ikonja
A GKE egyedülálló számítási megoldás a GCP-től, amely az Compute Engine-re épül. Általánosságban véve a GKE a „Konténer mint szolgáltatás” (CaaS) kategóriába sorolható, amelyet néha „Kubernetes mint szolgáltatás” (KaaS) néven is említenek, lehetővé téve az ügyfelek számára, hogy könnyen indítsák el Docker-konténereiket egy teljesen kezelt Kubernetes környezetben. A konténerek világával nem ismerkedők számára a konténerek segítenek modulárisan felépíteni a szolgáltatásokat/applikációkat, így különböző konténerek különböző szolgáltatásokat tartalmazhatnak - például az egyik konténer a webalkalmazásod felületét, míg a másik a háttérszerverét tartalmazhatja. A Kubernetes automatizálja, koordinálja, kezeli és telepíti a konténereidet. További információ itt.
3.3 Google App Engine (GAE) — (PaaS)

6. ábra: A Google App Engine (GAE) ikonjának ábrázolása
Ahogyan a 2.2-es szakaszban említve van, a PaaS magasabb szinten helyezkedik el, mint az IaaS, és a GCP esetében ezt a GKE feletti ajánlatként is lehet tekinteni. A GAE egy specializált Google PaaS, és ahogyan ők maguk legjobban leírják magukat – „Hozza a kódját, mi gondoskodunk a többi részről”.
Ez garantálja, hogy a GAE-t használó ügyfeleknek nem kell foglalkozniuk az alapvető hardverrel/szoftverrel, és rendelkeznek egy előre beállított platformmal, amely készen áll a használatra; mindössze annyit kell tenniük, hogy megadják a kódot, amely a működéshez szükséges.
A GAE automatikusan kezeli a skálázást, hogy megfeleljen a felhasználói igényeknek és keresletnek, ami azt jelenti, hogy ha a virágokat árusító weboldalad hirtelen csúcsidőszakba kerül, mert közeledik a Valentin-nap, a GAE kezelni fogja az alapinfrastruktúra skálázását, hogy megfeleljen a keresletnek, és garantálja, hogy a weboldalad ne dőljön le a megnövekedett kereslet miatt. Ez azt jelenti, hogy éppen azokért az erőforrásokért fizetsz, amelyek egy adott pillanatban szükségesek az alkalmazásod számára.
A GAE Kubernetes-t vagy annak beépített verzióját használja mindezen feladatok kezelésére, így neked nem kell ezzel foglalkoznod. A GAE a legjobban azoknak a cégeknek megfelelő, akik nem érdeklődnek az alap infrastruktúra iránt, és kizárólag arra összpontosítanak, hogy az alkalmazásuk a lehető legjobban elérhető legyen.
Szerintem a GAE a legjobb hely a kezdéshez, ha olyan fejlesztő vagy, akinek van egy remek ötlete, de nem akarod a rutinfeladatokra pazarolni az idődet, például a szerverek beállítására, a terheléselosztásra és a többi időigényes devops/SRE feladatra. Idővel próbálhatod a GKE-t és a GCE-t, de ez csak az én véleményem.
Megjegyzés: Az App Engine webalkalmazásokhoz készült, nem mobilalkalmazásokhoz.
Az ismerkedéshez:
3.4 Google Cloud Functions – (FaaS)

7. ábra: Google Cloud Functions (GCF) ikonja
Remélem, észrevetted a tendenciát az előző ajánlatok elemzése során. Minél magasabbra mész a GCP számítási megoldásainak létráján, annál kevésbé kell aggódnod az alaptechnológiák miatt. Ez a piramis a legkisebb lehetséges számítási egységgel, a funkcióval zárul, ahogyan azt az 1. részben láttuk.
A GCF viszonylag új GCP ajánlat, amely még mindig bétatesztelési fázisban van (a cikk írásakor). A felhőfunkciók lehetővé teszik, hogy a fejlesztő által írt bizonyos funkciók valamely esemény hatására elinduljanak.
Ezek eseményvezéreltek, és az úgynevezett „szerver nélküli” fogalom alapját képezik, ami azt jelenti, hogy nem tudnak a szerverek létezéséről. A felhőfunkciók nagyon egyszerűek, és sok különböző alkalmazásuk van, amelyek eseménytudatosságot igényelnek. Például, amikor egy új felhasználó regisztrál, egy felhőfunkció indítható, hogy értesítse a fejlesztőket.
Az üzemeltető telephelyén, amikor egy bizonyos érzékelő elér egy meghatározott értéket, elindíthat egy felhőfunkciót, amely némi adatfeldolgozást végez, vagy értesíti a karbantartó személyzetet stb.
Zárás
A cikkben különböző felhőkínálatokról beszéltünk, például IaaS, PaaS stb., és arról, hogyan valósítják meg a Google számítási rétegei ezeket a szinteket. Láttuk, hogy az absztrakciós szintek, amikor az egyik szolgáltatás kategóriából a másikba lépünk, például az IaaS-ből a PaaS-ba, kevesebb tudást igényelnek az alapul szolgáló technológiákról.
Egy vállalkozás számára ez kritikus fontosságú rugalmasságot biztosít, amely nemcsak a működési céljainak felel meg, hanem más kulcsfontosságú területeknek is, mint a biztonság és a költségek. Összegezve:
Compute Engine — lehetővé teszi, hogy elkészítse saját virtuális gépét, meghatározott hardveres erőforrások, például RAM, processzor, memóriára összpontosítva. Ezenkívül elég gyakorlati és alacsony szintű.
Kubernetes Engine — egy lépéssel előrébb áll a Compute Engine-hez képest, amely lehetővé teszi a Kubernetes és tartályok használatát az alkalmazása irányításához, lehetővé téve annak szükség szerinti skálázását.
App Engine — egy lépéssel előrébb áll a Kubernetes Engine-hez képest, lehetővé téve, hogy kizárólag a kódjára összpontosítson, míg a Google gondoskodik az alapplatform összes igényéről.
Cloud-Functions — a számítási piramis csúcsa, amely lehetővé teszi, hogy egy egyszerű funkciót írjon, amely a futtatás során kihasználja az összes alapinfrastruktúrát a számításhoz és az eredmény visszaadásához.
Köszönöm a figyelmet!
Twitter:
Forrás: habr.com
