Heroku
這是我們放置網頁應用程序的空間,這是一個號稱云端的網頁空間,我曾經寫過幾篇文章介紹 Heroku。
簡單來說,Heroku 提供了簡單的資源動態調配的選項,你可以視網站流量、負載隨時調整投入的資源(與資金),幾乎可以不必修改你的程式。像是東森新聞在總統大選時也是運用了類似的平臺來應付超過 2,400 萬個網頁讀取。除了 Heroku 之外,現在有非常多類似的平臺,像是 Google App Engine, Gondor, no.de, nodecloud, nodester, , Microsoft Azure。
AWS RDS
AWS 是由全球最大網絡書店 Amazon 提供的云端服務,RDS 簡單來說就是他們提供的一個云端資料庫,說穿了就是一個不用自己架設的 MySQL。RDS 算起來其實非常昂貴,但是初期我們為了直接跟 Heroku 搭配,就毫不猶豫的選購了。RDS 的好處是它的效能很好(相對于我們自己的小機器)、穩定度超高、有定時的備份機制。
Airbrake
這是我們的應用程式例外處理服務,每當應用程式出錯時,應用程式會主動將錯誤發生時的所有資訊發送到 Airbrake,網站營運的相關人員也會在第一時間收到錯誤發生的訊息。借此,我們可以掌握每天發生的錯誤,并且盡早處理。我個人認為,網站發生錯誤經常是不可避免的,但應該透過各種方式在第一時間掌握并且迅速回應。
Redis
Redis 不是第三方服務,而是一個 NoSQL 資料庫。我們利用 Redis 來存放幾種資料:所有的統計數據(例如每小時、每天的流量)、與搜索相關的數據,以及某些特別的應用。選用 Redis 的理由也很簡單,有些事情不太適合用關聯式資料庫處理,Redis 剛好滿適合的,包括統計或是索引方面的功能。
Redis To Go
這是一個 Redis 云端服務,方便歸方便,但是當你的應用程式吞吐量較大的時候,經常會出現錯誤訊息。此外,他們沒辦法提供用戶自訂維修的時間,因此如果你的網站時區與他們不一樣,那很可能會導致你在某些奇怪的時段無法正常使用。
Websolr
Solr 是一個 Apache 基金會底下的開放源代碼的搜索引擎專案,我們利用 Solr 作為我們的搜索引擎。Websolr 則是一個云端 Solr 服務。Websolr 也是滿不給力的,無法正確回應的頻率頗高,不過我們現在搜索量也還不大,所以之前都還得過且過。(不得不說,Websolr 效能算是挺好的)
Resque
講 Resque 其實是太偏了,比較好的說法是我們有使用 Message Queue 在處理我們某些需要進行排程的工作。我遇過很多網站經營團隊,在網站營運時是完全不用 message queue 的,使用 message queue 的理由很簡單,某些工作如果會吃到比較多的資源,或是沒有急迫性,或是例行性的工作,應該排進 Message queue,除了可以確保這些工作的完成度之外,也可以在流量突然變大時將工作分散到不同的機器上處理。
New relic
New relic 是一個應用程式的監控服務,簡單來說它可以讓你清楚的看到目前應用程式運行的效率、資料庫的吞吐量之類的,比較好的是它可以提供精確的報表,讓你掌握究竟是哪一段程式執行時間特別久,讓你可以更有效率的進行改善。New Relic 會在應用程式負載過高時主動通知,這一點也是非常實用的。
AWS S3
我們利用 AWS S3 來存放所有的照片,使用 S3 的好處是我們不需要自己處理儲存空間與備份的問題,也不需要負擔圖片的流量。
AWS Cloudfront
Cloudfront 是 AWS 提供的 CDN 服務,簡單來說,CDN 是分散于全球各地的內容發布網絡,假設你有一個臺灣網站,有一個人從美國上了你的網站,若你有使用 CDN,這位訪客有很大的機會可以就近在美國的服務器下載你網站的內容,如此瀏覽你網站的速度與體驗就會大幅的提升。我們網站目前有超過 10% 的海外用戶,我們幾乎可以確保這些海外用戶跟臺灣用戶可以擁有差不多的瀏覽速度。
Sendgrid
Sendgrid 是一個專門用來發信的服務,Sendgrid 的好處是提供了一些統計數據,讓你了解每日的發信量、開信量、信件點擊率。目前我們的發信量還小,倘若以后再大一點,或許我們會自建發信服務。
結語
你可以看到,我們運用了大量的第三方服務,有些是與網頁技術比較有關的,有些則是非技術人員就可以迅速套用并且上手的網路服務。
說穿了,除了我們真的沒有多余的人力投入在這方面的建置之外,我們也滿懶的。此外,現階段比較現實的是,我們必須專注在網站的核心價值上,寶貴的人力、寶貴的時間都是成本,應當投入在最重要的地方,至于其他次要的事情,我們先花錢外包。
而且,就我個人而言,我更有興趣的是讓產品可以穩定的營運與成長,因此我們目前利用了成本比較低的方式來建置資訊技術上的基礎架構,有些服務我們在不久的將來會開始投入資源開始建置自己的版本,有些服務則會轉移到別的廠商,這部份的經驗與決策的塬因,就留待下一篇文章分享了。
目前說起來,我們終究還是個小網站,等過陣子我們流量大一點了,我會再進一步分享許多營運上、費用與成本相關數據,希望可以藉此與讀者們多多交流。
作者:Lawrence Lin
文章來源:INSIDE