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 по-долу, трябва да съдържа всички основни компоненти на контейнера (контейнери), виртуални машини (виртуални машини) и желязо. По същия начин компонентът на виртуалните машини трябва да съдържа хардуер вътре, за да работи.

GCP: Анализ на изчислителния стек на Google Cloud Platform

Фигура 1: Изчислителен стек | Изображението е получено от Google Cloud

Този модел, показан на Фигура 1, е основата за описание на предложения от облачни доставчици. По този начин някои доставчици могат да предоставят само, например, контейнери и услуги с по-ниско качество по протежение на стека, докато други могат да предоставят всичко, което е показано на фигура 1.

— Ако сте запознати с облачните услуги, отидете на раздел 3за да видите еквивалента на GCP
— Ако искате само обобщение на облачните услуги, отидете на раздел 2.4

2. Облачни услуги

Светът на облачните изчисления е много разнообразен. Облачните доставчици предлагат разнообразие от услуги, съобразени с различните изисквания на клиентите. Може да сте чували за термини като IaaS, PaaS, SaaS, FaaS, KaaS и т.н. с всички букви от азбуката, последвани от "aaS". Въпреки странната конвенция за именуване, те формират набор от облачни доставчици на услуги. Заявявам, че има 3 основни предложения „като услуга“, които облачните доставчици почти винаги предоставят.

Това са IaaS, PaaS и SaaS, които съответно означават инфраструктура като услуга, платформа като услуга и софтуер като услуга. Важно е облачните услуги да се визуализират като слоеве от предоставяни услуги. Това означава, че докато се движите нагоре или надолу от ниво на ниво, вие като клиент преминавате през различни опции за обслужване, които се добавят или изваждат от основното предложение. Най-добре е да го мислите като пирамида, както е показано на фигура 2.
GCP: Анализ на изчислителния стек на Google Cloud Platform

Фигура 2: aaS пирамида | Изображението е получено от Руби Гараж

2.1 Инфраструктура като услуга (IaaS)

Това е най-ниското ниво, което доставчикът на облак може да предложи и включва доставчика на облак, доставящ голата инфраструктура, включително междинен софтуер, мрежови кабели, процесори, графични процесори, RAM, външно хранилище, сървъри и базови изображения на операционна система, напр. Debian Linux, CentOS, Windows и т.н.

Ако поръчате оферта от облачен доставчик на IaaS, това е, което трябва да очаквате да получите. От вас, клиента, зависи да сглобите тези части, за да управлявате бизнеса си. Степента на това, с което ще трябва да работите, може да варира от доставчик до доставчик, но обикновено получавате само хардуера и операционната система, а останалото зависи от вас. Примери за IaaS са AWS Elastic Compute, Microsoft Azure и GCE.

Някои хора може да не харесват факта, че трябва да инсталират образи на операционната система и да се занимават с работа в мрежа, балансиране на натоварването или да се тревожат какъв тип процесор е идеален за тяхното натоварване. Това е мястото, където се придвижваме нагоре по пирамидата към PaaS.

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

PaaS включва само доставчик на облачни услуги, предлагащ специфична платформа, на която потребителите могат да създават приложения. Това е абстракция спрямо IaaS, което означава, че доставчикът на облак се грижи за всички детайли на типове CPU, памет, RAM, съхранение, мрежи и т.н. Както е показано на Фигура 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), бази данни (като mySQL, Oracle), уеб сървъри (като tomcat и др.)
Приложения като имейл услуги (Gmail, Yahoo mail и др.), сайтове за социално взаимодействие (Facebook и др.)

Графика на популярността
Популярен сред висококвалифицирани разработчици, изследователи, които изискват персонализиране според техните изисквания или изследователска област
Най-популярни сред разработчиците, тъй като те могат да се съсредоточат върху разработването на своите приложения или скриптове. Те не трябва да се тревожат за натоварването на трафика или управлението на сървъра и т.н.
Най-популярен сред обикновените потребители или компании, които използват софтуер като имейл, споделяне на файлове, социални мрежи, тъй като не е нужно да се притесняват за технически подробности

Фигура 3: Обобщение на основните облачни предложения | Изображението е предоставено Амир в Blog Specia

3. Google Cloud Platform Computing Suite

След като разгледахме типичните предложения на облачни доставчици в раздел 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 GB RAM до 96-ядрени чудовища с над 300 GB RAM. Можете също така да създавате виртуални машини с персонализиран размер за вашите работни натоварвания. За тези, които се интересуват, това са виртуални машини, които можете да изградите.

Типове машини | Документация на 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 е персонализираният PaaS на Google и начинът, по който те най-добре се описват, е „донесете своя код и ние ще се погрижим за останалото“.

Това гарантира, че клиентите, използващи GAE, не трябва да се справят с основния хардуер/среден софтуер и вече могат да имат предварително конфигурирана платформа, готова за работа; всичко, което трябва да направят, е да предоставят кода, необходим за изпълнението му.

GAE автоматично се справя с мащабирането, за да отговори на натоварването и потребителското търсене, което означава, че ако вашият уебсайт за продажба на цветя внезапно достигне пик, защото наближава Свети Валентин, GAE ще се справи с мащабирането на основната инфраструктура, за да отговори на търсенето и да гарантира, че уебсайтът ви няма да се срине поради повишено търсене. Това означава, че плащате точно за ресурсите, които вашето приложение изисква в този момент.

GAE използва Kubernetes или неговата собствена версия, за да се справи с всичко това, така че не е нужно да се притеснявате за това. GAE е най-подходящ за компании, които не се интересуват от основната инфраструктура и се грижат само за това приложението им да е достъпно по най-добрия възможен начин.

По мое мнение GAE е най-доброто място да започнете, ако сте разработчик със страхотна идея, но не искате да се занимавате с тежката работа по настройване на сървъри, балансиране на натоварването и цялата друга отнемаща време работа по devops/SRE . След време можете да опитате GKE и GCE, но това е само моето мнение.

Опровержение: AppEngine се използва за уеб приложения, а не за мобилни приложения.

За информация: App Engine – Изграждане на мащабируем уеб и мобилен бекенд на всеки език | Google Cloud

3.4 Функции на Google Cloud - (FaaS)

GCP: Анализ на изчислителния стек на Google Cloud Platform

Фигура 7: Икона на Google Cloud Functions (GCF).

Надяваме се, че сте забелязали тенденция, като разгледате предишните предложения. Колкото по-високо се изкачвате по стълбата на GCP компютърните решения, толкова по-малко трябва да се тревожите за основната технология. Тази пирамида завършва с най-малката възможна единица за изчисление, функция, както е показано в Раздел 1.

GCF е сравнително ново предложение за GCP, което все още е в бета версия (по време на писането на това). Облачните функции позволяват определени функции, написани от разработчика, да бъдат задействани от събитие.

Те се управляват от събития и са в основата на модната дума „без сървър“, което означава, че не познават сървъри. Облачните функции са много прости и имат много различни приложения, които изискват мислене за събития. Например, всеки път, когато се регистрира нов потребител, може да се задейства облачна функция, за да предупреди разработчиците.

Във фабрика, когато определен сензор достигне определена стойност, той може да задейства облачна функция, която обработва известна информация или уведомява персонал по поддръжката и т.н.

Облачни функции - управлявани от събития сървърни изчисления | Google Cloud

Заключение

В тази статия говорихме за различните облачни предложения като IaaS, PaaS и т.н. и как изчислителният стек на Google прилага тези различни слоеве. Видяхме, че слоевете на абстракция при преминаване от една категория услуга към друга, като IaaS в Paas, изискват по-малко познания за основата.

За един бизнес това осигурява критична гъвкавост, която не само отговаря на неговите оперативни цели, но и отговаря на други ключови области като сигурност и разходи. Да обобщим:

Compute Engine - позволява ви да създадете своя собствена виртуална машина чрез разпределяне на определени хардуерни ресурси, например RAM, процесор, памет. Също така е доста практично и ниско ниво.

Kubernetes Engine е стъпка напред от Compute Engine и ви позволява да използвате Kubernetes и контейнери, за да управлявате вашето приложение, което ви позволява да го мащабирате според нуждите.

App Engine е стъпка напред от Kubernetes Engine, което ви позволява да се съсредоточите само върху вашия код, докато Google се грижи за всички основни изисквания на платформата.

Облачни функции е върхът на изчислителната пирамида, което ви позволява да напишете проста функция, която, когато се изпълнява, използва цялата основна инфраструктура, за да изчисли и върне резултата.

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

Twitter: @martinomburajr

Източник: www.habr.com

Добавяне на нов коментар