如何解决使用 Nginx 和/或 Traefik 提供机器学习模型
我有一个基于 python 的机器学习模型,我想提供它。根据我的研究,以下两个最受欢迎的选项如下:
I. Flask + uWSGI
II. FastAPI + Uvicorn with Gunicorn
最重要的是,我们可以将 Nginx 作为反向代理(负载均衡、缓存、安全等):
I. Flask + uWSGI + Nginx
II. FastAPI + Uvicorn/Gunicorn + Nginx
我的问题:
-
除此之外我还需要使用 Traefik 吗?还是我需要改变 使用 Traefik 的 Nginx?
-
如果我有一个只接受 POST 请求的应用程序 仍然需要在 Flask + uWSGI 之上使用 Nginx 和/或 Traefik(或 FastAPI + Uvicorn/Gunicorn)?
-
如果我将使用 Tensorflow Serving 或其他 ML 服务解决方案 (Kubeflow、MLflow、Seldon 等)还是建议打包 Tensorflow 服务于 FastAPI + Uvicorn/Gunicorn + Nginx 或/和 特拉菲克?
附言我计划将应用程序与 Docker 结合使用,并在生产中使用 Swarm 或 Kubernetes。
解决方法
- 除此之外,我还需要使用 Traefik 吗?或者我需要用 Traefik 更改 Nginx 吗?
基于您想使用 Swarm/Kubernetes 部署多个 Docker 容器的事实。我建议你使用像 Traefik 或 Nginx 这样的反向代理。 在我看来,Traefik 更容易学习和配置。 Traefik 还可以使用 Docker 套接字来检测新启动的容器。
这是一篇关于如何为 traefik 设置 swarm 模式的文章:link
-
如果我有一个只接受 POST 请求的应用程序,我是否还需要在 Flask + uWSGI(或 FastAPI + Uvicorn/Gunicorn)之上使用 Nginx 和/或 Traefik?
-
如果我将使用 Tensorflow Serving 或其他 ML 服务解决方案(Kubeflow、MLflow、Seldon 等)是否仍然建议结束 Tensorflow 服务于 FastAPI + Uvicorn/Gunicorn + Nginx 或/和 特拉菲克?
正如 Julian 在他的评论中已经提到的,这主要取决于您的部署限制和需求。 FastAPI 本身有一个很棒的随时可用的存储库,带有 Docker + FastAPI + Uvicorn/Gunicorn。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。