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
T 客邦網站上線實務分享
Search
Sheng-Je Lin
March 01, 2011
Programming
3
210
T 客邦網站上線實務分享
Sheng-Je Lin
March 01, 2011
Tweet
Share
More Decks by Sheng-Je Lin
See All by Sheng-Je Lin
Build full-stack installer for Ruby Application with Omnibus.
v1nc3ntlaw
0
620
Ruby on Rails Intro
v1nc3ntlaw
0
90
diff puppet chef
v1nc3ntlaw
2
180
T 客邦技術架構分享
v1nc3ntlaw
9
1k
Other Decks in Programming
See All in Programming
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.9k
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
4
1.3k
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
400
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
2
690
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1.2k
Catch Up: Go Style Guide Update
andpad
0
180
止められない医療アプリ、そっと Swift 6 へ
medley
1
120
どの様にAIエージェントと 協業すべきだったのか?
takefumiyoshii
2
610
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
100
Advance Your Career with Open Source
ivargrimstad
0
350
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Balancing Empowerment & Direction
lara
4
680
How to train your dragon (web standard)
notwaldorf
96
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Thoughts on Productivity
jonyablonski
70
4.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Cult of Friendly URLs
andyhume
79
6.6k
KATA
mclloyd
32
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Facilitating Awesome Meetings
lara
56
6.6k
Code Reviewing Like a Champion
maltzj
525
40k
Transcript
T客邦網站上線實務 網站上線前,不做會死的工作。 2011/03/01 Ruby Tuesday #17
about.me/v1nc3ntlaw • 林聖哲 Vincent • T客邦 Rails Developer • Ruby
on Rails Developer Since 2010.05
網站上線大作戰 • 開發時的準備 • production server 的佈署 • 上線前的預備 •
上線時的流程 • 上線後的觀察
Redmine 開票紀錄必要的設定 • 開發時註解起來,上線時需要打開的 code • if Rails.env == ?
• daemon $ script/delayed_job -n 3 start $ rake thinking_sphinx:start • /etc/crontab $ rake sitemap:refresh $ rake thinking_sphinx:rebuild
利用 capistrano 讓 deploy 自動化 • https://github.com/capistrano • gem "capistrano"
• config/deploy.rb $ cap deploy
架設 staging server • 相似 production server 的環境 提早發現開發環境無法發現的問題 •
利用 capistrano 拆分 ◦ gem "capistrano-ext" ◦ config/deploy/production.rb ◦ config/deploy/staging.rb $ cap staging deploy
production 環境的佈署 • deploy code to production server $ cd
projects/playgame $ cap production deploy:setup $ cap production deploy
production 環境的佈署 • 設定檔 ◦ /srv/playgame/shared/config/database.yml ◦ /srv/playgame/shared/config/api_key.yml ◦ /srv/playgame/shared/config/nginx.conf
wrong, it's rack_env
production 環境的佈署 • 在 nginx 主要設定檔 /opt/nginx/conf/nginx.conf 加入 ◦ include
/srv/*/shared/config/nginx.conf ◦ 讀取每個網站的 nginx.conf ▪ /srv/playgame/shared/config/nginx.conf ▪ /srv/digiphoto/shared/config/nginx.conf ▪ /srv/techbang/shared/config/nginx.conf
production 環境的佈署 $ cd /srv/playgame/current $ RAILS_ENV=production rake db:create $
RAILS_ENV=production rake db:migrate $ RAILS_ENV=production rake db:seed $ export RAILS_ENV=production
DNS 設定 • 提早設定 • game.techbang.com.tw • asset.game.techbang.com.tw • cdn0~3.game.techbang.com.tw
相關部門的配合 • 要求公司內部相關人員在 staging 測試找出問題 • 舊站轉新站:網站發佈公告下線維護的時間 • 新站:到社群發佈網站上線的時間
上線前兩天 • 完成 production server 的佈署 • playgame PHP 轉
Rails ◦ 編輯截稿停止上新文章 ◦ 備份 PHP 資料庫,在 production server 轉換資料庫 ◦ 轉完資料庫檢查 Rails 網站內容 • digiphoto Rails 新站 ◦ 請編輯準備好可以上稿的稿件 ◦ 設定 HTTP Basic Authentication 只有內部人員可以進入 ◦ 開始上稿
production 檢查項目 • 檢測 SSO 登入、登出行為正常 • 確保文章刊登正常,不會顯示未來文章,包括 RSS 輸出
• 應該使用 strip_tags 濾掉 HTML 的地方 ◦ meta description、文章的引言 • 每頁的 meta title 都要變換 ◦ 文章標題 | 站名 • 確認廣告顯示正常 ◦ 廣告系統、 Google AdSense、Yahoo Ads • Social Widgets ◦ Facebook、Plurk、Twitter
效能檢查 • 開發寫程式時不要過於注意效能問題 但上線前需要做全面的檢測 • 避免全域的 SQL Query 可在 partial
裡撈資料打 cache
效能檢查 • 在開發端測效能 ◦ script/server ◦ tail -f log/development.log
效能檢查 • https://github.com/nesquena/query_reviewer
上線 • playgame 公告網站維護時間兩個小時 ◦ 舊站進入維護頁面 ◦ 修改新舊站 nginx.conf 互換
server_name ▪ server_name game.techbang.com.tw root /srv/playgame/php ▪ server_name game_on_rails.techbang.com.tw root /srv/playgame/current/public • digiphoto ◦ 解除 HTTP Basic Authentication 即可
SEO 檢查 • public/robots.txt User-Agent: * Disallow: Sitemap: http://game.techbang.com.tw/sitemap_index.xml.gz •
nginx.conf 中設定 301 轉址 rewrite ^/wow$ http://game.techbang.com.tw/games/45 permanent; • Google Webmaster 進行驗證 • 檢查 RSS,上 feedburner 可分散流量,auto discovery
New Relic 觀察網站效能
Web transactions
Database
Hoptoad 追蹤錯誤訊息
錯誤訊息紀錄
Scout 監控伺服器狀況
Q & A