dwyl / github-backup

:octocat: :back: 🆙 Backup your GitHub Issues so you can still work when (they/you are) offline.
https://github-backup.herokuapp.com
GNU General Public License v2.0
32 stars 3 forks source link

Change host provider #16

Open SimonLab opened 6 years ago

SimonLab commented 6 years ago

From an MVP perspective Heroku is an easy way to deploy application and I think for a first step we should deploy with it.

Howerver there are some limitation using Heroku with Elixir/Phoenix (https://hexdocs.pm/phoenix/heroku.html#limitations): image

So when the app will be used by more users we might need to find an alternative, AWS, DigitalOcean, Gigalixir?

nelsonic commented 6 years ago

Hi @SimonLab, great Question! 👍

Agree 100% that Heroku is definitely not our "long term" solution for deploying the app. (this is based on the excessive cost of their PostgreSQL and "Web Dynos" ...) In the short-run, we don't need "lots of connections", clustering or ETS. We've "survived" without SSH access to dynos in the past, no reason it should stop us now ...

Gigalixir

https://gigalixir.com created by Jesse Shieh @jesseshieh https://www.linkedin.com/in/jesseshieh is (as it's name suggests) focussed on Elixir app deployments and for this niche it has a compelling value proposition: image However we can already get "hot upgrades", "Phoenix Channels" and SSH Access from any other host using Distillery for deployment.

My only "concern" is the cost: gigalixir-pricing $10 per 200mb of Memory seems expensive (on the surface...) Also, it's unclear what the performance of their PostgreSQL DB will be. 🤔

I'm happy for a "Spike" to be done to try out Gigalixir provided we take detailed screenshots. How long do you estimate this will take? This looks like a good place to start: https://github.com/gigalixir/gigalixir-getting-started

By far the biggest advantage of using a dedicated platform like Gigalixir is the Technical Support: Having someone we can email for help when we are having trouble with our deployment is easily worth the additional cost. And, let's face it, the "servers" are going to be an "insignificant" cost during MVP.

DigitalOcean

I like the simplicity of the interface on DO. They have the two main services we need for this App:

https://www.digitalocean.com/products/droplets/ image

https://www.digitalocean.com/pricing image

https://www.digitalocean.com/products/spaces image

AWS

I'm really not a "fan" of the complexity AWS has created with their insane number of services! However, they do have a few that I find useful, specifically:

The only real "must" from AWS is sending emails which we will want to do to confirm the signup. But that's one of the last things we need add and we can send them from any host, so hosting on AWS is not a "requirement" for now.

Linode?

Another option is Linode, which we are using for hits.dwyl.com see: https://github.com/dwyl/learn-devops#how It's cheap and has good UI but no "S3 equivalent" so I think we can "rule it out" for this project.

jesseshieh commented 6 years ago

Hey guys, founder of gigalixir here in case you have any questions. Also we're happy to send you a pull request to get you started since you are open source. Our postgres instances are actually just Google Cloud SQL postgres instances.

Cleop commented 6 years ago

@nelsonic @simonlab - what's the conclusion on this one? Are we sticking with heroku until further notice or do we want to make a change now/soon?

nelsonic commented 6 years ago

@Cleop we can use Heroku while we are building the MVP. 🚀 Once we feel the app is ready to be used by us and our clients we should re-visit. 👍 I like the idea of trying Gigalixir the only "concern" is we would need to re-write some code for Google Cloud. (specifically S3 and SES code)