https://github.com/mramshaw/meatballs
Exploring deployment options in the Cloud
https://github.com/mramshaw/meatballs
bitbucket-cloud cloud-deployment deployment heroku heroku-deployment jam-stack jamstack netlify netlify-deployment serverless
Last synced: 3 months ago
JSON representation
Exploring deployment options in the Cloud
- Host: GitHub
- URL: https://github.com/mramshaw/meatballs
- Owner: mramshaw
- Created: 2020-03-04T18:32:20.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-21T19:29:15.000Z (about 3 years ago)
- Last Synced: 2025-01-18T12:15:35.736Z (about 1 year ago)
- Topics: bitbucket-cloud, cloud-deployment, deployment, heroku, heroku-deployment, jam-stack, jamstack, netlify, netlify-deployment, serverless
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Meatballs
Exporing deployment options in the Cloud (mainly from the context of deploying React and Vue apps)
[Full disclosure: I have never seen "Cloudy with a Chance of Meatballs" but the title stuck with me.]
## Motivation
While researching competitors to AWS S3 for hosting my [ReactAWS](http://github.com/mramshaw/ReactAWS)
repo, I ended up trying out many of them. Which didn't really fit into the goals of that particular
project - which was to explore deploying a minimal React scaffold to AWS.
## Cloud Deployment Options
Depending upon your deployment requirements, any of the following may be an option:
* [Bitbucket Cloud](#bitbucket-cloud)
* [Firebase](#firebase)
* [GitHub Pages](#github-pages)
* [GitLab Pages](#gitlab-pages)
* [Heroku](#heroku)
* [Netlify](#netlify)
* [Render](#render)
* [Stackbit](#stackbit)
* [Surge](#surge)
* [Zeit](#zeit)
[Many of them have free options. Most will require installing a CLI tool.]
#### Bitbucket Cloud
[Bitbucket Cloud](http://confluence.atlassian.com/bitbucket/publishing-a-website-on-bitbucket-cloud-221449776.html)
is a Bitbucket option (Bitbucket is one of the Atlassian companies).
Like both GitHub and GitLab, Bitbucket has a deployment option.
#### Firebase
[Firebase](http://firebase.google.com/) was acquired by Google in 2014.
> Firebase helps mobile and web app teams succeed
From: http://firebase.google.com/
Features [React Firebase](http://react-firebase-js.com/).
Definitely worth a look for ___Mobile___, known for authentication and Crashlytics.
As perhaps might be expected, their [firebase CLI](http://firebase.google.com/docs/cli#setup_update_cli) is exceptionally useful.
Check out my demo [Vue.js](http://vuejs.org/) app deployed to Firebase at: https://vuerender-f8354.web.app/ or https://vuerender-f8354.firebaseapp.com/
#### GitHub Pages
[GitHub Pages](http://pages.github.com/) are pretty straightforward.
Check out my [Corkboard repo](http://github.com/mramshaw/Corkboard) deployed on GitHub Pages: https://mramshaw.github.io/Corkboard/
#### GitLab Pages
[GitLab Pages](http://docs.gitlab.com/ee/user/project/pages/)
seem to be pretty much the same thing as __GitHub Pages__, but for ___GitLab___ of course.
#### Heroku
[Heroku](http://www.heroku.com/) is owned by Salesforce.com and offers a number of attractive services.
It uses containers, which are referred to as `dynos`: http://www.heroku.com/dynos
Deploying to Heroku can be a little bit complicated.
#### Netlify
[Netlify](http://www.netlify.com/) is very easy to use, so a pretty good option.
Of course, Netlify are known for defining [Jamstack](#jamstack).
So, not surprisingly, Netlify is really optimal for [Jamstack](#jamstack) deployments.
Check out my [ReactAWS](http://github.com/mramshaw/ReactAWS) scaffold
deployed on Netlify: https://compassionate-sinoussi-40e0e0.netlify.com/
#### Render
[Render](http://render.com/) seems to be an interesting alternative to __Heroku__, probably worth investigating.
They offer a summary of how Render differs from Heroku:
http://render.com/render-vs-heroku-comparison
One difference:
> Heroku customers running production and staging workloads typically see cost reductions of
> __over 50%__ after switching to Render
And:
> Heroku [serves all content over HTTP/1.1](http://help.heroku.com/JAOCNZ25/does-heroku-have-plans-to-support-http-2).
> However, major browsers have supported [HTTP/2](http://en.wikipedia.org/wiki/HTTP/2) since 2015. Render serves all
> requests over HTTP/2, falling back to HTTP/1.1 for older clients. This minimizes simultaneous connections to your
> Render apps and reduces page load times for all your users.
[Both quotes are from the Render web page. Other differences between the two services are also listed.]
Note that Render can integrate with either a GitHub repo or a GitLab repo.
These appear to be the only deployment options available (for now?).
Apart from the GitHub / GitLab root repo proviso, seems like a nice service.
Note that - at the ___free___ level - the `Let's Encrypt` site certificate expires in three (3) months.
#### Stackbit
[Stackbit](http://www.stackbit.com/) describe themselves as:
> THE BEST WAY TO JAMSTACK
[I am including them here for completeness, but they are probably only for [Jamstack](#jamstack) deployments.]
#### Surge
[Surge](http://surge.sh/) appears to be for __static__ websites only, so perhaps not suitable for React.
Surge describes themselves as:
> Static web publishing for Front-End Developers
From: http://surge.sh/
[Note the __Static__ part.]
And:
> Surge has been built from the ground up for [native web application](http://blog.andyet.com/2015/01/22/native-web-apps)
> publishing and is committed to being the best way for Front-End Developers to put HTML5 applications into production.
From: http://surge.sh/help/getting-started-with-surge
#### Zeit
[[Zeit](http://zeit.co/) is sometimes referred to as simply __Now__.]
> ZEIT Now is a cloud platform for static frontends and serverless functions.
> It enables developers to host websites and web applications that deploy
> instantly, scale automatically, and require no supervision.
From: http://github.com/zeit/now/tree/master/examples
## Reference
Some useful reference notes follow.
#### Jamstack
[Jamstack](http://en.wikipedia.org/wiki/Netlify#Jamstack) (formerly known as JAMstack) is an architecture
defined by Mathias Biilmann (CEO & Co-founder of Netlify):
> A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup
[The JAM in Jamstack stands for Javascript, APIs, and Markup. So ... somewhat more than a __static__ website.]
> It’s a new way of building websites and apps that delivers better performance, higher security,
> lower cost of scaling, and a better developer experience.
From: http://jamstack.org/
Check out Jamstack examples here: http://jamstack.org/examples/
[Incidentally, Jamstack sites are considered by AWS to be
[well-architected](http://aws.amazon.com/blogs/apn/the-5-pillars-of-the-aws-well-architected-framework/).]
To achieve optimal efficiency and cost reduction, Jamstack sites require a __CDN__.
Jamstack sites are __serverless__:
> The thing that they all have in common is that they don’t depend on a web server.
From: http://jamstack.org/
While Jamstack sites are effectively serverless, Jamstack ___itself___ is not considered to be serverless.
## To Do
- [x] Add links to a Vue.js app deployed on Firebase
- [x] Add link to a React.js app deployed on GitHub Pages
- [x] Add more details on Render versus Heroku
- [x] Remove link to deleted Heroku deployment (Heroku is no longer free)
- [x] Remove link to deleted Render deployment
- [ ] Investigate [Twelve-factor](http://12factor.net/) options
- [ ] Add more notes on cloud deployment options