You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Para correr manolo y los spiders en conjunto necesitamos:
nginx
manolo django con gunicorn
redis (broker)
manolo django con celery
postgres
Servicios extras
Alerta de errores y medición performance: Sentry, la versión gratuita es más que suficiente y ahora tiene APM.
Email? Creo que con mailgun es más que suficiente.
Hosting y Deployment
Podemos hostear toda la app + spiders en droplets de DigitalOcean y tener la base de datos hosteada en DigitalOcean también. Las ventajas son el costo y la familiaridad de uso de VPS.
Una de las principales dificultades de trabajar con VPS es el deployment del código y configuración de servicios para que interactúen entre sí.
Dokku al rescate.
link: Dokku
La forma más fácil de hostear un app de Django es Heroku, que se caracteriza por hacer deployment con un simple git push heroku master, pero es realmente caro comparado con DigitalOcean. Sin embargo, podemos alcanzar la misma facilidad de deployment con Dokku: git push dokku main:master.
Dokku puede manejar el deployment del código de Django, configurar Redis, Postgres y las instancias de Celery. Se puede instalar en un droplet de DigitalOcean y ahí se pueden correr la web app de Manolo ( tipo web) y los spiders como (tipo worker), con un simple archivo de configuración:
web: gunicorn config.wsgi:application
worker: celery worker --app=config.celery_app --loglevel=info # worker que ejecuta las tareas
beat: celery beat --app=config.celery_app --loglevel=info # scheduler para tareas periódicas
y se puede escalar de acuerdo a la necesidad, por ejemplo:
web=1
worker=2
Lo anterior significa: 1 instancia de Django y 2 para celery.
Un droplet de 2vCPUs & 2 GB de RAM correr 1 web + 1 worker + redis.
Una instancia de Postgres de 1GB RAM & 1vCPU & 10GB SSD.
Opción 2 ($$):
Un droplet de 2vCPUs & 4GB de RAM para correr 1 web + 1 worker + redis + postgres. Dokku también ayuda a instalar y configurar Postgres de manera sencilla.
Límite
Lo único malo de Dokku, es que se está limitado a los recursos que tenga el servidor donde está instalado. Pero esto es manejable al contratar un servidor más potente.
The text was updated successfully, but these errors were encountered:
@josemvaldivia no sé si viste esto. Tienes algún comentario?
Veo que vas a añadir docker y docker-compose. Dokku funciona con docker y se encarga de la configuración y manejo de los containers donde se vaya a hacer deployment. Si Dokku resultar ser buena opción dere ya no necesitamos docker-compose.
Arquitectura
Para correr manolo y los spiders en conjunto necesitamos:
Servicios extras
Hosting y Deployment
Podemos hostear toda la app + spiders en droplets de DigitalOcean y tener la base de datos hosteada en DigitalOcean también. Las ventajas son el costo y la familiaridad de uso de VPS.
Una de las principales dificultades de trabajar con VPS es el deployment del código y configuración de servicios para que interactúen entre sí.
Dokku al rescate.
link: Dokku
La forma más fácil de hostear un app de Django es Heroku, que se caracteriza por hacer deployment con un simple
git push heroku master
, pero es realmente caro comparado con DigitalOcean. Sin embargo, podemos alcanzar la misma facilidad de deployment con Dokku:git push dokku main:master
.Dokku puede manejar el deployment del código de Django, configurar Redis, Postgres y las instancias de Celery. Se puede instalar en un droplet de DigitalOcean y ahí se pueden correr la web app de Manolo ( tipo
web
) y los spiders como (tipoworker
), con un simple archivo de configuración:y se puede escalar de acuerdo a la necesidad, por ejemplo:
Lo anterior significa: 1 instancia de Django y 2 para celery.
Un ejemplo de cómo se hace todo esto en la práctica: https://www.stavros.io/posts/deploy-django-dokku/
Recursos Estimados
Opción 1 ($$$):
web
+ 1worker
+ redis.Opción 2 ($$):
web
+ 1worker
+ redis + postgres. Dokku también ayuda a instalar y configurar Postgres de manera sencilla.Límite
Lo único malo de Dokku, es que se está limitado a los recursos que tenga el servidor donde está instalado. Pero esto es manejable al contratar un servidor más potente.
The text was updated successfully, but these errors were encountered: