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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sheng-Je Lin
March 01, 2011
Programming
270
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
T 客邦網站上線實務分享
Sheng-Je Lin
March 01, 2011
More Decks by Sheng-Je Lin
See All by Sheng-Je Lin
Build full-stack installer for Ruby Application with Omnibus.
v1nc3ntlaw
0
680
Ruby on Rails Intro
v1nc3ntlaw
0
130
diff puppet chef
v1nc3ntlaw
2
200
T 客邦技術架構分享
v1nc3ntlaw
9
1.1k
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
1.2k
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
MySQLとPostgreSQLって何が違うの?
akagami
0
120
FDEが実現するAI駆動経営の現在地
gonta
2
290
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
6
2k
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
1
520
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
330
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
210
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
340
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Faster Mobile Websites
deanohume
310
32k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Automating Front-end Workflow
addyosmani
1369
210k
Music & Morning Musume
bryan
47
7.3k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
170
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
Navigating Team Friction
lara
192
16k
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