3

We have many web apps/sites. Some are fairly complex, but many of them are simple websites. Currently we host something like 10 sites in single dedicated server using nginx and uwsgi. While this is very cost effective and less time consuming to maintain (since we need to maintain 1 server per 10 sites), it has some issues I don't like including:

  1. Upgrades - say if I want to upgrade Postgres I need to worry about 10 sites, and their configurations. This makes any dependency upgrades as well as OS upgrades very risky and complex.
  2. Python 3 - I need to upgrade one project to Python 3. While virtualenv might allow me to upgrade without affecting rest of the system, I am not sure about non python dependencies.
  3. OS issues - sometimes there are strange OS issues poping up. If say there was one site running on this, I could just use load balancer to route traffic to separate server and fix issue here. Now with 10 sites, this also makes time consuming.

So I am thinking about how to work around these issues. Few options I am considering.

  1. AWS - run complex apps on separate instances, use RDS for databases. This way we could also scale up and down (or out and in) apps individually without having to worry about other apps. Simple sites can be hosted on EC2 or any other server as they are simple and don't require regular updates.

  2. Use Docker to host these apps/sites in current dedicated server to avoid above mentioned issues. I am new to docker, thus I am not entirely sure whether it would solve above issues.

What is your experience with AWS and/or Docker hosting Python web apps? How do you host big number of apps/sites (typical case for agencies and freelancers I believe)?

chhantyal
  • 221
  • 2
  • 6
  • I come back to my question after few days hoping there will be answers, but it's closed instead. Great! – chhantyal Aug 11 '16 at 09:45

1 Answers1

1

AWS is the right answer in this case!

You can start a small EC2 instance for the simple websites/apps on the same instance if you believe these will be updated at the same time.

And a larger instance for each of the more complex websites/apps that require separate maintenance/updates.