Simpele Django apps hosten in de cloud? welke cloud?

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Matthijz98
  • Registratie: Januari 2013
  • Laatst online: 03-07 13:18
Ik heb een aantal Django applicaties gemaakt (3 stuks). Deze apps worden gemiddeld door 50 gebruikers per dag gebruiken maar er zijn ook momenten waarop het er veeel meer zijn. Op dit moment draai ik alle apps als docker containers op een simpele VPS met Portainer voor het beheer en auto update via Ouroboros. De containers worden gebouwd via docker hub die ze bouwt vanaf een github repo. Als ik wil upscalen moet ik de container meer resources geven en is alles een minuutje uit de lucht.

Nu komt er nog een app bij en wil ik toch graag naar een andere oplossing. Dus ik dacht ik ga maar eens naar die "magische" cloud kijken. Dus ik heb een account aangemaakt bij Google cloud, AWS en Azure(keuzes enzo). Maar ik allemaal heb ik nog niks voor elkaar kunnen krijgen.

Wat ik verwacht van het platform
  • Ik betaal meer of minde afhankelijk van het gebruik
  • Update automatisch van een github repo (inc het uitvoeren van de migrations)
  • Simpelen auto scaling met limmits
  • Het liefst gebaseerd op docker(snap na 6 maanden eindelijk hoe het werkt)
  • Kan het liefst ook overweg met Celery workers
gcloud
Als ik google geloof moet ik "App engine" gebruiken voor mijn app maar dit moet ik zelf via een gcloud deploy doen en ik moet handmatig de migrations doen via de SQLproxie. Verre van ideaal als je mij vraagt.

AWS
Ik heb auto build een soort van werkend gekregen vanaf mijn github repo. En de container met EC2 gehost maar dit is eigenlijk gewoon weer een VPS volgens mij.

Azure
Sorry Microsoft maar ik snap er helemaal niks van

Ik wil geen discussie starten over welk cloud platform het best is. Maar kunnen mensen die bekend zijn met deze platforms mij naar de goede onderdelen van deze platforms leiden. Of mij uitleggen dat de cloud niet voor mij is.

Alle reacties


Acties:
  • +1 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 10-07 11:26
Azure heeft Web Apps.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • +1 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 18:02
Matthijz98 schreef op dinsdag 7 april 2020 @ 17:21:

AWS
Ik heb auto build een soort van werkend gekregen vanaf mijn github repo. En de container met EC2 gehost maar dit is eigenlijk gewoon weer een VPS volgens mij.
Als je in je build pipeline (CodeBuild) als target gaat voor Fargate dan heb je een oplossing waar je een docker container kan draaien die automatisch vervangen kan worden met 0 downtime tijdens een nieuwe build. Dit door een loadbalancer ervoor te hebben die automatisch omschakelt als je nieuwe container goed draait (health checks zijn groen).
Fargate is hier eigenlijk een soort tegenhanger van kubernetes vziw.

Zo heb ik het relatief kort geleden nog opgezet en tijdens alle tests (loadtests, veel gebruikers tegelijk erop zetten) heb ik nog 0 downtime meegemaakt. Zit nog veel meer achter zoals autoscaling, automatisch opnieuw opzetten van containers als er eentje stuk gaat etc.

Was me eigenlijk helemaal niet zo lastig als vooraf bedacht, maar voor een echt goede opzet kan je bij AWS veel doen met het opdelen van functionaliteit op basis van users, roles etc.
Omdat users "gratis" zijn hebben we bij ons b.v. voor elke pipeline (test, acc, prod) een eigen user zodat we alles automatisch volledig gescheiden hebben.

Acties:
  • 0 Henk 'm!

  • Kipmetrijst
  • Registratie: December 2012
  • Laatst online: 14:53
Op Google Cloud kan je Cloud Builds triggeren via Github. Wanneer je dan naar master pusht wordt deze trigger aangeroepen en je master branch gebuild en deployed

https://cloud.google.com/...ilds/run-builds-on-github

Django op GCP betekend wel Cloud SQL om gebruik te maken van ORM. Dit zit niet in de free-tier van GCP en kost dus wat geld.

https://cloud.google.com/free

Een low spec App Engine instance zit daar wel in evenals 120 build minutes per dag

iRacing Profiel Overview iRacing seizoen 4 races en auto's


Acties:
  • 0 Henk 'm!

  • Matthijz98
  • Registratie: Januari 2013
  • Laatst online: 03-07 13:18
Kipmetrijst schreef op donderdag 9 april 2020 @ 15:39:
Op Google Cloud kan je Cloud Builds triggeren via Github. Wanneer je dan naar master pusht wordt deze trigger aangeroepen en je master branch gebuild en deployed

https://cloud.google.com/...ilds/run-builds-on-github

Django op GCP betekend wel Cloud SQL om gebruik te maken van ORM. Dit zit niet in de free-tier van GCP en kost dus wat geld.

https://cloud.google.com/free

Een low spec App Engine instance zit daar wel in evenals 120 build minutes per dag
Cloud buils werken inderdaad super chill vanaf GitHub. Ik heb alleen nog niet uit gevonden hoe ik de images er van in een niet Kubernetes omgeving kan gebruiken. Jij verwijst naar App engine maar die werkt met met zijn eigen configuratie.

Betalen voor cloud SQL is niet een probleem betaal nu ook voor m'n VPS. En zeker als ik er dan geen omkijken meer naar heb ben ik helemaal blij.

Acties:
  • 0 Henk 'm!

  • Kipmetrijst
  • Registratie: December 2012
  • Laatst online: 14:53
Matthijz98 schreef op donderdag 9 april 2020 @ 23:38:
[...]


Cloud buils werken inderdaad super chill vanaf GitHub. Ik heb alleen nog niet uit gevonden hoe ik de images er van in een niet Kubernetes omgeving kan gebruiken. Jij verwijst naar App engine maar die werkt met met zijn eigen configuratie.

Betalen voor cloud SQL is niet een probleem betaal nu ook voor m'n VPS. En zeker als ik er dan geen omkijken meer naar heb ben ik helemaal blij.
Standaard App Engine draait inderdaad op een managed instanced. Als je een eigen docker wilt kan je kiezen voor App Engine Flex.

https://cloud.google.com/appengine/docs/flexible

https://cloud.google.com/...he-appengine-environments

Deze scaled alleen niet naar 0 instances, er blijft altijd 1 actief. Voor een webshop is dit misschien minder erg aangezien die bijna altijd wel wat traffic heeft.

iRacing Profiel Overview iRacing seizoen 4 races en auto's

Pagina: 1