uvicorn
uvicorn copied to clipboard
Update the "Deployments" section on the documentation
That section is not up-to-date with the current most used technologies.
The idea of this issue is to gather information on what people would like to see on that page e.g. "How to deploy on Kubernetes", and also to update the documentation accordingly.
I'd like to write about this, since in running FastAPI on uvicorn using Elastic Beanstalk
I'd like to write about this, since in running FastAPI on uvicorn using Elastic Beanstalk
Of course! :)
We need to also think on how to reorganize the docs for those sections to fit there.
@Tinche and I have had some good chats about Uvicorn, Gunicorn and Kubernetes, I might write that section
Before starting, it would be cool to have an idea on how you plan to organize it.
Hi Tin :wave:
I would love to see How to deploy on Kubernetes?
its something the company I work for is experimenting with for over 1.5 years now. We settled on following the FastAPI docs as of now. But I am sure there can be further optimizations done.
I think the main question for me in these sorts of docs is how deep we dive into the other pieces involved. Are we going to explain Kubernetes from scratch? Do we assume the reader is familiar with Gunicorn and Uvicorn? Or do we do a short gloss over the high level of each of these while skipping over a lot of the technical detail?
I think a quick "How To" guide relevant to Uvicorn is what most people would benefit from. We can assume that intended audience would know Uvicorn, Gunicorn and Kubernetes to some extent that we can happily skip basics.
Things which are essential (IMO):
- Deployment at development environment.
- Deployment using systemd (behind Gunicorn/process manager).
- Deployment using Docker and Docker compose.
- Deployment using Kubernetes
Nice to have:
- Running behind NGINX or Traefik
- Recommended auto scaling for Kubernetes
Advanced/Optional:
- Deployment on serverless (aws, azure, etc)
- Distributing as exe/bin
We can debate over what goes under each section and how detailed we should get under each of them.
Also please feel free to strike off those which might be too much for the docs.
@adriangb are you working on this? Can I also help, if needed?
Sorry I haven't put anything down on paper yet but this sounds like a good project for this weekend.
I would love your help on this. How about you work on local/dev env, gunicorn/process manager and docker-compose (up to you which parts you pick) and I'll work on 4. Deployment using Kubernetes
and 6. Recommended auto scaling for Kubernetes
, then we can review each others work?
Either of us can start a branch and collaborate there.
Sounds good to me! I'll start with local/dev, systemd, gunicorn; let me know where do we collaborate.
@adriangb I finally started something. It's currently residing in my repo
Should I do a PR? If yes, to which branch?
I'll close this issue because it's too broad. It shows the intention to improve that section on the docs, but tackling the whole structure at once is a bit difficult, so let's just say that small PRs are welcome to improve, expand, remove things that make sense for the section.