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
180
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
530
Ruby on Rails Intro
v1nc3ntlaw
0
84
diff puppet chef
v1nc3ntlaw
2
150
T 客邦技術架構分享
v1nc3ntlaw
9
1k
Other Decks in Programming
See All in Programming
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
150
CSC305 Lecture 13
javiergs
PRO
0
130
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
540
Hotwire or React? ~Reactの録画機能をHotwireに置き換えて得られた知見~ / hotwire_or_react
harunatsujita
9
4.1k
Progressive Web Apps für Desktop und Mobile mit Angular (Hands-on)
christianliebel
PRO
0
110
推し活の ハイトラフィックに立ち向かう Railsとアーキテクチャ - Kaigi on Rails 2024
falcon8823
6
2.3k
Piniaの現状と今後
waka292
5
1.5k
WEBエンジニア向けAI活用入門
sutetotanuki
0
300
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.3k
Honoの来た道とこれから
yusukebe
19
3.1k
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
440
Java ジェネリクス入門 2024
nagise
0
610
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Designing for Performance
lara
604
68k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GitHub's CSS Performance
jonrohan
1030
460k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
What's in a price? How to price your products and services
michaelherold
243
12k
A designer walks into a library…
pauljervisheath
202
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
How to train your dragon (web standard)
notwaldorf
88
5.7k
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