uvicorn icon indicating copy to clipboard operation
uvicorn copied to clipboard

Update the "Deployments" section on the documentation

Open Kludex opened this issue 2 years ago • 12 comments

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.

Kludex avatar Jun 28 '22 13:06 Kludex

I'd like to write about this, since in running FastAPI on uvicorn using Elastic Beanstalk

odiseo0 avatar Jul 02 '22 15:07 odiseo0

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.

Kludex avatar Jul 04 '22 06:07 Kludex

@Tinche and I have had some good chats about Uvicorn, Gunicorn and Kubernetes, I might write that section

adriangb avatar Jul 09 '22 15:07 adriangb

Before starting, it would be cool to have an idea on how you plan to organize it.

Hi Tin :wave:

Kludex avatar Jul 09 '22 15:07 Kludex

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.

iudeen avatar Jul 15 '22 14:07 iudeen

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?

adriangb avatar Jul 15 '22 14:07 adriangb

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.

iudeen avatar Jul 15 '22 14:07 iudeen

Things which are essential (IMO):

  1. Deployment at development environment.
  2. Deployment using systemd (behind Gunicorn/process manager).
  3. Deployment using Docker and Docker compose.
  4. Deployment using Kubernetes

Nice to have:

  1. Running behind NGINX or Traefik
  2. Recommended auto scaling for Kubernetes

Advanced/Optional:

  1. Deployment on serverless (aws, azure, etc)
  2. 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.

iudeen avatar Jul 31 '22 06:07 iudeen

@adriangb are you working on this? Can I also help, if needed?

iudeen avatar Aug 15 '22 23:08 iudeen

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.

adriangb avatar Aug 15 '22 23:08 adriangb

Sounds good to me! I'll start with local/dev, systemd, gunicorn; let me know where do we collaborate.

iudeen avatar Aug 16 '22 00:08 iudeen

@adriangb I finally started something. It's currently residing in my repo

Should I do a PR? If yes, to which branch?

iudeen avatar Aug 20 '22 19:08 iudeen

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.

Kludex avatar Dec 05 '22 08:12 Kludex