GCP: Analizo de la Komputila Stako de Google Cloud Platform

La traduko de la artikolo estis preparita specife por la kursanoj "Nubaj servoj".

Ĉu vi interesiĝas disvolvi ĉi tiun direkton? Spektu la registradon de profesia majstra klaso "AWS EC2-servo", kiu estis farita de Egor Zuev - TeamLead ĉe InBit kaj la aŭtoro de la eduka programo ĉe OTUS.

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Google Cloud Platform (GCP) ofertas multajn servojn, kaj precipe la komputikan stakon kiu enhavas Google Compute Engine (GCE), Google Kubernetes Engine (antaŭe Container Engine) (GKE), Google App Engine (GAE) kaj Google Cloud Functions (GCF) . Ĉiuj ĉi tiuj servoj havas bonegajn nomojn, sed eble ne estas tute evidentaj pri iliaj funkcioj kaj kio igas ilin unikaj unu al la alia. Ĉi tiu artikolo estas destinita al tiuj, kiuj estas novaj al nubaj konceptoj, precipe al nubaj servoj kaj GCP.

GCP: Analizo de la Komputila Stako de Google Cloud Platform

1. Komputila stako

Komputila stako povas esti opiniita kiel tavoligita abstraktaĵo super kion komputilsistemo povas disponigi. Ĉi tiu stako supreniras (moviĝas supren) de "nuda fero" (nuda metalo), rilatante al la realaj hardvarkomponentoj de la komputilo, malsupren al la funkcioj (funkcioj), kiuj reprezentas la plej malgrandan kalkulunuon. Kio gravas noti pri la stako estas, ke servoj estas kunigitaj dum vi supreniras la stakon, kiel la sekcio "aplikaĵoj" (apps), montrita en Figuro 1 malsupre, devus enhavi ĉiujn bazajn ujkomponentojn (ujoj), virtualaj maŝinoj (virtualaj maŝinoj) kaj fero. De la sama maniero, la komponanto de virtualaj maŝinoj devas enhavi aparataron por funkcii.

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Figuro 1: Komputila stako | Bildo fontita de Google Nubo

Ĉi tiu modelo, montrita en Figuro 1, estas la bazo por priskribi proponojn de nubaj provizantoj. Tiel, kelkaj provizantoj povas nur provizi, ekzemple, ujojn kaj servojn pli malaltajn en kvalito laŭ la stako, dum aliaj povas disponigi ĉion, kio estas montrita en Figuro 1.

— Se vi konas nubajn servojn, iru al sekcio 3por vidi la ekvivalenton de GCP
— Se vi volas nur resumon de nubaj servoj, iru al sekcio 2.4

2. Nubaj servoj

La mondo de nuba komputado estas tre diversa. Nubaj provizantoj ofertas diversajn servojn adaptitajn al malsamaj klientpostuloj. Vi eble aŭdis pri terminoj kiel IaaS, PaaS, SaaS, FaaS, KaaS, ktp. kun ĉiuj literoj de la alfabeto sekvataj de "aaS". Malgraŭ la stranga nomkonvencio, ili formas aron da nubaj provizantaj servoj. Mi deklaras, ke ekzistas 3 ĉefaj "kiel servo" proponoj, kiujn nubaj provizantoj preskaŭ ĉiam provizas.

Ĉi tiuj estas IaaS, PaaS kaj SaaS, kiuj respektive signifas Infrastrukturo kiel Servo, Platformo kiel Servo kaj Programaro kiel Servo. Gravas bildigi nubajn servojn kiel tavolojn de servoj provizitaj. Ĉi tio signifas, ke dum vi moviĝas supren aŭ malsupren de nivelo al nivelo, vi kiel kliento estas trapasita de malsamaj servaj elektoj, kiuj estas aŭ aldonitaj aŭ subtrahataj de la kerna oferto. Plej bone estas pensi pri ĝi kiel piramido, kiel montrite en Figuro 2.
GCP: Analizo de la Komputila Stako de Google Cloud Platform

Figuro 2: aaS Piramido | Bildo fontita de Ruby Garaĝo

2.1 Infrastrukturo kiel Servo (IaaS)

Ĉi tiu estas la plej malalta nivelo kiun nuba provizanto povas oferti kaj implikas la nuban provizanton liverantan la nudan metalan infrastrukturon, inkluzive de mezvaro, retkablado, CPUoj, GPUoj, RAM, ekstera stokado, serviloj kaj subestaj mastrumaj bildoj ekz. Debian Linukso, CentOS, Vindozo. , ktp.

Se vi mendas citaĵon de nuba IaaS-provizanto, ĉi tio estas kion vi devus atendi ricevi. Dependas de vi, la kliento, kunmeti ĉi tiujn pecojn por funkciigi vian komercon. La amplekso de tio, kun kio vi devos labori, povas varii de vendisto al vendisto, sed ĝenerale vi nur ricevas la aparataron kaj OS kaj la resto dependas de vi. Ekzemploj de IaaS estas AWS Elastic Compute, Microsoft Azure kaj GCE.

Iuj homoj eble ne ŝatas la fakton, ke ili devas instali OS-bildojn kaj trakti reton, ŝarĝbalancadon aŭ zorgi pri kia procesoro estas ideala por sia laborkvanto. Ĉi tie ni supreniras la piramidon al PaaS.

2.2 Platformo kiel servo (PaaS)

PaaS nur implikas provizanton de nuba servo proponanta specifan platformon sur kiu uzantoj povas konstrui aplikojn. Ĉi tio estas abstraktaĵo super IaaS, kio signifas, ke la nuba provizanto prizorgas ĉiujn detalojn de CPU-tipoj, memoro, RAM, stokado, retoj, ktp. Kiel montrite en Figuro 2, vi kiel kliento havas malmulte da kontrolo super la reala platformo ĉar la nubo la provizanto pritraktas ĉiujn infrastrukturajn detalojn por vi. Vi petas la elektitan platformon kaj konstruas la projekton sur ĝi. Ekzemploj de PaaS estas Heroku.

Ĉi tio eble estas tro alta nivelo por iuj, ĉar ili ne nepre volas konstrui la projekton sur specifa platformo, sed prefere bezonas aron da servoj rekte de la nuba provizanto. Ĉi tie intervenas SaaS.

2.3 Programaro kiel servo (SaaS)

SaaS reprezentas la plej oftajn servojn provizitajn de nubaj servaj provizantoj. Ili estas celitaj al finaj uzantoj kaj estas alireblaj ĉefe per retejoj kiel Gmail, Google Docs, Dropbox, ktp. Koncerne Google Cloud, ekzistas pluraj ofertoj ekster ilia komputika stako, kiuj estas SaaS. Ĉi tiuj inkluzivas Data Studio, Big Query, ktp.

2.4 Resumo de Nubaj Servoj

Komponantoj
IaaS
PaaS
SaaS

Kion vi havas?
Vi ricevas la infrastrukturon kaj pagas laŭe. Libereco uzi aŭ instali ajnan programaron, OS aŭ komponadon de ĝi.
Ĉi tie vi ricevas tion, kion vi petas. Programaro, aparataro, OS, TTT-medio. Vi ricevas pretan uzeblan platformon kaj pagas laŭe.
Ĉi tie vi ne bezonas zorgi pri io ajn. Vi estas provizita per antaŭinstalita pako personecigita laŭ viaj postuloj kaj ĉio, kion vi devas fari, estas pagi laŭe.

valoro
Baza Komputado
Top IaaS
Ĉi tio estas esence kompleta pako de servoj

Teknikaj malfacilaĵoj
Bezonata teknika scio
Vi ricevas la bazan agordon, sed vi ankoraŭ bezonas domajnan scion.
Ne necesas ĝeni teknikajn detalojn. La provizanto SaaS provizas ĉion.

Kun kio ĝi funkcias?
Virtualaj maŝinoj, stokado, serviloj, reto, ŝarĝbalanciloj, ktp.
Rultempaj medioj (kiel java rultempo), datumbazoj (kiel mySQL, Oracle), retserviloj (kiel tomcat, ktp.)
Aplikoj kiel retpoŝtaj servoj (Gmail, Yahoo-poŝto, ktp.), sociaj interagaj retejoj (Facebook, ktp.)

Populareca grafikaĵo
Popularaj inter tre spertaj programistoj, esploristoj, kiuj postulas personigon laŭ siaj postuloj aŭ esplora areo
Plej populara inter programistoj ĉar ili povas koncentriĝi pri evoluigado de siaj aplikoj aŭ skriptoj. Ili ne devas zorgi pri trafika ŝarĝo aŭ servila administrado ktp.
Plej populara inter ordinaraj konsumantoj aŭ kompanioj, kiuj uzas programaron kiel retpoŝton, kundividon de dosieroj, sociaj retoj, ĉar ili ne bezonas zorgi pri teknikaj detaloj.

Figuro 3: Resumo de ĉefaj nubaj proponoj | Bildo provizita Amir ĉe Blogo Speciala

3. Google Cloud Platform Computing Suite

Rigardante tipajn nubajn provizantajn ofertojn en Sekcio 2, ni povas kompari ilin kun la proponoj de Google Cloud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Bildo 4: Ikono de Google Compute Engine (GCE).

GCE estas IaaS-propono de Google. Kun GCE, vi povas libere krei virtualajn maŝinojn, asigni CPU- kaj memorresursojn, elekti la stokan tipon kiel SSD aŭ HDD, kaj la kvanton da memoro. Estas preskaŭ kvazaŭ vi konstruis vian propran komputilon/laborstacion kaj pritraktis ĉiujn detalojn pri kiel ĝi funkcias.

En GCE, vi povas elekti inter mikrokazoj kun 0,3-kernaj procesoroj kaj 1 GB da RAM ĝis 96-kernaj monstroj kun pli ol 300 GB da RAM. Vi ankaŭ povas krei laŭmezurajn virtualajn maŝinojn por viaj laborŝarĝoj. Por tiuj, kiuj interesiĝas, ĉi tiuj estas virtualaj maŝinoj, kiujn vi povas konstrui.

Maŝinaj tipoj | Komputilo Engine Dokumentado | Google Cloud

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

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Bildo 5: ikono de Google Kubernetes Engine (GKE).

GKE estas unika komputika oferto de GCP, kiu estas abstraktaĵo aldone al la Komputila Motoro. Pli ĝenerale, GKE povas esti klasifikita kiel Ujo kiel Servo (CaaS), foje referita kiel Kubernetes kiel Servo (KaaS), kio permesas al klientoj facile funkcii siajn Docker-ujojn en plene administrita Kubernetes-medio. Por tiuj, kiuj ne konas ujojn, ujoj helpas moduligi servojn/aplikaĵojn, do malsamaj ujoj povas enhavi malsamajn servojn, ekzemple, unu ujo povas gastigi la antaŭan finon de via retejo kaj alia povas enhavi la malantaŭan finon de ĝi. Kubernetes aŭtomatigas, reĝisoras, administras kaj disfaldas viajn ujojn. Pliaj informoj ĉi tie.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Figuro 6: Ikono de Google App Engine (GAE).

Kiel menciite en Sekcio 2.2, PaaS sidas super IaaS kaj en la kazo de GCP, ĝi ankaŭ povas esti konsiderata kiel oferto super GKE. GAE estas la kutima PaaS de Google, kaj la maniero kiel ili plej bone priskribas sin estas "alportu vian kodon kaj ni prizorgos la reston."

Ĉi tio certigas, ke klientoj uzantaj GAE ne devas trakti subesta aparataro/mezvaroj, kaj jam povas havi antaŭ-agordita platformo preta por iri; ĉio, kion ili devas fari, estas provizi la kodon necesan por ruli ĝin.

GAE aŭtomate pritraktas skaladon por plenumi ŝarĝon kaj uzantan postulon, kio signifas, se via retejo de vendado de floroj subite pintas ĉar Sankt-Valentena Tago alproksimiĝas, GAE pritraktos grimpi la suban infrastrukturon por plenumi postulon kaj certigi, ke via retejo ne kraŝos pro pliigita postulo. Ĉi tio signifas, ke vi pagas ĝuste por la rimedoj, kiujn via aplikaĵo postulas en tiu momento.

GAE uzas Kubernetes aŭ ĝian denaskan version por trakti ĉion ĉi, por ke vi ne devas zorgi pri ĝi. GAE plej taŭgas por kompanioj, kiuj ne interesiĝas pri la subesta infrastrukturo kaj nur zorgas pri certigi, ke ilia aplikaĵo estas alirebla laŭ la plej bona maniero.

Laŭ mi, GAE estas la plej bona loko por komenci, se vi estas programisto kun bonega ideo, sed ne volas trakti la penecon de agordo de serviloj, ŝarĝoekvilibro kaj ĉiuj aliaj temporabaj devops/SRE-laboroj. . Kun la tempo vi povus provi GKE kaj GCE, sed tio estas nur mia opinio.

Malgarantio: AppEngine estas uzata por TTT-aplikoj, ne por moveblaj aplikoj.

Por informoj: App Engine - Konstruu skaleblajn retajn kaj moveblajn backends en iu ajn lingvo | Google Cloud

3.4 Funkcioj de Google Cloud - (FaaS)

GCP: Analizo de la Komputila Stako de Google Cloud Platform

Figuro 7: ikono de Google Cloud Functions (GCF).

Espereble vi rimarkis tendencon rigardante la antaŭajn proponojn. Ju pli alte vi grimpas la GCP-komputilan solvoŝtuparon, des malpli vi bezonas zorgi pri la subesta teknologio. Ĉi tiu piramido finiĝas kun la plej malgranda ebla kalkulunuo, funkcio, kiel montrite en Sekcio 1.

GCF estas relative nova oferto de GCP, kiu ankoraŭ estas en beta (en la momento de ĉi tiu skribado). Nubaj funkcioj permesas al certaj funkcioj skribitaj de la programisto esti ekigitaj de evento.

Ili estas okazigitaj kaj estas en la koro de la buzzvorto "senservilo", tio signifas, ke ili ne konas servilojn. Nubaj funkcioj estas tre simplaj kaj havas multajn malsamajn uzojn, kiuj postulas okazan pensadon. Ekzemple, ĉiufoje kiam nova uzanto registras, nuba funkcio povas esti ekigita por atentigi programistojn.

En fabriko, kiam certa sensilo atingas certan valoron, ĝi povas ekigi nuban funkcion, kiu faras iom da informtraktado, aŭ sciigas iun prizorgan personaron, ktp.

Nubaj Funkcioj - Event-Driven Server Computing | Google Cloud

konkludo

En ĉi tiu artikolo, ni parolis pri la malsamaj nubaj proponoj kiel IaaS, PaaS, ktp. kaj kiel la komputika stako de Google efektivigas ĉi tiujn malsamajn tavolojn. Ni vidis, ke abstraktaj tavoloj moviĝante de unu servokategorio al alia, kiel IaaS en Paas, postulas malpli da scio pri la subesta.

Por komerco, ĉi tio disponigas kritikan flekseblecon, kiu ne nur plenumas siajn funkciajn celojn, sed ankaŭ renkontas aliajn ŝlosilajn areojn kiel sekureco kaj kosto. Por resumi:

Komputa Motoro - permesas krei vian propran virtualan maŝinon asignante certajn aparatajn rimedojn, ekzemple RAM, procesoro, memoro. Ĝi ankaŭ estas sufiĉe praktika kaj malaltnivela.

Kubernetes Motoro estas plialtiĝo de Compute Engine kaj permesas vin uzi Kubernetes kaj ujojn por administri vian aplikaĵon, permesante al vi grimpi ĝin laŭbezone.

App Engine estas paŝo supren de Kubernetes Engine, ebligante vin koncentriĝi nur pri via kodo dum Google prizorgas ĉiujn subestajn platformajn postulojn.

Nubaj Funkcioj estas la supro de la komputika piramido, permesante al vi skribi simplan funkcion kiu, kiam ĝi ruliĝas, uzas la tutan suban infrastrukturon por kalkuli kaj redoni la rezulton.

Спасибо за внимание!

twitter: @martinomburajr

fonto: www.habr.com

Aldoni komenton