Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deployment and Others Tutorial
Search
andikan
May 15, 2014
Programming
1
660
Deployment and Others Tutorial
2014/05/15 @ NTU CCSP
andikan
May 15, 2014
Tweet
Share
More Decks by andikan
See All by andikan
MongoDB and Mongoose Tutorial
andikan
1
1.4k
Other Decks in Programming
See All in Programming
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
530
Is Xcode slowly dying out in 2025?
uetyo
1
270
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
160
NPOでのDevinの活用
codeforeveryone
0
840
VS Code Update for GitHub Copilot
74th
2
650
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
87
29k
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
120
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
10
5.2k
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
820
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
320
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.1k
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
110
Featured
See All Featured
Designing for Performance
lara
610
69k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Side Projects
sachag
455
42k
Building Adaptive Systems
keathley
43
2.7k
The Pragmatic Product Professional
lauravandoore
35
6.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
820
Designing for humans not robots
tammielis
253
25k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
It's Worth the Effort
3n
185
28k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Transcript
Cloud Computing-Based Service Design and Programming Andy Kuo @andikan Deployment
and Others
➡ Trello ➡ User Authentication ➡ Heroku ➡ MongoLab ➡
Files Upload to S3 ➡ Github Page
https://trello.com/
Kanban Board
More about Trello • Introductions - http://blog.fogcreek.com/how-we-make-trello/ - http://csswizardry.com/2014/05/my-trello-workflow/ •
Trello Tech Stack - http://blog.fogcreek.com/the-trello-tech-stack/ • Node.js wrapper for Trello’s API - https://github.com/adunkman/node-trello • Phaser app : simple kanban board - http://phaserapp.com/
Passport.js Simple, unobtrusive authentication for Node.js $ npm install passport
http://passportjs.org/
Passport.js Single Sign-on using an OAuth provider such as Facebook
Token-based credentials to protect access $ npm install passport-facebook http://passportjs.org/guide/facebook/
Runing Node.js App on Heroku https://www.heroku.com/ Heroku
SaaS PaaS IaaS Software as a Service Platform as a
Service Infrastructure as a Service
FTP http://www.slideshare.net/lkiral/git-34157836 Using Git push
Cedar The celadon cedar stack Default runtime stack and is
a flexible, polyglot environment https://devcenter.heroku.com/articles/stack https://devcenter.heroku.com/articles/cedar
Dyno A lightweight container running a single user-specified command Web
processes, worker processes and any process types declared in the app’s Procfile https://devcenter.heroku.com/articles/dynos
Procfile What commands are run by your app’s dyno on
the Heroku A text file named Procfile web: node app.js https://devcenter.heroku.com/articles/procfile
Getting Started with Node.js on Heroku https://devcenter.heroku.com/articles/getting-started-with-nodejs
Heroku user account Signup is free ! https://signup.heroku.com/signup/dc step0
Install Heroku Toolbelt Heroku command line tool https://toolbelt.heroku.com/ step0
Login Heroku $ heroku login You can login in any
directory step1
Declare process type with Procfile web: node app.js Declare the
command to start a web dyno step2
Start your app locally using Foreman $ foreman start Try
using foreman to run your server locally step3
Store in Git $ git init $ git add .
$ git commit -m “commit message” step4
Create a Heroku app $ heroku create $ heroku create
your-app-name Automatically add a git remote named “heroku” pointing at your Heroku app remote git repository URL $ git remote -v step5
None
Deploy your code $ git push heroku master After Heroku
detects Node.js app and install dependencies with npm, it will launch the process declared in Procfile step6
Ensure the dyno $ heroku ps:scale web=1 Ensure we have
one dyno running the web process type step7
Check state of dynos $ heroku ps List the running
dynos of your application step8
Visit your app $ heroku open Visit the app in
the browser step9
View the logs $ heroku logs $ heroku logs -n
200 Heroku only stores the last 1500 lines of log history
Server console $ heroku run node This console has nothing
loaded other than the Node.js standard library
Habits of a Happy Node Hacker https://blog.heroku.com/archives/2014/3/11/node-habits
Keep dependencies out of source control $ echo node_modules >>
.gitignore Ignoring the node_modules directory using git ignore
Keep track of outdated dependencies $ npm outdated Figure out
which of your app’s dependencies have fallen behind and need to be updated
Staging Server ?
Development Staging Production Environments This environment runs virtually identical to
production, but on a backup of the production database Developing and run the local server This environment run for real users
MongoLab https://mongolab.com/
DaaS Database as a Service MongoDB hosting platform Hosting on
Amazon, Google, Rackspace, Windows Azure Automated backups, web-based tools, monitoring and support
Heroku Add-ons Add powerful functionality to your apps with ease
https://addons.heroku.com/
https://addons.heroku.com/
Using Heroku MongoLab Add-on $ heroku addons: add mongolab By
default, add free Sandbox plan
Get MongoLab connection URI $ heroku config | grep MONGOLAB_URI
The connection URI to connect to MongoDB hosting on the MongoLab
Connect to MongoLab URI
Connect to MongoLab URI
MongoLab’s admin GUI for MongoDB $ heroku addons:open mongolab
None
Files upload to Heroku
Uploaded Files on Heroku are lost ? Each time you
push a new change to your Heroku application, your application is recreated and all uploaded data in /public directory is lost
Uploading directly to Amazon S3 Each time you push a
new change to your Heroku application, your application is recreated and all uploaded data in /public directory is lost
Amazon S3 bucket Create a AWS account Create a S3
bucket Edit S3 bucket permission property
Setup AWS credentials in Heroku $ heroku config:set AWS_ACCESS_KEY_ID=xxx $
heroku config:set AWS_SECRET_ACCESS_KEY=yyy $ heroku config:set S3_BUCKET=zzz
Uploading directly to Amazon S3 https://devcenter.heroku.com/articles/s3-upload-node https://github.com/d1b1/heroku-nodejs-s3-demo
https://www.inkfilepicker.com/ https://addons.heroku.com/filepicker https://devcenter.heroku.com/articles/filepicker
Github Pages
Github Pages Hosted directly from your Github repository User or
organization page / Project page https://pages.github.com/
Creating Project Pages $ git checkout --orphan gh-pages create a
branch named ‘gh-pages’ without any parents $ git rm -rf . https://help.github.com/articles/creating-project-pages-manually
Creating Project Pages create index.html file $ git add index.html
$ git commit -am “First pages commit” $ git push origin gh-pages username.github.io/projectname https://help.github.com/articles/creating-project-pages-manually
Socket.io http://socket.io/
Socket.io $ npm install socket.io http://socket.io/#how-to-use
None
Redis http://redis.io/
Using Heroku Redis To Go Add-on $ heroku addons: add
redistogo https://devcenter.heroku.com/articles/redistogo#using-with-node-js https://addons.heroku.com/redistogo
Kue $ npm install kue Delayed jobs Jobs priority https://github.com/learnboost/kue
http://learnboost.github.io/kue/
Redis Pub/Sub Publish and Subscribe to the channel https://github.com/louischatriot/node-redis-pubsub http://redis.io/topics/pubsub
Cloud Computing-Based Service Design and Programming Andy Kuo @andikan Thanks