I argued that it was not that much plumbing with modern frameworks or with project templates (like yeoman ones) and that deployment had been heavily simplified in environments like Heroku.
So, in this quick & dirty post I will try to prove my point building a simple HTTP server exposing a Hello-World HTTP API.
Creating the app:➜ echo "import os
from flask import Flask
app = Flask(__name__)
return 'Hello, World!'
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 5000)))" > app.py
➜ echo "flask" > requirements.txt
➜ echo "web: python app.py" > Procfile
➜ git init
Initializing the source control (git) and comiting the changes:
Initialized empty Git repository in /Users/ggb/projects/rgb/.git/
➜ git add *
➜ git commit -m "First version"
Deploying to production:➜ heroku create rgb-ggb
Creating ⬢ rgb-ggb... done
https://rgb-ggb.herokuapp.com/ | https://git.heroku.com/rgb-ggb.git
➜ git push heroku master *
Try It!: https://rgb-ggb.herokuapp.com/
Code: 7 LoC (4 is the plumbing of starting the server and it has to be done only once)
Deployment: 1 file (Procfile) to tell heroku how to start your app (this is not needed for node.js apps and could be autogenerated with a yeoman template) + 1 git push command in the console (and a "heroku create" command the first time)