*Archived*
= Best cloud hosting service? =

Hey guys, So I wanna deploy my Django backend API but not to production, for development. What is your preferred cloud service to do that? So I far I found Ngrok and Amazon AWS service, and Jenkins and I’m understanding each one to depth to do a comparison. I wanna know from your experience, what is your preferred service

P.S: lately I received very hostile response for my lack of experience and for just trying to help - Ito see this sub slowly become hostile and aggressive as other websites (apparently just mentioning the names of other websites gets your post deleted)

So please excuse any lack of experience you find in my post (or future posts/comments)

EDIT: I did not expect this many responses, thanks you all for your response, I will try to respond to everyone

If it's being deployed to a remote sever then it doesn't really matter whether it's for production or not - most things will be the same. For free and relatively easy deployment try Pythonanywhere or Heroku. If you want more control try Digital Ocean. I wrote a (what I think is a pretty comprehensive) guide for deploying your
*first* Django app to Digital Ocean here

Yeah, digital ocean is definitely a gem if you want control, sure you won't deploy in half a minute but it's definitely superior to most other options if you want more control

Pythonanywhere seems to fit my needs 90% of the time, not too much control, not too much automation and hand holding, somewhere in between

I have a ton of experience with both AWS Lambda and Django. I can't think of a single good reason to do Django over AWS Lambda. Like, not a single reason. Hugely overcomplicated for so little return especially when your dependencies get even a bit more than trivial. You don't want to be playing the dependency optimization game with the 250MB file size limit. If you really have scalability issues for a django project, I would say the solution is probably some combination of ECS, celery and cloudfront

Heroku is very easy to deploy to, free until you hit a certain limit, pythonanywhere is the same but a bit harder since you have to set some things up by hand which requires a basic understanding of Linux commands (nothing advanced)

Both have an option to lock the site using a password if you don't want people visiting it or connecting to it unless they are authorised

I’ve been using Heroku for a couple of years. My DB is the free tier of postgres. It works great and I pay a total of $7 per month. Let me know if you have more specific questions. Their documentation is very good and I had minimal issues. I have a custom URL, https, the whole thing

I deploy all my Django projects in Google Cloud Run. I really love it

Here is how I work it out:
I start by deploying my dev-database in Google Cloud SQL. I use this same cloud mySQL instance for local dev and cloud staging and testing

**Local dev I run 3 docker containers with docker-compose:
- my Django app. Container has nginx included. DB points to SQL proxy container
- standard Google SQL proxy image. Requires a Google service account json

- standard phpmyadmin container. Mainly to troubleshoot mySQL
**Cloud deployment. staging and prod
- I have a cloudbuild.yaml file for my Django app. That describes how to build and deploy the Django app to Google Cloud Run

- In Google Cloud Run, I have set a trigger to build/deploy my app based on git commits to my app. This reads the cloudbuild.yaml, and automates deployment of my changes in the cloud

- I set all my ENV variables in the triggers to be passed to cloudbuild.yaml and eventually to Cloud Run instances. Of course they differ for staging and prod

**Why I like it**
- Initial setup is not straightforward, but automation it gives me is awesome

- Cost for dev instances is really low. Google Cloud Run charges only for used seconds. So a few $ per months Now, the Cloud SQL instance is where the cost is, since that fires up a VM that is always running. Low CPU ones get down under 10 $ / month

- For your prod instances, you get all the power of Google Cloud Platform. Infinite horizontal scaling (as long as your web app is stateless). Cloud Run will scale automatically. You can also scale Cloud SQL up and/or horizontally

- Google Cloud Run comes with http/https endpoints that you can map to your domain. No hassle with SSL certs configs. I love this

Let me know if you are interested, I can provide more details. I now think I should write a detailed article about how to do this 
And here my last Django web apps, deployed in Google Cloud Run
If you are already doing some research on the various cloud hosting services, it might as well be a good idea to check out Engine Yard. I’ve used engine yard for various app deployments on the cloud, and I would say that it’s a very dynamic and user-friendly platform for deploying your apps on the cloud

Engine Yard Cloud (EYC) is a widely preferred Platform as a Service (PaaS) for Ruby, Node, and PHP application hosting. It has a robust, fully-managed infrastructure along with world-class support. It has a pretty secure infrastructure, and the patches are kept up-to-date for your convenience. You don’t have the overhead of managing the full stack, including databases and load balancers. All of this is taken care of. The backups happen automatically. As i see it, Engine yard is a time and cost saving platform

You can also explore Engine Yard Kontainers (EYK). It’s a next-generation platform. I tried it and found it to be a worthy migration. It supports multiple stacks, real-time auto scaling, and many other features. You can look up to both Engine Yard Cloud and Engine Yard Kontainers

I recommend using App Platform on Digital Ocean. It is similar to Heroku, but provides much more power for a fraction of Heroku costs

It doesn’t have all the features that Heroku has, but at least for me it has enough to work with

I am not a DevOps, so I don’t know how to configure the normal Droplet in a secure way. This is why App Platform works much better - I don’t need to think about lost of safety measures other than within my app

All my personal projects are bundled in docker containers and deployed in a single node kubernetes cluster on Scaleway.com . It's pretty cool and low maintenance, and if one hits a certain scale, I can easily move them to either a bigger cluster, or another container deployment service (such as ECS, or even deploy them myself on an instance with only a container runtime installed)

In the past, I deployed a django service on AWS Lambda with Zappa, but you lose a lot of the control, and there are some little things you need to learn and implement (eg. using either a serverless framework, managing versions, keeping your lambdas "warm", etc).