GCP: Разбор вылічальнага стэка Google Cloud Platform

Пераклад артыкула падрыхтаваны спецыяльна для студэнтаў курса «Хмарныя сэрвісы».

Цікава развівацца ў гэтым напрамку? Глядзіце запіс прафесійнага майстар-класа "AWS EC2 сэрвіс", які правёў Ягор Зуеў – TeamLead у кампаніі InBit і аўтар адукацыйнай праграмы ў OTUS.

GCP: Разбор вылічальнага стэка Google Cloud Platform

Google Cloud Platform (GCP) прапануе мноства сэрвісаў, і ў прыватнасці вылічальны стэк, які змяшчае Google Compute Engine (GCE), Google Kubernetes Engine (раней - Container Engine) (GKE), Google App Engine (GAE) і Google Cloud Functions (GCF) ). Усе гэтыя сэрвісы маюць стромкія назовы, але могуць быць не зусім відавочнымі ў стаўленні іх функцый і таго, што робіць іх унікальнымі па стаўленні сябар да сябра. Гэты артыкул прызначаны для тых, хто толькі знаёміцца ​​з хмарнымі канцэпцыямі, у прыватнасці з хмарнымі сэрвісамі і GCP.

GCP: Разбор вылічальнага стэка Google Cloud Platform

1. Вылічальны стэк

Вылічальны стэк можна разглядаць як шматузроўневую абстракцыю над тым, што можа падаць кампутарная сістэма. Гэты стэк ўзыходзіць (рухаецца ўверх) ад «голага жалеза» (голы метал), які адносіцца да фактычных апаратных кампанентаў кампутара, аж да функцый (функцыі), якія ўяўляюць сабой найменшую адзінку вылічэнні. Што важна адзначыць у стаўленні стэка, так гэта тое, што сэрвісы агрэгуюцца пры перасоўванні ўверх па стэку, напрыклад, частка «прыкладанні» (прыкладання), паказаны на малюнку 1 ніжэй, павінен змяшчаць усе базавыя кампаненты кантэйнераў (containers), віртуальных машын (віртуальныя машыны) і жалеза. Такой жа выявай кампанент віртуальных машын павінен утрымоўваць жалеза ўсярэдзіне для працы.

GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 1: Вылічальны стэк | Выява атрымана з Google Cloud

Гэтая мадэль, паказаная на малюнку 1, з'яўляецца асновай для апісання прапаноў ад хмарных правайдэраў. Такім чынам, некаторыя правайдэры могуць падаваць толькі, напрыклад, кантэйнеры і паслугі ніжэй якасцю па стэку, а іншыя - усё, што паказана на малюнку 1.

- Калі вы знаёмыя з хмарнымі сэрвісамі, пераходзіце да раздзеле 3, каб азнаёміцца ​​з эквівалентам GCP
- Калі вам патрэбна толькі зводка па хмарных сэрвісах, пераходзіце да раздзеле 2.4

2. Хмарныя сэрвісы

Свет хмарных вылічэнняў вельмі разнастайны. Воблачнае правайдэры прапануюць мноства паслуг, адаптаваных да розных патрабаванням кліентаў. Магчыма, вы чулі пра такія тэрміны, як IaaS, PaaS, SaaS, FaaS, KaaS і г.д. з усімі літарамі алфавіту, за якімі ідзе «aaS». Нягледзячы на ​​дзіўную дамову аб найменні, яны ўтвараюць набор сэрвісаў хмарных правайдэраў. Я канстатую, што ёсць 3 асноўныя прапановы «як паслуга» (as a Service), якія хмарныя правайдэры амаль заўсёды падаюць.

Гэта IaaS, PaaS і SaaS, якія абазначаюць адпаведна інфраструктуру як паслугу (Infrastructure as a Service), платформу як паслугу (Platform as a Service) і праграмнае забеспячэнне як паслугу (Software as a Service). Важна візуалізаваць хмарныя сэрвісы як узроўні паслуг. Гэта азначае, што калі вы паднімаецеся ці спускаецеся з узроўня на ўзровень, вы, як кліент, перасякаеце розныя варыянты абслугоўвання, якія альбо дадаюцца, альбо прыбіраюцца з асноўнай прапановы. Лепш за ўсё разглядаць гэта як піраміду, як паказана на рысунку 2.
GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 2: Піраміда "aaS" | Выява атрымана з Ruby Garage

2.1 Інфраструктура як паслуга (IaaS)

Гэта самы нізкі ўзровень, які можа прапанаваць пастаўшчык хмарных паслуг, і ён уключае правайдэра хмарных вылічэнняў, які пастаўляе «голую» інфраструктуру, уключаючы прамежкавае праграмнае забеспячэнне, сеткавыя кабелі, працэсары, графічныя працэсары, аператыўную памяць, вонкавае сховішча, серверы і выявы базавых аперацыйных сістэм , напрыклад, Debian Linux, CentOS, Windows і т. д.

Калі замовіце ў пастаўшчыка хмарных паслуг IaaS прапанову, то гэта тое, што вы павінны чакаць атрымаць. За вамі, як за кліентам, застаецца зборка гэтых частак для вядзення вашага бізнесу. Ступень таго, з чым вам давядзецца працаваць, можа вар'іравацца ад пастаўшчыка да пастаўшчыка, але, як правіла, вы проста атрымліваеце апаратнае забеспячэнне і АС, а астатняе за вамі. Прыкладамі IaaS з'яўляюцца AWS Elastic Compute, Microsoft Azure і GCE.

Некаторым людзям можа не спадабацца той факт, што ім даводзіцца ўсталёўваць выявы АС і займацца сеткай, балансаваннем нагрузкі ці клапаціцца пра тое, які тып працэсара ідэальна падыходзіць для іх працоўнай нагрузкі. Менавіта тут мы рухаемся уверх па пірамідзе да PaaS.

2.2/XNUMX Платформа як паслуга (PaaS)

PaaS ўключае ў сябе толькі пастаўшчыка хмарных паслуг, які прапануе пэўную платформу, на якой карыстальнікі могуць ствараць прыкладанні. Гэта абстракцыя над IaaS, якая азначае, што пастаўшчык аблокі бярэ на сябе ўсе дэталі тыпаў ЦП, памяці, АЗП, сховішчы, сетак і т. д. Як паказана на малюнку 2, вы, як кліент, маеце невялікі кантроль над рэальнай платформай, паколькі хмарны правайдэр займаецца ўсімі дэталямі інфраструктуры за вас. Вы запытваеце выбраную платформу і збіраеце на ёй праект. Прыкладам PaaS з'яўляюцца Heroku.

Для кагосьці гэта можа быць занадта высокі ўзровень, бо ён не абавязкова жадае збіраць праект на паказанай платформе, а хутчэй мае патрэбу ў наборы сэрвісаў непасрэдна ад пастаўшчыка хмарных паслуг. Тут на сцэну выходзіць SaaS.

2.3 Праграмнае забеспячэнне як паслуга (SaaS)

SaaS уяўляе сабой найболей распаўсюджаныя сэрвісы, якія прадстаўляюцца пастаўшчыкамі хмарных паслуг. Яны прызначаны для канчатковых карыстальнікаў і даступныя галоўным чынам праз вэб-сайты, напрыклад Gmail, Google Docs, Dropbox і г. д. Што тычыцца Google Cloud, ёсць некалькі прапаноў па-за іх вылічальным стэкам, якія з'яўляюцца SaaS. Да іх ставяцца Data Studio, Big Query і т. д.

2.4 Зводка па хмарных сэрвісах

складнікі
IaaS
PaaS
SaaS

Што вы атрымліваеце
Вы атрымліваеце інфраструктуру і плаціце адпаведна. Свабоду выкарыстоўваць ці ўсталёўваць любое ПЗ, АС ці іх кампазіцыю.
Тут вы атрымліваеце тое, што вы запытваеце. ПЗ, жалеза, АС, вэб-асяроддзе. Вы атрымліваеце гатовую да выкарыстання платформу і плаціце адпаведна.
Тут вам не трэба ні пра што турбавацца. Вам прадастаўляецца прадусталяваны настроены ў адпаведнасці з вашымі патрабаванні пакет, і вам застаецца толькі заплаціць адпаведна.

Значэнне
Базавы ўзровень вылічэнняў
Верхавіна IaaS
Гэта па сутнасці поўны пакет паслуг

Тэхнічныя складанасці
Неабходныя тэхнічныя веды
Вам дадзена базавая канфігурацыя, але ўсё яшчэ неабходныя веды прадметнай вобласці.
Не трэба затлумляцца з тэхнічнымі дэталямі. Пастаўшчык SaaS дае ўсё.

З чым працуе
Віртуальныя машыны, сховішчы, серверы, сетка, балансавальнікі нагрузкі і г.д.
Асяроддзі выканання (як java runtime), базы дадзеных (як mySQL, Oracle), вэб серверы (як tomcat і т. д.)
Прыкладанні накшталт паштовых сэрвісаў (Gmail, Yahoo mail і т. д.), сайтаў сацыяльнага ўзаемадзеяння (Facebook і т. д.)

Граф папулярнасці
Папулярна сярод высокакваліфікаваных распрацоўшчыкаў, даследчыкаў, якім патрабуецца індывідуальная настройка ў адпаведнасці з іх патрабаваннямі або вобласцю даследаванняў
Найбольш папулярна сярод распрацоўшчыкаў, паколькі яны могуць засяродзіцца на распрацоўцы сваіх прыкладанняў або скрыптоў. Ім не трэба турбавацца аб загрузцы трафіку ці кіраванні серверам і т. д.
Найбольш папулярна сярод звычайных спажыўцоў ці кампаній, якія выкарыстоўваюць праграмнае забеспячэнне, такое як электронная пошта, файлаабменнікі, сацыяльныя сеткі, бо ім не трэба турбавацца аб тэхнічных дэталях

Малюнак 3: Зводка асноўных хмарных прапаноў | Выява прадастаўлена Amir at Blog Specia

3. Вылічальны пакет Google Cloud Platform

Разгледзеўшы тыповыя прапановы хмарных правайдэраў у раздзеле 2, мы можам супаставіць іх з прапановамі Google Cloud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 4: Абразок Google Compute Engine (GCE)

GCE – гэта IaaS прапанову ад Google. З GCE вы можаце свабодна ствараць віртуальныя машыны, размяркоўваць рэсурсы працэсара і памяці, выбіраць тып сховішча, напрыклад SSD ці HDD, а таксама аб'ём памяці. Гэта амаль гэтак жа, як калі б вы стварылі свой уласны кампутар/працоўную станцыю і займаліся ўсімі дэталямі яго працы.

У GCE вы можаце абраць ад мікра інстанцый з 0,3-ядзерным працэсарамі і 1 ГБ АЗП да 96-ядзерных монстраў з больш за 300 ГБ АЗП. Вы таксама можаце ствараць віртуальныя машыны нестандартнага памеру для сваіх працоўных нагрузак. Для тых, хто зацікавіўся - гэта віртуальныя машыны, якія вы можаце сабраць.

Тыпы машын | Дакументацыя Compute Engine | Google Cloud

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

GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 5: Абразок Google Kubernetes Engine (GKE)

GKE – гэта ўнікальная вылічальная прапанова ад GCP, якая ўяўляе сабой абстракцыю над Compute Engine. У больш агульным сэнсе GKE можна аднесці да катэгорыі "Кантэйнер як паслуга" (CaaS), часам званай "Kubernetes як паслуга" (KaaS), які дазваляе кліентам лёгка запускаць свае Docker-кантэйнеры ў цалкам кіраваным асяроддзі Kubernetes. Для тых, хто не знаёмы з кантэйнерамі, кантэйнеры дапамагаюць модульна фармаваць сэрвісы/прыкладанні, таму розныя кантэйнеры могуць утрымоўваць розныя сэрвісы, напрыклад, адзін кантэйнер можа размяшчаць інтэрфейс вашага вэб-прыкладанні, а іншы можа ўтрымоўваць яго серверную частку. Kubernetes выконвае аўтаматызацыю, каардынацыю, кіраванне і разгортванне вашых кантэйнераў. Больш інфармацыі тут.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 6: Абразок Google App Engine (GAE)

Як згадана ў раздзеле 2.2, PaaS знаходзіцца вышэй за IaaS, і ў выпадку GCP яго таксама можна разглядаць як прапанова над GKE. GAE – гэта спецыялізаваны Google PaaS, і як яны самі лепш за ўсё апісваюць сябе – «нясіце ваш код, а мы паклапоцімся пра ўсё астатняе».

Гэта гарантуе, што кліенты, якія выкарыстоўваюць GAE, не павінны мець справу з базавым апаратным/прамежкавым праграмным забеспячэннем, і ўжо могуць мець папярэдне настроеную платформу, гатовую да працы; усё, што ім трэба зрабіць, гэта падаць код, неабходны для яго запуску.

GAE аўтаматычна апрацоўвае маштабаванне, каб задаволіць нагрузку і попыт з боку карыстальнікаў, што азначае, што калі ваш сайт, які прадае кветкі, раптоўна дасягне піка, таму што набліжаецца дзень святога Валянціна, GAE будзе апрацоўваць маштабаванне базавай інфраструктуры, каб задаволіць попыт і гарантаваць, што ваш вэб-сайт не ўпадзе з-за ўзрослай попыту. Гэта азначае, што вы плаціце менавіта за тыя рэсурсы, якія патрабуюцца вашаму з дадаткам у дадзены момант.

GAE выкарыстоўвае Kubernetes або яго убудаваную версію, каб справіцца з усім гэтым, каб вам не прыйшлося пра гэта клапаціцца. GAE лепш за ўсё падыходзіць для кампаній, якія не зацікаўлены ў базавай інфраструктуры і клапоцяцца толькі аб тым, каб іх прыкладанне было даступна найлепшым чынам.

На маю думку, GAE – гэта лепшае месца для старту, калі вы распрацоўшчык з выдатнай ідэяй, але не хочаце займацца руціннай працай па наладзе сервераў, балансаваннем нагрузкі і ўсёй іншай працаёмкай devops / SRE працай. З часам вы маглі б паспрабаваць GKE і GCE, але гэта толькі маё меркаванне.

Адмова ад адказнасці: AppEngine выкарыстоўваецца для вэб-прыкладанняў, а не мабільных прыкладанняў.

Для азнаямлення: App Engine - Стварайце маштабуюцца вэб-і мабільныя бэкэнды на любой мове | Google Cloud

3.4 Google Cloud Functions - (FaaS)

GCP: Разбор вылічальнага стэка Google Cloud Platform

Малюнак 7: Абразок Google Cloud Functions (GCF)

Спадзяюся, вы заўважылі тэндэнцыю, прааналізаваўшы папярэднія прапановы. Чым вышэй вы паднімаецеся па ўсходах вылічальных рашэнняў GCP, тым менш вам трэба турбуецца аб базавых тэхналогіях. Гэтая піраміда завяршаецца найменшай магчымай адзінкай вылічэнні, функцыяй, як паказана ў раздзеле 1.

GCF з'яўляецца адносна новым GCP-прапановай, якое ўсё яшчэ знаходзіцца на стадыі бэта-тэставанні (на момант напісання гэтага артыкула). Воблачнае функцыі дазваляюць вызначаным функцый, напісаным распрацоўнікам, запускацца па якой-небудзь падзеі.

Яны кіруюцца падзеямі і ляжаць у аснове моднага слова "бессерверны", гэта значыць не ведаюць сервераў. Воблачнае функцыі вельмі простыя і маюць шмат розных ужыванняў, якія патрабуюць падзейнага мыслення. Напрыклад, кожны раз, калі новы карыстальнік рэгіструецца, можа быць запушчана хмарная функцыя, каб папярэдзіць распрацоўшчыкаў.

На фабрыцы, калі вызначаны датчык дасягае вызначанага значэння, ён можа запусціць хмарную функцыю, якая выконвае некаторую апрацоўку інфармацыі, ці паведамляе некаторы абслуговы персанал і т. д.

Воблачныя функцыі - кіраваныя падзеямі серверныя вылічэнні | Google Cloud

Заключэнне

У гэтым артыкуле мы казалі аб розных хмарных прапановах, напрыклад IaaS, PaaS і т. д., і як стэк вылічэнняў Google рэалізуе гэтыя розныя ўзроўні. Мы бачылі, што ўзроўні абстракцыі пры пераходзе з адной катэгорыі паслуг у іншую, напрыклад, IaaS у Paas, патрабуюць менш ведаў аб ляжалай у аснове.

Для бізнесу гэта забяспечвае крытычна важную гнуткасць, якая не толькі адпавядае яго аператыўным мэтам, але таксама задавальняе іншым ключавых абласцях, такім як бяспека і кошт. Абагульняючы:

Вылічальны рухавік - дазваляе вам стварыць сваю ўласную віртуальную машыну, вылучаючы пэўныя апаратныя рэсурсы, напрыклад, АЗП, працэсар, памяць. Ён гэтак жа дастаткова практычны і нізкаўзроўневы.

Рухавік Kubernetes - Гэта крок вышэй у параўнанні з Compute Engine, які дазваляе вам выкарыстоўваць Kubernetes і кантэйнеры для кіравання вашым дадаткам, дазваляючы пры неабходнасці маштабаваць яго.

App Engine - Гэта крок вышэй у параўнанні з Kubernetes Engine, які дазваляе вам засяродзіцца толькі на сваім кодзе, у той час як Google забяспечвае ўсе патрабаванні базавай платформы.

Cloud-Functions - Гэта вяршыня вылічальнай піраміды, якая дазваляе напісаць простую функцыю, якая пры запуску выкарыстоўвае ўсю базавую інфраструктуру для вылічэння і вяртання выніку.

Дзякуй за ўвагу!

Twitter: @martinomburajr

Крыніца: habr.com

Дадаць каментар