Dacă ați folosit vreodată Google App Engine, știi că e una dintre cele mai rapide moduri de a ajunge de la idee la prototip., Atâta timp cât vă conformați restricțiilor sandbox, nu este necesar să configurați servere, să instalați pachete sau să efectuați oricare dintre sarcinile DevOps obositoare care vă încetinesc.odată cu introducerea App Engine Flexible Environment (cunoscut anterior ca Managed VMs), Google a ridicat multe dintre restricțiile sandbox și a adăugat mai multe runtime încorporate, inclusiv Node.js și Ruby. Puteți personaliza chiar totul specificând propriul Dockerfile!
vezi comparația aici.cu toate acestea, această flexibilitate vine la un preț., Mediul flexibil este mai lent de implementat și nu se poate scala la fel de repede ca mediul Standard. Implementarea implicită este, de asemenea, overkill pentru prototipuri.cea mai mare diferență în opinia mea este lipsa de „scară la zero.”Cu App Engine Standard, în cazul în care nimeni nu utilizează aplicația se închide totul în jos. În momentul în care un utilizator vizitează, App Engine învârte o instanță în milisecunde pentru a servi noua cerere. În combinație cu nivelul gratuit Generos, nu trebuie să vă faceți griji cu privire la costurile de infrastructură pentru prototipuri., În prezent, mediul flexibil are nevoie de cel puțin o instanță care rulează pentru a servi traficul și nu există un nivel Gratuit.
Să aruncăm o privire la unele cele mai bune practici pentru prototiparea cu mediul flexibil care poate minimiza costurile.
actualizare 2019: Vă recomand cu mare drag să utilizați Cloud Run în loc de App Engine Flex pentru majoritatea sarcinilor. În opinia mea, acesta îmbină cele mai bune de la standardul App Engine (pay per use, scale to zero) cu App Engine Flex (flexibilitate, Dockerfiles). Singurul avantaj major pe care Flex îl are este dimensiunile mai mari ale instanțelor.,
să lansăm un nod.aplicația js pe mediul flexibil al motorului aplicației. Aplicația implicită.yaml arata ceva de genul asta:
runtime: nodejs
env: flex
a se Implementa cu gcloud comanda:
$ gcloud app deploy
După implementarea aplicației, putem verifica afară de „Cazuri” secțiunea de App Engine pentru a vedea următoarele:
în mod implicit, se lansează două n1-standard-1 VMs., Acest lucru este conceput pentru a oferi o fiabilitate mai mare.să ne uităm la costul lunar pentru această implementare. Am configurat această implementare implicită în calculatorul de prețuri Google Cloud aici.
este de peste 80 de dolari pe lună!în timp ce acest preț ar fi bine dacă ați servi traficul de producție, este destul de ridicol în faza de prototipare.
pasul unu: reduceți numărul de instanțe
putem reduce costul la jumătate lansând o instanță în loc de două. Faceți acest lucru activând scalarea manuală (nu aveți nevoie de autoscaling pentru un prototip) și setând instanțele la 1., Puteți citi mai multe despre scalare aici.
modificați aplicația.yaml:
runtime: nodejs
env: flex
manual_scaling:
instances: 1
Acest lucru va reduce costul nostru de la aproximativ $80 la $40! Frumos!