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. Изчислителен стек

Изчислителният стек може да се разглежда като многоуровнева абстракция над това, което компютърната система може да предложи. Този стек се издига (moves up) от 'голите метали' (bare metal), които се отнасят до фактическия хардуер на компютъра, до функции (functions), които представляват най-малката единица изчисление. Важно е да се отбележи, че при издигането по стека услугите се агрегатират, например разделът 'приложения' (apps), показан на фигура 1 по-долу, трябва да съдържа всички основни компоненти на контейнерите (контейнери), виртуалните машини (virtual machines) и метала. По същия начин компонентът на виртуалните машини трябва да съдържа метала в себе си за работа.

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 Платформа като услуга (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 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 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 е специализиран 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, изискват по-малко знания за основата.

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

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

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

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

Cloud-Functions — това е върхът на изчислителната пирамида, позволяваща ви да напишете проста функция, която при изпълнение използва цялата основна инфраструктура за изчисления и връща резултата.

Благодаря за вниманието!

Twitter: @martinomburajr

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster