es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Debo usar gunicorn con una aplicación Python Flask si la voy a colocar en un Docker y luego usarla en un entorno en la nube?

¿Debería usar gunicorn con una aplicación de Python Flask si la pondré en un contenedor Docker y luego la usaré en un entorno en la nube?

He visto muchos tutoriales sobre cómo hacer una aplicación de Flask y desplegarla como una imagen de Docker en un servicio en la nube,
1) crear la aplicación de Flask
2) en la última línea de Docker poner:

CMD ["python", "my_app.py"] 

3) subir la imagen y dejar que el servicio en la nube, como AWS o Azure, use su equilibrador de carga con la cantidad de CPU y memoria que se desee establecer como regla antes de poner otra instancia en marcha.

Pero encontré este tutorial que utiliza gunicorn:
https://levelup.gitconnected.com/usage-of-gunicorn-for-deploying-python-web-applications-1e296618e1ab
donde todos los pasos son los mismos, solo que la última línea de Docker sería:

CMD [“python” “-m”, “gunicorn”, “my_app:app”]

ahora usa el Gunicorn WSGI

y de la misma manera se sube esa imagen para usar en la aplicación web en la nube.

Entiendo que gunicorn puede agregar más trabajadores y hilos como argumentos en la CLI; ¿cuál sería el mejor enfoque o uno sería mejor que el otro?

Gracias chicos.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible utilizar Gunicorn con una aplicación de Python Flask si la estás desplegando en un contenedor Docker y luego usándola en un entorno de nube. Los pasos para hacer esto son los siguientes:
    1. Crear la aplicación Flask.
    2. Crear la imagen de Docker con la última línea como: CMD ["python", "my_app.py"] o CMD ["python", "-m", "gunicorn", "my_app:app"] dependiendo de si se está utilizando Gunicorn o no.
    3. Publicar la imagen en el servicio de nube.
    4. Utilizar el equilibrador de carga del servicio de nube para iniciar instancias con la configuración de CPU y memoria deseada.

    Usar Gunicorn puede agregar más trabajadores y threads como argumentos en la línea de comando. Depende de ti decidir qué enfoque es mejor para tu aplicación.

Comments are closed.