GCP: Pag-parse sa Google Cloud Platform Compute Stack

Ang pagsasalin ng artikulo ay partikular na inihanda para sa mga mag-aaral ng kurso "Mga serbisyo sa cloud".

Interesado ka bang umunlad sa direksyong ito? Panoorin ang pag-record ng isang propesyonal na master class "Serbisyo ng AWS EC2", na isinagawa ni Egor Zuev - TeamLead sa InBit at ang may-akda ng programang pang-edukasyon sa OTUS.

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Nag-aalok ang Google Cloud Platform (GCP) ng maraming serbisyo, at lalo na ang computing stack na naglalaman ng Google Compute Engine (GCE), Google Kubernetes Engine (dating Container Engine) (GKE), Google App Engine (GAE) at Google Cloud Functions (GCF) . Ang lahat ng mga serbisyong ito ay may mga cool na pangalan, ngunit maaaring hindi lubos na halata tungkol sa kanilang mga pag-andar at kung bakit natatangi ang mga ito sa isa't isa. Ang artikulong ito ay inilaan para sa mga bago sa cloud concepts, partikular na sa cloud services at GCP.

GCP: Pag-parse sa Google Cloud Platform Compute Stack

1. Compute stack

Ang isang computing stack ay maaaring isipin bilang isang layered abstraction sa kung ano ang maaaring ibigay ng isang computer system. Ang stack na ito ay umaakyat (gumagalaw pataas) mula sa "bare iron" (hubad na metal), na tumutukoy sa aktwal na mga bahagi ng hardware ng computer, hanggang sa mga function (function), na kumakatawan sa pinakamaliit na yunit ng pagkalkula. Ang mahalagang tandaan tungkol sa stack ay ang mga serbisyo ay pinagsama-sama habang umaakyat ka sa stack, gaya ng seksyong "mga application" (app), na ipinapakita sa Figure 1 sa ibaba, ay dapat maglaman ng lahat ng pangunahing bahagi ng lalagyan (lalagyan), mga virtual machine (virtual machine) at bakal. Sa parehong paraan, ang bahagi ng virtual machine ay dapat maglaman ng hardware sa loob upang gumana.

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Figure 1: Compute stack | Imahe na galing sa Google Cloud

Ang modelong ito, na ipinapakita sa Figure 1, ay ang batayan para sa paglalarawan ng mga alok mula sa mga cloud provider. Kaya, ang ilang provider ay maaari lamang magbigay, halimbawa, ng mga container at serbisyo na mas mababa ang kalidad sa kahabaan ng stack, habang ang iba ay maaaring magbigay ng lahat ng ipinapakita sa Figure 1.

β€” Kung pamilyar ka sa mga serbisyo ng cloud, pumunta sa seksyon 3upang makita ang katumbas ng GCP
β€” Kung gusto mo lang ng buod ng mga serbisyo sa cloud, pumunta sa seksyon 2.4

2. Mga serbisyo sa ulap

Ang mundo ng cloud computing ay lubhang magkakaibang. Nag-aalok ang mga cloud provider ng iba't ibang serbisyo na iniayon sa iba't ibang pangangailangan ng customer. Maaaring narinig mo na ang mga termino tulad ng IaaS, PaaS, SaaS, FaaS, KaaS, atbp. kasama ang lahat ng mga titik ng alpabeto na sinusundan ng "aaS". Sa kabila ng kakaibang kombensiyon ng pagbibigay ng pangalan, bumubuo sila ng isang hanay ng mga serbisyo ng cloud provider. Sinasabi ko na mayroong 3 pangunahing alok na "bilang isang serbisyo" na halos palaging ibinibigay ng mga provider ng cloud.

Ito ay ang IaaS, PaaS at SaaS, na ayon sa pagkakabanggit ay kumakatawan sa Infrastructure bilang isang Serbisyo, Platform bilang isang Serbisyo at Software bilang isang Serbisyo. Mahalagang mailarawan ang mga serbisyo sa cloud bilang mga layer ng mga serbisyong ibinigay. Nangangahulugan ito na habang pataas o pababa ka mula sa antas patungo sa antas, ikaw bilang isang customer ay dinadaanan ng iba't ibang mga opsyon sa serbisyo na maaaring idinagdag o ibinabawas mula sa pangunahing alok. Pinakamainam na isipin ito bilang isang pyramid, tulad ng ipinapakita sa Figure 2.
GCP: Pag-parse sa Google Cloud Platform Compute Stack

Larawan 2: aaS Pyramid | Imahe na galing sa Ruby Garage

2.1 Imprastraktura bilang Serbisyo (IaaS)

Ito ang pinakamababang antas na maaaring mag-alok ng cloud provider at kinabibilangan ng cloud provider na naghahatid ng bare metal na imprastraktura, kabilang ang middleware, network cabling, CPU, GPU, RAM, external storage, server, at pinagbabatayan na mga larawan ng operating system hal. Debian Linux, CentOS, Windows , atbp.

Kung mag-order ka ng isang quote mula sa isang cloud IaaS provider, ito ang dapat mong asahan na matanggap. Nasa iyo, ang customer, upang tipunin ang mga pirasong ito upang patakbuhin ang iyong negosyo. Ang lawak ng kung ano ang kailangan mong gawin ay maaaring mag-iba sa bawat vendor, ngunit sa pangkalahatan ay makukuha mo lang ang hardware at OS at ang iba ay nasa iyo. Ang mga halimbawa ng IaaS ay ang AWS Elastic Compute, Microsoft Azure, at GCE.

Maaaring hindi gusto ng ilang tao ang katotohanan na kailangan nilang mag-install ng mga imahe ng OS at harapin ang networking, pag-load ng pagbabalanse, o pag-aalala tungkol sa kung anong uri ng processor ang perpekto para sa kanilang workload. Dito tayo umakyat sa pyramid patungo sa PaaS.

2.2 Platform bilang isang serbisyo (PaaS)

Ang PaaS ay nagsasangkot lamang ng isang cloud service provider na nag-aalok ng isang partikular na platform kung saan ang mga user ay maaaring bumuo ng mga application. Isa itong abstraction sa IaaS, ibig sabihin, pinangangalagaan ng cloud provider ang lahat ng detalye ng mga uri ng CPU, memory, RAM, storage, network, atbp. Gaya ng ipinapakita sa Figure 2, ikaw bilang isang customer ay may maliit na kontrol sa aktwal na platform dahil ang cloud na pinangangasiwaan ng provider ang lahat ng detalye ng imprastraktura para sa iyo. Hiniling mo ang napiling platform at itayo ang proyekto dito. Ang mga halimbawa ng PaaS ay Heroku.

Ito ay maaaring masyadong mataas na antas para sa ilan, dahil hindi nila gustong buuin ang proyekto sa isang tinukoy na platform, ngunit sa halip ay nangangailangan ng isang hanay ng mga serbisyo nang direkta mula sa cloud provider. Dito pumapasok ang SaaS.

2.3 Software bilang isang serbisyo (SaaS)

Kinakatawan ng SaaS ang pinakakaraniwang serbisyong ibinibigay ng mga cloud service provider. Ang mga ito ay naglalayon sa mga end user at naa-access lalo na sa pamamagitan ng mga website tulad ng Gmail, Google Docs, Dropbox, atbp. Tulad ng para sa Google Cloud, mayroong ilang mga alok sa labas ng kanilang computing stack na SaaS. Kabilang dito ang Data Studio, Big Query, atbp.

2.4 Buod ng Mga Serbisyo sa Cloud

Mga Bahagi
IaaS
PaaS
SaaS

Ano makuha mo
Makukuha mo ang imprastraktura at magbayad nang naaayon. Kalayaan na gumamit o mag-install ng anumang software, OS o komposisyon nito.
Dito mo makukuha ang hinihiling mo. Software, hardware, OS, web environment. Makakakuha ka ng handa nang gamitin na platform at magbayad nang naaayon.
Dito hindi mo kailangang mag-alala tungkol sa anumang bagay. Bibigyan ka ng paunang naka-install na pakete na na-customize ayon sa iyong mga kinakailangan at ang kailangan mo lang gawin ay magbayad nang naaayon.

Halaga
Basic Computing
Nangungunang IaaS
Ito ay mahalagang kumpletong pakete ng mga serbisyo

Problemang teknikal
Kinakailangan ang teknikal na kaalaman
Binigyan ka ng pangunahing configuration, ngunit kailangan mo pa rin ng kaalaman sa domain.
Hindi na kailangang mag-abala sa mga teknikal na detalye. Ang SaaS provider ay nagbibigay ng lahat.

Ano ang gumagana nito?
Mga virtual machine, storage, server, network, load balancer, atbp.
Mga runtime environment (tulad ng java runtime), mga database (tulad ng mySQL, Oracle), mga web server (tulad ng tomcat, atbp.)
Mga application tulad ng mga serbisyo sa email (Gmail, Yahoo mail, atbp.), mga social interaction na site (Facebook, atbp.)

Grap ng katanyagan
Sikat sa mga napakahusay na developer, mga mananaliksik na nangangailangan ng pagpapasadya ayon sa kanilang mga kinakailangan o lugar ng pananaliksik
Pinakatanyag sa mga developer dahil maaari silang tumuon sa pagbuo ng kanilang mga application o script. Hindi nila kailangang mag-alala tungkol sa pag-load ng trapiko o pamamahala ng server, atbp.
Pinakatanyag sa mga ordinaryong mamimili o kumpanyang gumagamit ng software gaya ng email, pagbabahagi ng file, mga social network, dahil hindi nila kailangang mag-alala tungkol sa mga teknikal na detalye

Larawan 3: Buod ng mga pangunahing handog sa ulap | Ibinigay na larawan Amir sa Blog Specia

3. Google Cloud Platform Computing Suite

Sa pagtingin sa mga karaniwang alok ng provider ng cloud sa Seksyon 2, maihahambing namin ang mga ito sa mga alok ng Google Cloud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Figure 4: Icon ng Google Compute Engine (GCE).

Ang GCE ay isang IaaS na alok mula sa Google. Sa GCE, maaari kang malayang gumawa ng mga virtual machine, maglaan ng CPU at memory resources, piliin ang uri ng storage gaya ng SSD o HDD, at ang dami ng memory. Para bang gumawa ka ng sarili mong computer/workstation at pinangangasiwaan ang lahat ng detalye kung paano ito gumagana.

Sa GCE, maaari kang pumili mula sa mga micro instance na may 0,3-core processor at 1 GB ng RAM hanggang sa 96-core na monster na may higit sa 300 GB ng RAM. Maaari ka ring gumawa ng custom-sized na virtual machine para sa iyong mga workload. Para sa mga interesado, ito ay mga virtual machine na maaari mong itayo.

Mga uri ng makina | Compute Engine Documentation | Google Cloud

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

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Larawan 5: icon ng Google Kubernetes Engine (GKE).

Ang GKE ay isang natatanging alok sa computing mula sa GCP na isang abstraction sa ibabaw ng Compute Engine. Sa pangkalahatan, ang GKE ay maaaring ikategorya bilang Container bilang isang Serbisyo (CaaS), kung minsan ay tinutukoy bilang Kubernetes bilang isang Serbisyo (KaaS), na nagbibigay-daan sa mga customer na madaling patakbuhin ang kanilang mga Docker container sa isang ganap na pinamamahalaang kapaligiran ng Kubernetes. Para sa mga hindi pamilyar sa mga container, nakakatulong ang mga container na i-modularize ang mga serbisyo/application, kaya maaaring maglaman ng iba't ibang serbisyo ang iba't ibang container, halimbawa, maaaring mag-host ang isang container sa front end ng iyong web application at ang isa ay maaaring maglaman ng likod na dulo nito. Ang Kubernetes ay nag-o-automate, nag-oorchestrate, namamahala, at nagde-deploy ng iyong mga container. Higit pang impormasyon dito.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Larawan 6: Icon ng Google App Engine (GAE).

Gaya ng nabanggit sa Seksyon 2.2, ang PaaS ay nasa itaas ng IaaS at sa kaso ng GCP, maaari rin itong ituring bilang isang alok sa itaas ng GKE. Ang GAE ay ang custom na PaaS ng Google, at ang pinakamainam nilang paglalarawan sa kanilang sarili ay "dalhin ang iyong code at kami na ang bahala sa iba."

Tinitiyak nito na ang mga customer na gumagamit ng GAE ay hindi kailangang harapin ang pinagbabatayan na hardware/middleware, at maaari nang magkaroon ng paunang na-configure na platform na handa nang gamitin; ang kailangan lang nilang gawin ay ibigay ang code na kailangan para patakbuhin ito.

Awtomatikong pinangangasiwaan ng GAE ang pag-scale upang matugunan ang pag-load at demand ng user, na nangangahulugang kung biglang umakyat ang iyong website na nagbebenta ng bulaklak dahil nalalapit na ang Araw ng mga Puso, hahawakan ng GAE ang pag-scale ng pinagbabatayan na imprastraktura upang matugunan ang demand at matiyak na hindi mag-crash ang iyong website dahil sa tumaas na demand. Nangangahulugan ito na babayaran mo ang eksaktong mga mapagkukunan na kinakailangan ng iyong aplikasyon sa sandaling iyon.

Gumagamit ang GAE ng Kubernetes o ang katutubong bersyon nito para pangasiwaan ang lahat ng ito para hindi mo kailangang mag-alala tungkol dito. Ang GAE ay pinakaangkop para sa mga kumpanyang hindi interesado sa pinagbabatayan na imprastraktura at nag-aalaga lamang sa pagtiyak na ang kanilang aplikasyon ay naa-access sa pinakamahusay na posibleng paraan.

Sa palagay ko, ang GAE ang pinakamagandang lugar para magsimula kung isa kang developer na may magandang ideya, ngunit ayaw mong harapin ang nakakapagod na pag-set up ng mga server, pag-load ng pagbabalanse, at lahat ng iba pang gawaing devops/SRE. . Sa paglipas ng panahon maaari mong subukan ang GKE at GCE, ngunit iyon ay opinyon ko lamang.

Disclaimer: AppEngine ay ginagamit para sa mga web application, hindi sa mga mobile application.

Para sa impormasyon: App Engine - Bumuo ng mga scalable na web at mobile backend sa anumang wika | Google Cloud

3.4 Google Cloud Functions - (FaaS)

GCP: Pag-parse sa Google Cloud Platform Compute Stack

Figure 7: icon ng Google Cloud Functions (GCF).

Sana ay napansin mo ang isang uso sa pamamagitan ng pagtingin sa mga nakaraang mga handog. Kung mas mataas ang iyong pag-akyat sa hagdan ng solusyon sa pag-compute ng GCP, hindi mo kailangang mag-alala tungkol sa pinagbabatayan na teknolohiya. Ang pyramid na ito ay nagtatapos sa pinakamaliit na posibleng yunit ng pagkalkula, isang function, tulad ng ipinapakita sa Seksyon 1.

Ang GCF ay isang medyo bagong alok ng GCP na nasa beta pa rin (sa oras ng pagsulat na ito). Nagbibigay-daan ang mga cloud function na ma-trigger ng isang event ang ilang partikular na function na isinulat ng developer.

Ang mga ito ay hinihimok ng kaganapan at nasa gitna ng buzzword na "walang server", ibig sabihin ay hindi nila alam ang mga server. Ang mga pag-andar ng ulap ay napaka-simple at may maraming iba't ibang gamit na nangangailangan ng pag-iisip ng kaganapan. Halimbawa, sa tuwing magrerehistro ang isang bagong user, maaaring ma-trigger ang isang cloud function upang alertuhan ang mga developer.

Sa isang pabrika, kapag ang isang partikular na sensor ay umabot sa isang tiyak na halaga, maaari itong mag-trigger ng isang cloud function na gumagawa ng ilang pagpoproseso ng impormasyon, o nag-aabiso sa ilang tauhan ng pagpapanatili, atbp.

Cloud Functions - Pag-compute ng Server na Batay sa Kaganapan | Google Cloud

Konklusyon

Sa artikulong ito, pinag-usapan namin ang tungkol sa iba't ibang alok sa cloud tulad ng IaaS, PaaS, atbp. at kung paano ipinapatupad ng computing stack ng Google ang iba't ibang layer na ito. Nakita namin na ang mga abstraction layer kapag lumilipat mula sa isang kategorya ng serbisyo patungo sa isa pa, tulad ng IaaS sa Paas, ay nangangailangan ng mas kaunting kaalaman sa pinagbabatayan.

Para sa isang negosyo, nagbibigay ito ng kritikal na kakayahang umangkop na hindi lamang nakakatugon sa mga layunin sa pagpapatakbo nito, ngunit nakakatugon din sa iba pang mahahalagang bahagi tulad ng seguridad at gastos. Upang ibuod:

Compute Engine - nagbibigay-daan sa iyo na lumikha ng iyong sariling virtual machine sa pamamagitan ng paglalaan ng ilang mga mapagkukunan ng hardware, halimbawa, RAM, processor, memorya. Ito rin ay medyo praktikal at mababang antas.

Kubernetes Engine ay isang hakbang mula sa Compute Engine at nagbibigay-daan sa iyong gumamit ng Kubernetes at mga container upang pamahalaan ang iyong application, na nagbibigay-daan sa iyong palakihin ito kung kinakailangan.

App Engine ay isang hakbang mula sa Kubernetes Engine, na nagbibigay-daan sa iyong tumutok lamang sa iyong code habang pinangangasiwaan ng Google ang lahat ng pinagbabatayan na kinakailangan ng platform.

Mga Pag-andar ng Cloud ay ang tuktok ng computing pyramid, na nagbibigay-daan sa iyong magsulat ng isang simpleng function na, kapag tumakbo, ginagamit ang buong pinagbabatayan na imprastraktura upang kalkulahin at ibalik ang resulta.

Salamat sa iyo!

Twitter: @martinomburajr

Pinagmulan: www.habr.com

Magdagdag ng komento