dwyl / dwyl/learn-devops

EPIC: Continuous Deployment of Phoenix Apps to Any VPS

Open
#59 18 comments 0 reactions 1 assignee Claimed by @SimonLab View on GitHub
enhancement epic help wanted priority-2 technical
Dominant language
Shell
Stars
443
Forks
177
PR merge metrics
No merged PRs in 30d

Description

At present we don't have a reliable way of doing Continuous Deployment to Linode for our Hits App.
https://github.com/dwyl/hits ... Because it's been infrequent, I have done the deploy _manually_. 🤦

We have setup CI/CD for _Client_ Phoenix Apps in the past e.g:
https://github.com/dwyl/learn-microsoft-azure#how
But so far we have stuck to using Heroku for @dwyl Apps because it's _so_ easy and cheap (Free!)

Now we need to do it with a fresh pair of eyes and with the benefit of all the enhancements that have occurred in the Phoenix/Elixir/Erlang community over the past couple of years.

> Despite running Cowboy (Erlang) under the hood, Heroku still places limits on concurrency and connections to preserve service quality for all users. Also, when you factor in a PostgreSQL database (min $9/month), Heroku gets quite expensive for "hobby" or "side project" apps like Hits. And given that Hits has _way_ more than 10M rows (the limit for the $9/month DB) at this point, we would probably need to pay the **$200/month** for the "standard" Postgres instance ... 💸
see: https://elements.heroku.com/addons/heroku-postgresql

# Todo

+ [ ] Create a new file: `phoenix-continuous-delivery.md`
+ [ ] Research and document how to deploy a Phoenix Application the "right" (_official_) way.
+ [ ] Determine if that is suitable for our needs.
+ [ ] We need WebSockets (Channels)
+ [ ] Ideally we would like to be able to deploy **_multiple_ basic apps** to the **_same_ VPS**. But this is **not _essential_** as we can afford to pay $3.50/month for a basic VPS. e.g [ovh.com](https://us.ovh.com/)
![image](https://user-images.githubusercontent.com/194400/81421211-fdcd8980-9148-11ea-9acf-efc0c5f1e65e.png)

Related:
+ [ ] Logging! #60
+ [ ] How to run PostgreSQL on the _Same_ instance or a Cluster of independent machines? see: https://github.com/dwyl/learn-devops/issues/58
+ [ ] Should we Use **OpenBSD** the OS: https://github.com/dwyl/learn-security/issues/73

@SimonLab given that you _prefer_ to focus on "back end" part of your "full stack" skills, I feel like your name is missing from this list: https://github.com/dwyl/learn-devops/graphs/contributors 😉
I've added you to the Linode account using your `gmail` address.
Please add 2FA to enhance security: https://www.linode.com/docs/security/authentication/two-factor-authentication/linode-manager-security-controls
And feel free to play with a Linode VPS on my account.

P.S: I'm not _married_ to Linode by any means. I just _prefer_ to use an independent service that is not VC funded or pouring money into the pocket of the [world's richest person](https://en.wikipedia.org/wiki/The_World%27s_Billionaires) 🙄
The reason the title of this issue is "Any VPS" is precisely because we want a _generic_ solution to deploying our Phoenix Apps.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.