Ai o idee grozavă pentru următoare aplicație pe care vrei să o lanseze compania ta, ești pasionat de programare sau trebuie să prezinți urgent un Proof of Concept? Descoperă App Engine de la Google, o platformă de cloud computing ca serviciu (PaaS). Dezvolți codul, iar platforma îți automatizează cea mai pare a responsabilităților de întreținere a infrastructurii.
Ce este Google App Engine?
Unul dintre cele mai populare servicii cloud GCP, App Engine este o platformă de dezvoltare fără server complet gestionată. Cu ajutorul acesteia, poți implementa și găzdui aplicații web și mobile ușor de scalat, fără griji pentru infrastructură.
Care sunt punctele forte ale Google App Engine:
- serverless – Fără server presupune că nu trebuie să îți întreții propriile mașini fizice, deoarece starea acestora se află sub supravegherea furnizorului de servicii. Mai exact, „închiriezi” resurse de la acest furnizor. În general, toate serviciile cloud sunt fără server (serverless)
- platforme de dezvoltare complet gestionate – App Engine este un serviciu în modelul Platform-as-a-Service (PaaS). Ca dezvoltator de aplicații, nu trebuie să îți faci griji cu privire la configurarea unei mașinii virtuale, scalarea, echilibrarea încărcăturii sau gestionarea bazei de date. Suportul PaaS pentru aceste zone este automatizat.
- pentru implementare și găzduire – Cu ajutorul App Engine, putem implementa aplicații în cel mai scurt timp, putem face modificări relativ ușor și rapid și putem adăuga noi funcționalități. De asemenea, puteți avea mai multe versiuni ale aplicației în serviciu, de exemplu, pentru a efectua teste A/B.
- aplicații web și mobile create în aproape orice limbaj – App Engine îți oferă două medii: standard, care acceptă limbaje de programare populare și flexibil, permițându-vă să rulați orice cod containerizat.
Serviciul crește automat pentru a face față cerințelor tot mai mari, la fel cum se poate scala în descreștere atunci când calculele complexe se epuizează sau utilizatorii părăsesc aplicația.
Pe lângă o flexibilitate a infrastructurii, mai există și flexibilitatea costurilor. Cu Google App Engine (GAE), ești taxat în funcție de consumul curent. Trafic mic înseamnă o factură mică, în timp ce mai mult trafic corespunde unei sume proporțional mai mari pe factură. Costurile serviciilor pot fi urmărite cu ușurință în panoul de facturare, iar performanța poate fi monitorizată datorită integrării cu setul de instrumente Operations (numit anterior Stackdriver).
Cele două medii în App Engine: standard și flexibil
În funcție de nevoile afacerii tale, vei avea de ales unul dintre cele două medii ale GAE: standard și flexibil. Mai departe vom vorbi despre cele două medii, aplicațiile acestora și o comparație între avantajele și dezavantajele celor două. Platforma App Engine este adaptată atât aplicațiilor monolitice, de mari dimensiuni, cât și aplicațiilor din arhitectura de microservicii.
App Engine două medii – standard și flexibil. Dezvoltatorul poate implementa și dezvolta aplicația într-un singur mediu sau poate combina avantajele ambelor medii pentru arhitecturi mai flexibile și mai performante.
Standard pentru tehnologiile Python, Java, Node.js, PHP, Ruby și Go.
Mediul standard acceptă codul sursă al aplicației creat în următoarele versiuni ale limbajului de programare:
- Python 2.7, 3.7, 3.8, 3.9,
- Java 8, 11,
- Node.js 8, 10, 12, 14,
- PHP 5.5, 7.2, 7.3, 7.4,
- Ruby 2.5, 2.6, 2.7,
- Go 1.11, 1.12, 1.13, 1.14, 1.15.
Mediul standard este recomandat pentru aplicațiile care pot prezenta vârfuri mari și bruște de încărcare și trebuie să mențină un nivel ridicat de scalare. Scalarea poate fi manuală sau automată; cu autoscaling, durează câteva secunde pentru a porni instanța. Puteți reduce numărul de instanțe la zero, astfel încât să nu trebuie să plătiți pentru consum atunci când nimeni nu folosește aplicația.
Printre dezavantajele mediului standard, se numără:
- Lipsa unei modalități de a consuma resursele motorului de calcul din appengine
- Lipsa accesului SSh la mașina virtuală și deci, mai puțină flexibilitate în integrarea cu sisteme terțe
- Nu poate fi rulat niciun proces în fundal
Standardul acceptă, de asemenea, implementarea rapidă, deoarece implementarea noii versiuni are loc în câteva secunde.
App Engine are praguri de utilizare gratuită. După ce acestea sunt depășite, costul este taxat pentru fiecare oră începută de la funcționarea instanței și pentru traficul de rețea de ieșire. Prețurile depind, printre altele, și de tipul de mașină și locația acesteia.
Flexibil pentru containere
Mediul flexibil acceptă orice cod de aplicație care:
- este creat în orice versiune a limbajului de programare acceptat: Python, Java, Node.js, Go, Ruby, PHP sau .NET,
- este creat într-un alt limbaj de programare, folosind orice alt cadru sau bibliotecă diferită, dar elementele aplicației sunt în containere Docker.
Mediul flexibil este recomandat pentru aplicații care au o sarcină destul de uniformă, fără fluctuații bruște. Aplicația ta este totuși scalabilă, dar se va face mai treptat decât într-un mediu standard. Scalarea se poate face manual sau automat, iar instanța pornește în câteva minute (în cazul standard, vorbim de secunde). Numărul minim de instanțe active este 1.
Implementarea în mediul flexibil durează mai mult decât standardul – de ordinul minutelor în loc de secunde.
În acest mediu, facturarea se bazează pe utilizarea orară a vCPU și a RAM, precum și pe spațiul pe disc și pe traficul de rețea de ieșire.
Exemple practice de utilizare a Google App Engine
Deoarece App Engine este un serviciu gestionat în modelul PaaS, puteți economisi mult timp automatizând zona de întreținere a infrastructurii. Acest lucru face ca platforma să fie populară în rândul:
- dezvoltatorilor care creează proiecte ca hobby,
- startup-urilor tehnologice cu resurse limitate,
- pentru prototipuri și Proof of Concept,
- departamentelor de cercetare și dezvoltare unde specialiștii creează și testează soluții noi.
Prin utilizarea serviciului, poți crea și dezvolta aplicații pentru web sau mobil. Următoarele exemple sunt câteva ecosisteme Google Cloud care utilizează platforma App Engine.
Aplicație web
Mai jos este o diagramă a unei arhitecturi de aplicație web care utilizează ecosistemul Google Cloud Platform cu App Engine ca serviciu de găzduire:
Pentru a difuza conținut static, poți utiliza:
- App Engine ca serviciu de găzduire a aplicațiilor,
- Cloud CDN pentru afișarea rapidă a conținutului către utilizatorilor,
- Cloud Storage pentru stocarea fișierelor din website.
Conținutul dinamic poate fi difuzat folosind:
- Memcache, un serviciu de cache App Engine,
- Task Queues – un instrument de creare a listei de activități,
- NoSQL Datastore – gestionează listele de joburi ca parte a unei tranzacții.
Pentru procesarea jurnalelor și monitorizarea aplicației, putem folosi:
- Pub / Sub – serviciu de transfer asincron de informații, separarea serviciilor de generare de evenimente de serviciile de procesare,
- Flux de date pentru procesarea datelor,
- Stocare în cloud pentru stocarea datelor și informațiilor,
- BigQuery pentru analiză,
- Logging în cloud – un serviciu de gestionare a jurnalelor și analiză în timp real,
- Cloud Monitoring – un panou de monitorizare care agregează și prezintă informații despre performanța, disponibilitatea și starea aplicațiilor și serviciilor.
Backend-ul aplicației mobile
În App Engine, este posibil să se implementeze backend-ul aplicației mobile în containere Docker (pentru mediu flexibil) sau backend creat în Node.js (permite implementarea aplicației în mediu flexibil și standard). Serviciul poate fi integrat cu Firebase – o platformă dedicată creării, testării și dezvoltării de aplicații mobile.
Mai jos este un exemplu de arhitectură de joc mobil care utilizează App Engine și alte servicii Google Cloud:
Pentru a construi un ecosistem pentru backend-ul unui joc mobil în cloud Google, putem folosi următoarele servicii:
- App Engine pentru a găzdui backend-ul,
- Memcache, adică cache pentru serviciul App Engine
- Platforma Firebase,
- Datastore, adică baza de date NoSQL.
Pentru a procesa și analiza datele, vom folosi:
- Pub/Sub pentru mesageria asincronă în aplicație,
- Flux de date pentru procesarea datelor în lot și în flux,
- BigQuery pentru analiza informațiilor deținute.
Pentru a monitoriza performanța și sănătatea aplicației și a mediului, putem folosi:
- Cloud Monitoring – un panou de monitorizare agregat care prezintă informații despre performanța, disponibilitatea și starea aplicațiilor și serviciilor,
- Cloud Logging – un serviciu de gestionare a jurnalelor în timp real,
- Error Reporting – un panou de gestionare a erorilor între serviciile funcționale, trimiterea de informații despre erori și agregarea informațiilor necesare despre defecțiuni,
- Cloud Trace – un sistem de urmărire pentru blocajele care generareză latență.
Diagrama de mai sus se aplică backend-ului aplicației mobile. Frontend-ul poate fi plasat într-un alt proiect în serviciul App Engine, în Cloud Run, Google Kubernetes Engine, Google Compute Engine sau în afara Google Cloud Platform – de exemplu, găzduire pe propriul server sau alt cloud public.
App Engine vs. Compute Engine
Ambele produse Google sunt folosite pentru dezvoltarea de aplicații și sunt la fel de populare în rândul afacerilor mici sau mari. În timp ce Google App Engine (GAE) este o soluție PaaS pentru a facilita lansarea de aplicații, Google Compute Engine este un instrument pentru infrastructură. Cum faci să alegi totuși instrumentul de care ai nevoie?
Compute Engine
Google Compute Engine (GCE) este un serviciu de mașină virtuală în modelul Infrastructure as a Service – IaaS. În GCE, înainte de a implementa codul aplicației, trebuie mai întâi să creați și să configurați singuri instanțe, apoi să întrețineți infrastructura. Compute Engine oferă o gamă largă de setări ale mașinii virtuale, astfel încât să puteți ajusta specificațiile și software-ul la un anumit caz de utilizare.
Costul puterii de calcul și al memoriei este mai mic în Compute Engine, dar utilizatorul trebuie să petreacă timp întreținând domenii precum rețea, echilibrarea sarcinii sau instalarea și gestionarea bazelor de date.
App Engine
App Engine este un serviciu în modelul PaaS (Platform as a Service), în care furnizorul de servicii gestionează mai multe straturi, inclusiv:
- sistemul de operare al mașinii (O/S),
- middleware, care permite comunicarea între aplicații sau servicii,
- mediu de rulare.
Când folosim App Engine, nu trebuie să configuram sau să întreținem mașinile virtuale. Multe procese sunt gestionate automat, de exemplu, întreținerea bazei de date sau echilibrarea încărcăturii.
App Engine economisește mult timp și nervi pentru dezvoltatorii care nu au cunoștințe despre suport pentru infrastructură sau doresc să se concentreze doar pe crearea codului aplicației.
Citiți mai multe despre cloud computing și modelele on-premise, IaaS, PaaS și SaaS aici.
Pentru aplicațiile mici care „se încadrează” în limitele nivelului gratuit, App Engine nu implică niciun cost. Cu toate acestea, pentru produsele foarte complexe care necesită mai multă putere de calcul, resursele din App Engine se vor dovedi mai scumpe decât în Compute Engine. App Engine este, de asemenea, mai puțin flexibil, deoarece nu oferă posibilitatea unei configurații detaliate a instanței.
Cea mai bună soluție este să creați o dovadă de concept sau un produs minim viabil pe platforma App Engine și, atunci când aplicația crește, să faceți migrarea la Compute Engine.
Cât costă App Engine?
Facturarea App Engine variază în funcție de mediu.
Mediul standard
În mediul standard avem acces la planurile gratuite, regenerabile în cadrul nivelului gratuit. Doar după ce resursele gratuite s-au consumat, se poate face factura de consum al serviciului. Costurile App Engine includ fiecare oră începută de instalare (suma depinde de tipul de mașină și de locație) și fiecare gigabyte de trafic de rețea de ieșire.
Pentru regiunea europe-west3 din Frankfurt, prețurile sunt următoarele:
- 1. exemplu B1 – 0,06 $ / h
- 2. instanță B2 – 0,12 $ / h
- 3. instanță B4 – 0,24 $ / h
- 4. instanță B4_1G – 0,36 $ / h
- 5. instanță B8 – 0,48 $ / h
- 6. instanță F1 – 0,06 $ / h
- 7. instanță F2 – 0,12 $ / h
- 8. instanță F4 – 0,24 $ / h
- instanță F4_1G – 0,36 $ / h
- trafic de rețea de ieșire – 0,12 $ / GB (excluzând traficul către * .googleapis.com)
- trafic web de intrare – gratuit
Prețurile pot varia în funcție de regiune și monedă.
Mediul flexibil
Google Cloud nu oferă credite gratuite pentru mediul flexibil.
Aplicațiile sunt rulate pe mașinile virtuale selectate de voi, iar consumul este taxat pe secundă. Taxa de memorie include resursele necesare pentru a rula aplicația și memoria pe care aplicația o folosește în timpul rulării.
Prețurile pe oră de consum în regiunea europe-west3 (Frankfurt) sunt următoarele:
- vCPU – 0,063 USD / h / core
- RAM – 0,009 USD / h /GB
- disc- conform listei de prețuri Compute Engine; taxa de bază este de 0,048 USD / GB / lună,
- traficul de rețea de ieșire – conform listei de prețuri Compute Engine; De la 0,08 USD la 0,12 USD / GB / lună,
- trafic web de intrare – gratuit.
Prețurile pot varia, de asemenea, în funcție de regiune și monedă.
Calculați prețul App Engine în calculatorul Google Cloud
Pentru un caz specific, costul serviciului App Engine în medii standard și flexibile poate fi calculat în Google Cloud Pricing Calculator.
Cum obții un voucher de 500 USD cu ajutorul unui partener Google?
Google Cloud oferă limite gratuite și care pot fi reînnoite pentru serviciile în mediul standard. Acestea includ:
- 28 de ore de instanțe „F” pe zi,
- 9 ore de instanțe „B” pe zi,
- 1 GB de trafic de rețea de ieșire pe zi.
Pentru mediul flexibil nu există credite gratuite. Dar dezvoltatorii de aplicații (folosind orice mediu App Engine) pot conta pe sprijinul unui partener loca Google Cloud. FOTC vă acordă un voucher de 500 USD pentru a fi utilizat pentru orice serviciu GCP, inclusiv App Engine – atât în mediicât standard,și flexibile.
În plus, stabilind o cooperare cu un partener Google Cloud, puteți conta pe suport profesional din partea inginerilor și arhitecților cloud certificați Google. De asemenea, veți primi ajutor la construirea unei dovezi de concept sau la migrare, precum și suport pe parcurs pentru a asigura funcționarea continuă a serviciilor GCP.
Descoperă diferitele produse și servicii din cadrul Google Cloud Platform și află mai multe despre cum poate compania ta să beneficieze de cloud-ul public Google alături de compania noastră.