Ecosistemul DigitalOcean potrivit pentru proiectul meu?

O scurta prezentare a MVP-ului meu:

Un monolit cu facilitati pro-bono care este in domeniul marketplace/local business directory, mentionez ca doresc doar sa imi scot cheltuili si sa fie sustenabil.

O facilitate secundare consta intr-o categorie unde artisti isi expun lucrarile in scop de a fii imprumutate pe gratis de catre institutii (sali de asteptare, restaurante/baruri, etc) pentru a obtine mai multa expunere sau pentru a-si vinde arta/serviciile. Am fost surpins cand am fost presentat si am fost intrebat daca si un fotograf poate sa isi expuna lucrarile lui (in rama) tot aici.

Pe viitoar, intentionez sa segmentez intr-un alt proiect, cu mai multe feature pro-bono, precum:

  • posibilitatea institutiilor de a oferi produsele/serviciile lor pe gratis, in sensul ca deja am o frizerie care va tunde gratis o persoana, odata pe saptamana (sau de mai multe ori) si o brutarie care va oferi pe gratis produsele de patiserie nevandute (cu mentiunea ca ofere doar la copii).

Sunt si alti, dar inca nu ii voi accepta pana cand nu rezolv/reglementez mai bine subiectul prejudecati pe culoarea pielii … time will tell.

Stack-ul meu:

  • FastAPI ca backend, cu deja 17 rute care acopera diferite verbe (GET, PUT, DELETE, etc.),

  • frontend, un template cu bootstrap si js (jquery) cumparat cu 20$ si acuma indieni numai imi raspud sa imi actualizeze template-ul contra cost si sa rezolve bug-urile in responsive mode

  • PostgreSQL ca db, deoarece am multe tabele relationale intre ele (cu mai multe roluri de utilizator)

  • acuma ma documentez despre docker si reddis

  • email provider, ma gandesc ca host-ul poate să ofere acest serviciu (serviciul Resend pare să aiba probleme cu Gmail)

Ca env folosesc win11 cu ubuntu subsystem (WSL)

Deoarece doresc sa folosesc si db-ul de la digitalocean, ma gandesc ca pot sa folosesc si storage-ul (si pentru assets si db backup-uri) prin boto3.

Cred in ‘Wisdom of the crowd’ si de aceea va intreb daca a-ti avut experienta cu DigitalOcean? Mai exact cu storage-ul si db-ul lor. Ofera si analitica?

2 Likes

Digitalocean din punctul meu de vedere este un hard no din partea mea. Noi am avut ceva probleme cu vpc-ul lor care pierdea conexiuni intre vm-uri, cu s3-ul lor care avea un ratelimit agresiv si crapa efectiv cateodata, si multe alte probleme de care nici nu vreau sa-mi amintesc.

Dar, ai mentionat tehnologiile pe care le folosesti si se preteaza pentru serverless across the board: db, backend, etc.

Te-ai gandit la asa ceva? Mi se pare ca mai ales la inceput te-ar putea ajuta sa tii costurile jos.

3 Likes

Iti multumesc Floris pentru raspuns, am ales D.O. deoarece am crezut ca au cel mai bun pret (in raport cu supportul) dar dupa cum am observat zilele astea ca ~ 5$ a devenit un pret normal pentru servicii de genul.

Serveless ma gandesc ca te referi la cloud hosting, gen AWS? Pentru mine ii riscant deoarece learning curve-ul este prea mare, in sensul ca de vreo jum de an am inceput sa intru in domeniul webdev/devops si ma descurajeaza situatii de misconfiguration, precum in How to Burn Money in the Cloud // Avoid AWS, GCP, Azure Cost Disasters

Deoarece proiectul lam facut modular, pot sa schimb pgs-ul cu MySql (imi permite ORM-ul si am testele unit generate) si pot folosi PlanetScale impreuna cu unul dintre Render, PythonAnywhere sau Railway (ii managed si ma ajuta foarte mult pe partea de devop … cred)

Momentan incerc sa ma invart prin free tier sa ma acomodez, dar imi lipseste storage-ul

1 Like

Ai nevoie de mai mult de 1 VM + backup?

Daca nu, mergi pe 1 singur VM pt simplitate, gazduit oriunde si vezi dupa (mult timp) daca e nevoie de mai mult.

Atentie si costul trasferului de date daca vei avea trafic mare.

2 Likes

Parerea mea este sa pui in balanta foarte bine daca sa mergi pe PlanetScale sau o alta solutie “de-a gata”; suportul pentru foreign key-uri este slabut sa zic at best (asta in varianta beta pe care am testat-o saptamana trecuta).

Render, de acord ca e ok. Preturile lor sunt decente, inca cam cu 50% mai mult decat daca te-ai duce direct pe aws; but, well convenienta e buna.

Ar mai fi ca si alternativa la Render: fly.io, care e mega cool, si se afla la cumva la granita dintre managed si self-managed. Mai toate chestiile deployed acolo se pot scala la 0 automat cand nu sunt folosite.

https://fly.io/

2 Likes

Noi folosim DO pt cateva chestii adiacente productiei si e ok pt chestii simple. Reliable, n-am avut necazuri.

2 Likes

eu am 2 vps la ei care sunt aproape sa faca 10 ani de functionare (daca n-au facut deja).
chestii de baza, ubuntu cu db si restul instalate / configurate acolo (cred ca pe atunci nu aveau prea multe optiuni).
au mers fara probleme si inca merg (impreuna cu altele mai temporare pe aceeasi idee: un vps cu docker si containere inside - de obicei pt dev / test sau aplicatie interna).

nu am experienta cu alte servicii de la ei.

2 Likes

si noi ii folosim in productie.

folosim de la ei:

  • 2 lb-uri
  • 9 droplet-uri
  • kubernetes
  • 4 vpc-uri
  • mysql managed
  • redis managed
  • spaces

de aproape 2 ani n-am avut nicio problema

2 Likes

Chiar va multumesc pentru feeback.

Planul initial era sa am pentru fiecare serviciu un docker: db, app si reverse proxy (nginx)
In general la docker, spec-ul recomandat pe linux ii de minim 2gb dar cum containerization ii sau devine un industrial standard si docker ii in frunte, ma gandesc ca ruleaza separat de host si nu ii contorizat, doar imaginile lui ca altfel de inceput nu ii nevoie sa il folosesc pentru simplicitatea proiectului si cu un trafic mic.

Am mai auzit de el si ma gandesc serios sa il incerc, am inteles ca ofera redis si postgres in free tier mai ales ca au dt in Bucharest, Romania (OTP)

@John_Jhon si @Doar_Unu imi puteti spune daca sunteti pe regiune Frankfurt? Ca am inteleg python boto3 pe Frankfurt cateodata face probleme si nu stiu daca ii un issue al boto3 sau de la D.O.

Doresc doar sa tin costurile mici, nu sa il fac “ieftin” de intretinut, ca asa pot sa apelez la storage VPS-ul de la InterServer dar nu ii dev friendly, fara sdk si pe termen lung o sa apara mai multe ‘points of failure’.

Va multumesc pentru atentia acordata!

eu pe frankfurt sunt, da. ce probleme iti face?

1 Like

Conform documentatie pe python3:

Due to an AWS-specific behavior in all versions of the SDK except Python 3, to successfully create a new bucket, you must specify an AWS region, such as us-east-1, in your configuration. This is because, when creating a bucket, the SDK sends an entirely different payload if a custom region is specified, which results in an error.

Specifying us-east-1 does not result in slower performance, regardless of your bucket’s location. The SDK checks the region for verification purposes but never sends the payload there. Instead, it sends the payload to the specified custom endpoint.

Numai am thread-urile dar am citit ca multi au avut probleme pe ruta Frankfurd, inca nu ii testat dar probabil daca folosesc ultima versiune de python sunt safe.

Mentionez ca nu am testat D.O. Spaces

frankfurt, da.
python folosesc ocazional, fara probleme evidente.
cele vechi sunt cu php/mysql.
nu stiu cat ajuta raspunsul, dar nu am altceva relevant

1 Like

Poti avea toate containerele docker sub acelasi VM.

Vezi cat iti ia sa depasesti utilizarea unuia de 1-2 cores 4-8 GB RAM.

1 Like

DO e suficient. Sunt client de cand au aparut la un moment dat avand multe chestii de productie acolo. Momentan nu mai am.

Recomand 1 vm eventual nu cel mai ieftin. As face ce zice Dani mai sus, acelasi stack pe 1 singur vm la inceput. Nu iti complica viata. Cand o sa ai macar 100 de useri concurenți, discutam alte arhitecturi.

Referinta:

9 Likes