GCP Cloud Run konténer állapot (adatbázis)

Fórumok

Üdv,

A Cloud Run-ban ha kérés érkezik, akkor indít egy konténert egy adott image-ből (Container Registry -> Images). Adott idő után megszünteti a konténert. (Gondolom: dokcer run -rm ....)

Teszt jelleggel használom, de jó volna hogy a konténer megtartsa az állapotát, pontosabban az adatbázis ne vesszen el (python django sqlite3).

Van erre elegáns megoldás? Vagy mit kellene beállítani?

Hozzászólások

Feltételezem, nem minden instance-nak van egy saját sqlite adatbázisa (saját adatokkal), hanem az alkalmazásnak van egy db, és ezt kellene minden instance-ból elérni. Cloud Run esetében az instance-ok száma minimum 0-5 egy időben, sípol is a webes GUI, ha ötnél kisebb max párhuzamos instance-t akarsz engedélyezni. Persze ettől még csinálhatsz 0-1 instance-ban futó appot, és akokr elvileg nem lesz gond, de akkor a skálázhatóságnak lőttek.

Vagy nem értem, mi a kérdés. :)

És ha felmerül a gondolat

Szerintem felmerül, de majd OP megmondja. :)

Ezek eldobható konténerek, adott esetben azt sem tudod kívülről, hány db fut belőle. Ha mondjuk eddig max 5 konténer futott egyszerre, létrehozták az öt adatbázist, aztán leskálázódik nullára, majd jön egy request, és létrejön 1 db konténer, az ötből melyik sqlite DB-vel kötöd össze? Mi lenne az a feladat, amire ez a legjobb megoldás? :)

szerk: ennyi infóból nekem még az sem egyértelmű, hogy sqlite-ra van-e egyáltalán szükség

Jó, de mi a feladat? Ha nem titkos. :)

Példa: nekem van olyan Cloud Run appom, aminek kell konfig adatbázis, ami esetemben egy sima Firestore object, amit induláskor betölt a cucc. Ez azért kellett, mert ugyanazzal a konténer image-dzsel több hasonló, de nem ugyanolyan appot (nem instance-t!) is létre akartam hozni. Lehet, hogy van rá elegánsabb módszer, de pár sorból megvan, kb. tíz fillér egy hónapra, és nem kell foglalkozni semmi olyannal, ami a networkös sqlite-nál probléma.

Egy demo python, django, sqlite app (adatok vannak DB-ben, amit meg szeretnénk jeleníteni).

A tanulóknak akarom bemutatni egy egyszerű appon keresztül (költségek nélkül), hogyan fejlesztünk, üzemeltetünk (devops). Ez most egy kicsi szelete az egésznek, de így talán érdekesebb nekik, meg nyilván életszerűbb.

Ja, így már érthető.

Akkor vagy azt csinálnám, hogy egy minta adatbázis eleve benne lenne a konténerben, amit aztán lehet query-zni és szerkesztgetni az appon keresztül, de akkor az instance-szal együtt a változtatások mennek a levesbe. Ha életszagúbb példát akarsz, akkor GCP-ben vannak hosted adatbázisok, érdemesebb lehet inkább azt piszkálni (devops szempontból talán relevánsabb is, mint a sqlite), ha nem futtatod éjjel nappal, az is centekből megvan kb.