PeoPo 公民新聞網

一個上線超過五年,有6千多個使用者、近八萬篇文章的網站要改版!防「蛋」衣準備好,夥伴們衝啦~

由於不才在下去年才剛完成一個與公民新聞有類似性質的網站「weReport」的專案管理/規劃,自覺還頗得心應手,今年八月我們標到 PeoPo 公民新聞網的改版專案,不才在下手上剛好案子快結束正在收尾,於是乎便「自告奮勇」的把脖子伸長過去要求Charles把刀子架在我脖子上.....現在看來還真是一股沖天傻氣啊...

架構規劃

必須說,Peopo的內容架構一點都不複雜,根本是本專案最簡單的部分。以「公民新聞」內容類型為核心,做出各種排列組合,包括公民新聞+角色產生的公民記者專頁、公民新聞+分類/作者產生的主題專頁、公民新聞+node reference讓公民新聞有onTV的標記,以產生被選用上公視新聞的公民新聞....如果你看到這裡也覺得Peopo很像沒什麼難的,不過就是公民新聞這個單一材料用來炒成各種菜色,嘿,握個手吧,我當初跟你一樣傻XD (通常....整本書都沒畫重點,除非根本是本爛書,不然就是整本都是重點啦,peopo就是這樣一個魔鬼藏在簡單裡的網站)

雖然架構單純,但也不是欄位開一開那麼簡單,例如,負責將特定分類/作者撈出來組成新聞專頁的內容類型就有相當複雜度,為了讓網站管理者可以方便操作,在後台的UI上面下了很多功夫,讓一個包含複雜元素的頁面可以利用一個表單就全部設定完成,好在這個後台苦功下的值得,peopo現在的所有新聞分類都可以運用上。

另,分類系統也是本站架構上的一大挑戰,除了全站共用的分類,每個公民記者還有自己專用的分類(包括文章分類、相片分類、連結分類),工程團隊採用了private_taxonomy加上大量客製,總算達成任務。

「習慣的就是最好用的」

回到另一個重點(講半天終於講到了)peopo這個專案是「一個上線超過五年,擁有6千多使用者、近八萬篇文章的UGC網站要改版!!!」這代表的意思是,要是後台界面做不好,UI、UX不理想,會被六千多個公民記者丟雞蛋啊啊啊....面對這一個可怖的處境,本團隊採取的對策就是....「習慣的就是最好用的」,在現有的 Drupal特性上,盡量修改模擬讓它近似于舊站的發稿/管理界面,原本舊站沒有的功能,例如排程發稿,就得把drupal原有的排程功能做很多客製,以期與現有的影音系統銜接上。

從私人分類、私人相簿、大量上傳圖片、影音上傳,到地圖選擇,每個功能都得附上血淚斑斑的客製歷程,好在PeoPo團隊的至理、宸語,與我們一起經歷無數的測試、修改,是Peopo改版得以順利完成的大功臣。

挑戰一:效能

原先以為PeoPo的資料應該不會耗費太多Database資源,然而在實際上導入舊資料將近10萬筆文章、20萬筆推薦、10萬筆檔案、5萬筆分類和Tag時,終將面臨頁面上SQL執行效能的考驗。

因此在效能調整時,特別針對PeoPo的頁面做了各式效能增強處置,包含:

  • Server端應用Nginx
  • 快取與Session存入記憶體
  • 資料庫改為Master - Slave架構
  • 應用CSS、JS壓縮
  • 針對登入使用者最佳化頁面快取( panel page cache
  • 客製快取清除機制
  • 快取暖機(Cache Warmer
  • PHP Profiling,監測PHP程式的瓶頸( Xhprof
  • Database Query Log,監測MySQL的效能問題( Devel

有人說,Drupal是給開發者專用(來客製複雜網站)的CMS,透過本次專案印證了這個事實!沒有這些工具的幫助,本次專案的效能瓶頸還真難跨越啊!

附上新網站舊網站的前端效能數據比較...

挑戰二:資料移轉

整個PeoPo網站的移轉,歷經了5次測試,耗費了將近240小時,才能順利除錯,在上線前夕提供最短的斷線時間來進行資料庫移轉,將原本 Lifetype-based 的網站移轉成為 Drupal。

240小時,還不包括移轉程式開發、資料庫對應、MS Sql to MySQL 的測試等等問題。好在整個開發仰賴了Drupal的模組Migrate,雖說開發不輕鬆,但因為其架構完整,讓這次可以順利進行新舊資料庫欄位對應的比對,和不斷移轉和回溯的歷程。

整個資料移轉雖是網頁程式,卻需要不停機的跑,因此在一個電腦上執行網頁是不成的,這時也應用到Drupal 的命令列程式Drush,讓我們不用開瀏覽器也可以執行Drupal 模組,如此一來,沒天沒夜的移轉就讓機器自動化作業了(搭配人肉除錯...)。

挑戰三:時程

整個改版時程僅有5個月的時間,從新版本的規劃、視覺設計、工程實現,到伺服器建置,能在這麼短的時間內完成大改版的任務,仰賴的不只是網絡行動團隊本身,還得PeoPo相關同仁的支持和配合,例如IT同仁能夠在有限時間內不斷與我們討論來提供各種硬體資訊和Server設定,而網站經營團隊能夠給予實際的試用測試、錯誤回饋,才能讓在有限時程內的任務順利達成。

常常有人問說,做一個網站要多久?我想,就這次PeoPo的經驗,如果有決心讓團隊密切搭配,那一個網站真的可能在時限內完成!

 

結語

登入到PeoPo的公民記者後台,裡頭的一磚一瓦一草一木,都是血汗的結晶,怎麼能不讚嘆我們撐過來了呢?而且沒有被丟雞蛋,欣慰。至於還要不要有下次?

恩,一回生二回熟,有意改版的平台,趕快來訊洽詢吧~

 

再續前緣:影音轉檔與RWD版

2013與2014年,我們陸續執行了Peopo網站的影音轉檔機制更換、以及RWD平板/手機版本的製作。

原本的影音轉檔機制是購置國外的某個技術,隨著技術的日新月異,不僅無法支援某些檔案格式、轉出更高品質的影片,在播放器的應用上也過時了。我們採用開源碼的 FFMPEG 作為轉檔的技術,並採用 flowplayer 作為播放器,同時提供電腦與手機的播放支援。至於平板/手機版本的製作,則是採用響應式設計(Responsive Web Design)的技術,針對平板直式與智慧型手機,提供更適切的閱讀體驗。