Pradžia / Programavimas / AWS vs. Azure vs. Google Cloud

AWS vs. Azure vs. Google Cloud

Kai reikia pasirinkti debesų infrastruktūros tiekėją, dažniausiai viskas nusileidžia iki trijų didžiųjų žaidėjų – Amazon Web Services, Microsoft Azure ir Google Cloud Platform. Kiekvienas iš jų turi savo istoriją, stipriąsias puses ir tam tikrus keistokus sprendimus, kurie iš pirmo žvilgsnio atrodo logiški, bet vėliau verčia klausti „kodėl gi taip padaryta”. Šiame straipsnyje pabandysiu apžvelgti tai iš praktinės pusės, be marketinginio blizgesio, kurio ir taip apstu oficialiuose puslapiuose.

Rinkos padėtis ir kodėl tai svarbu

AWS į rinką atėjo 2006 metais ir ilgą laiką buvo praktiškai vienintelis rimtas žaidėjas. Ta pirmojo žingsnio privilegija reiškia, kad šiandien jie turi didžiausią paslaugų portfelį, daugiausiai duomenų centrų regionų ir, tiesą sakant, didžiausią bendruomenę, kuri gali padėti, kai kažkas nutinka ne taip pusę trečios nakties.

Azure atsirado kiek vėliau, bet Microsoft turėjo tai, ko neturėjo niekas kitas – jau egzistuojantį įmonių klientų tinklą, kuris naudojo Windows Server, Active Directory ir Office. Kai tokia įmonė galvoja apie debesų migraciją, Azure atrodo natūralus pasirinkimas, nes integracija su esama infrastruktūra tiesiog paprastesnė.

Google Cloud yra trečias pagal dydį, tačiau nevertėtų jo nurašyti. Google turi patirties valdant didžiulę infrastruktūrą (prisiminkim, kad jie valdo paiešką ir YouTube), ir ta patirtis atsispindi jų konteinerių bei duomenų analitikos sprendimuose. Kubernetes, beje, gimė būtent Google viduje, tad jei jūsų architektūra sukasi apie konteinerius, verta pažiūrėti į GCP kitu kampu.

Kainodara – kur slypi pinigų duobės

Visi trys tiekėjai reklamuoja „mokėk už tai, ką naudoji” modelį, bet realybėje kainodara yra painus labirintas su daugybe kintamųjų. AWS turi turbūt sudėtingiausią kainų struktūrą – vien EC2 instancijų tipų yra šimtai, o duomenų perdavimo (egress) kainos gali nustebinti, jei nesi atidus.

Azure kainodara panašiai sudėtinga, tačiau jei turite esamą Microsoft licencijų sutartį (pavyzdžiui, per Enterprise Agreement), galite gauti nemažas nuolaidas per Azure Hybrid Benefit programą. Tai realus argumentas įmonėms, kurios jau moka už Windows Server licencijas.

Google Cloud kainodaros modelis dažnai laikomas paprasčiausiu ir skaidriausiu – automatinės nuolaidos ilgalaikiam naudojimui (sustained use discounts) veikia be papildomų sutarčių ar įsipareigojimų, priešingai nei AWS ar Azure „reserved instances”, kur reikia iš anksto įsipareigoti metams ar keleriems metams. Jei jūsų darbo krūviai nenuspėjami, tai gali būti didelis pliusas.

Praktinis patarimas: prieš pasirašant bet kokią sutartį, būtinai išbandykite kainų skaičiuoklę realiu scenarijumi, ne demonstraciniais duomenimis. Skirtumas tarp „atrodo pigu” ir realios mėnesio sąskaitos gali būti šokiruojantis, ypač kai įskaičiuojate duomenų perdavimo mokesčius tarp regionų.

Skaičiavimo paslaugos: EC2, Virtual Machines ir Compute Engine

Pagrindinė skaičiavimo paslauga kiekvienoje platformoje veikia panašiai – galite paleisti virtualias mašinas su pasirinktais resursais. AWS EC2 siūlo įspūdingą pasirinkimų kiekį – nuo mažiausių t3.micro iki milžiniškų metal instancijų, skirtų specifiniams poreikiams (pavyzdžiui, licencijavimo apribojimams).

Azure Virtual Machines veikia panašiai, tačiau čia jaučiama Windows aplinkos įtaka – jei jūsų komanda įpratusi prie Windows administravimo įrankių, pereiti prie Azure bus intuityviau. Be to, integracija su Active Directory čia realiai nepriekaištinga, nes tai ta pati kompanija kuria abu produktus.

Google Compute Engine pasižymi lankstumu kuriant custom mašinų tipus – galite tiksliai nurodyti, kiek CPU ir RAM jums reikia, nesirenkant iš fiksuoto sąrašo. Tai gali sutaupyti pinigų, jei jūsų darbo krūvis netelpa į standartinius šablonus.

Konteineriai ir orkestracija

Čia Google Cloud turi natūralų pranašumą – Google Kubernetes Engine (GKE) laikomas pačiu brandžiausiu valdomu Kubernetes sprendimu rinkoje, nes patys Kubernetes kūrėjai dirba Google. AWS turi savo EKS, kuris per pastaruosius metus gerokai patobulėjo, bet vis dar reikalauja daugiau rankinio konfigūravimo. Azure Kubernetes Service (AKS) yra padorus vidurio variantas, ypač patogus, jei jau naudojate kitas Azure paslaugas.

Bevisiogeneriai sprendimai ir serverless kryptis

Serverless architektūra tapo madinga jau ne pirmi metai, ir visi trys tiekėjai turi savo variantus. AWS Lambda buvo pirmasis rimtas serverless produktas ir vis dar išlieka standartu, prie kurio lyginami kiti. Integracija su likusiu AWS ekosistemos gabalu (S3, DynamoDB, API Gateway) yra sklandi ir gerai dokumentuota.

Azure Functions siūlo panašų funkcionalumą, tačiau vienas įdomus niuansas – čia galite rašyti kodą tiesiogiai naršyklėje per Azure portalą patogiau, nei kitose platformose, kas pravartu greitiems prototipams ar demonstracijoms.

Google Cloud Functions kiek atsilieka funkcionalumo kiekiu, tačiau Google Cloud Run yra įdomi alternatyva – jis leidžia paleisti konteinerizuotas aplikacijas serverless būdu, suteikiant daugiau lankstumo nei tradicinis funkcijų modelis. Jei jūsų komanda jau dirba su Docker konteineriais, Cloud Run gali būti patogesnis pasirinkimas nei perrašinėti kodą į specifinį funkcijų formatą.

Duomenų bazės ir saugykla

Duomenų bazių pasirinkimas dažnai lemia visą architektūrą, tad verta pažiūrėti atidžiau. AWS turi plačiausią asortimentą – RDS palaiko beveik visus populiarius reliacinius variklius (PostgreSQL, MySQL, MariaDB, Oracle, SQL Server), o DynamoDB yra vienas brandžiausių NoSQL sprendimų rinkoje su tikrai gera skalė.

Azure SQL Database yra natūralus pasirinkimas, jei jūsų aplikacija jau naudoja Microsoft SQL Server – migracija čia dažniausiai vyksta be didesnių galvos skausmų. Cosmos DB, jų globalinė NoSQL duomenų bazė, siūlo įspūdingą lankstumą su keliais konsistencijos modeliais, nors kaina gali greitai išaugti, jei nesuprantate, kaip veikia Request Units sistema.

Google Cloud stipriausia pusė čia yra BigQuery – duomenų analitikos įrankis, kuris leidžia vykdyti sudėtingas SQL užklausas per petabaitus duomenų per sekundes. Jei jūsų verslas remiasi duomenų analize dideliu mastu, BigQuery dažnai minimas kaip vienas geriausių sprendimų rinkoje, aplenkiantis panašius AWS Redshift ar Azure Synapse produktus greičiu ir paprastumu.

Objektinė saugykla

S3, Azure Blob Storage ir Google Cloud Storage funkciniu požiūriu labai panašūs – visi trys siūlo skirtingus prieigos dažnumo tarifus (hot, cool, archive). S3 turi ilgiausią istoriją ir daugiausiai trečiųjų šalių integracijų, tačiau realiais testais visi trys veikia pakankamai panašiai kasdieniam naudojimui.

Vartotojo patirtis ir mokymosi kreivė

Čia nuomonės skiriasi priklausomai nuo to, iš kur ateinate. AWS konsolė istoriškai laikoma sudėtingiausia – daug meniu, daug terminų, daug galimybių pasiklysti. Tačiau kai išmoksti, ta pati sudėtingumas virsta galia, nes turite kontrolę beveik virš kiekvieno parametro.

Azure portalas jaučiasi labiau „Windows” stiliaus – jei esate dirbę su Windows Server administravimo įrankiais, jausitės kaip namie. Tai gali būti privalumas arba trūkumas, priklausomai nuo jūsų fono.

Google Cloud konsolė dažnai minima kaip švariausia ir intuityviausia iš trijų, ypač pradedantiesiems. Google akivaizdžiai investavo į vartotojo patirties dizainą, ir tai jaučiasi kasdieniame darbe – mažiau paslėptų meniu, aiškesnė navigacija.

Rekomendacija komandoms: jei jūsų inžinieriai jau turi patirties su konkrečiu ekosistema (pavyzdžiui, dauguma naudoja Windows aplinką), verta rimtai apsvarstyti tą platformą, net jei kitas variantas atrodo techniškai pranašesnis popieriuje. Mokymosi kreivė kainuoja realius pinigus ir laiką.

Daugiadebesė (multi-cloud) strategija – ar tikrai verta?

Pastaraisiais metais vis daugiau įmonių kalba apie multi-cloud strategiją – naudoti kelis tiekėjus vienu metu, kad išvengtų priklausomybės nuo vieno (vendor lock-in). Teorija skamba gerai, praktika – sudėtingesnė nei atrodo.

Kiekviena platforma turi savo unikalias paslaugas ir API, kurių tiesiog nėra kitur identiška forma. Jei sukuriate architektūrą, kuri naudoja tik bendriausius, „lowest common denominator” sprendimus (paprastos virtualios mašinos, standartinė objektinė saugykla), galite realiai pasiekti platformos nepriklausomybę, tačiau tokiu atveju prarandate daugybę patogumų ir optimizacijų, kurias siūlo konkreti platforma.

Realybėje dauguma įmonių, kurios sako naudojančios multi-cloud, iš tikrųjų turi vieną pagrindinę platformą ir naudoja kitas specifiniams poveikiams – pavyzdžiui, pagrindinė infrastruktūra AWS, bet duomenų analitika per BigQuery, nes tas produktas tiesiog geresnis konkrečiai užduočiai. Tai pragmatiškesnis požiūris nei bandymas dirbtinai išlaikyti pilną simetriją tarp visų platformų.

Tad ką rinktis realiame gyvenime?

Po visko, kas aprašyta aukščiau, tikriausiai laukiate vieno konkretaus atsakymo, bet sąžiningai – jo nėra, ir bet kas, kas sako kitaip, greičiausiai bando jums kažką parduoti. Vietoj to, štai keli praktiniai orientyrai, kurie realiai padėjo man priimant sprendimus.

Jei startuojate nuo nulio ir neturite jokių esamų sistemų ar licencijų, kurios varžytų pasirinkimą, AWS turi didžiausią bendruomenę, daugiausiai dokumentacijos ir StackOverflow atsakymų – tai reiškia, kad kai kažkas sugenda (o kažkas visada sugenda), rasti sprendimą bus paprasčiau. Tai realus argumentas, ypač mažoms komandoms be dedikuoto DevOps specialisto.

Jei jūsų organizacija jau giliai integruota į Microsoft ekosistemą – naudojate Office 365, Active Directory, SQL Server licencijas – Azure migracija bus natūralesnė ir pigesnė dėl hibridinių licencijavimo programų. Nereikia perrašinėti autentifikacijos logikos ar mokytis naujų administravimo įrankių nuo nulio.

Jei jūsų verslo esmė sukasi apie didelius duomenų kiekius, mašininį mokymąsi ar analitiką, Google Cloud verta rimto svarstymo. BigQuery ir Vertex AI (jų mašininio mokymosi platforma) yra tikrai stiprūs produktai, kurie kai kuriais atvejais aplenkia konkurentus techniniu lygiu, net jei rinkos dalis mažesnė.

Galiausiai, nepamirškite praktinio testo – dauguma tiekėjų siūlo nemokamus kreditus arba bandomąjį laikotarpį. Užuot skaitę dešimtą palyginimo straipsnį (net ir šitą), paimkite konkretų savo projekto scenarijų, sukurkite jį visose trijose platformose per savaitę ir palyginkite ne tik kainą, bet ir tai, kaip greitai jūsų komanda pasijunta patogiai. Ta subjektyvi patirtis dažnai svarbesnė už bet kokią lentelę su funkcijų palyginimu, nes galų gale infrastruktūrą palaikys žmonės, o ne specifikacijų dokumentas.