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