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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
andikan
May 15, 2014
Programming
680
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Deployment and Others Tutorial
2014/05/15 @ NTU CCSP
andikan
May 15, 2014
More Decks by andikan
See All by andikan
MongoDB and Mongoose Tutorial
andikan
1
1.4k
Other Decks in Programming
See All in Programming
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
220
仕様駆動開発の消費期限
watany
14
6.5k
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
330
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
450
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
150
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
480
Google Apps Script で Ruby を動かす
kawahara
0
130
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
Cloudflare is Agents
chimame
0
140
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
290
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.7k
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Writing Fast Ruby
sferik
630
63k
A designer walks into a library…
pauljervisheath
211
24k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
450
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
240
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
480
The browser strikes back
jonoalderson
0
1.5k
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