經濟部中央地質調查所 — 地質騰雲網運用多套開源軟體

經濟部中央地質調查所 — 地質騰雲網運用多套開源軟體

經濟部中央地質調查所資源地質組簡任技正 邵屏華(右)、捷連科技副總陳家生(左)

考量到地質騰雲系統日後使用特性,經濟部中央地質調查所設計架構之初,即採用Node.js、PostgreSQL、Docker⋯等開源軟體,在2014年經雲端驗測平臺通過後對外公開,並於2016年3月啟用土壤液化資料查詢服務(SaaS)時,展現單日容納百萬人次查詢的能力,是台灣使用開源軟體最成功的專案之一。

發揮開源邊際效益 從中學習並回饋所得

地質騰雲系統在2013年上線,便提供全臺灣地質現況查詢服務。2014年調整架構使用Node.js和全JavaScript語言開發後、前端系統並大量使用開源軟體,此項決定,在2016年因美濃大地震之際,造成台南維冠大樓倒塌事件,讓民眾對於土壤液化產生的恐慌,使得地質騰雲系統流量曝增一天將近172.5萬人次,最高每10秒平均都超過1萬人同時上線,並持續數小時,這麼高的流量下,系統正常運作,順利支撐全台各地民眾的土壤液化查詢需求,讓人不禁佩服經濟部中央地質調查所資訊架構的功力。同年同時獲得亞太資通訊聯盟奧斯卡獎銀牌、雲端物聯網創新獎、資訊月百大創新金質獎、國際專案管理學會典範企業獎、十大傑出專案經理優選獎、金圖獎等多項大獎肯定,顯見地質騰雲系統架構與功能極為出眾。

經濟部中央地質調查所資源地質組簡任技正邵屏華表示,地質騰雲網在設計之初,即考量避免被商用軟體廠商綁架,以及日後開放供民眾使用後,可能有大量連線需求,基於後續維運經費及發展本土技術下的考量,堅持採用符合公開基底規範W3C建置及眾多開源軟體。正因如此,才能在發生維冠大樓倒塌事件當下,快速開發出土壤液化資料查詢服務,證明開源軟體彈性機制極佳且效能穩定,絕對足以應付嚴苛挑戰。

Node.js、PostgreSQL搭配Docker 輕鬆應付百萬次連線需求

隸屬於經濟部的中央地質調查所,多年來致力從事調查國內地質礦產、培育地質專才,對國家資源開發、工程建設及學術研究等領域,一直帶來極大幫助。特別是多年前發生福爾摩沙高速公路山崩事件後,民眾愈來愈關注各種地質資訊,所以該單位地質調查所很早便利用自行研發的地質騰雲系統,在官方網站上公布數百項各種地質資訊,提供公私部門介接及開放資料,方便民眾上網查詢各種資訊。

市面上地理資訊大都以OGC規範發展,核心技術多掌握在商用軟體公司上,讓臺灣發展國土資訊系統時,需支付龐大軟體授權費用。然而其中提供底圖機制因運算仰賴中央伺服器,一旦用戶端連線數量增加之後,直接造成資訊系統的龐大負擔。為此,在考量建置成本與自有技術掌握下,經濟部中央地質調查所規劃地質騰雲系統時,便決定回歸使用標準W3C架構,以及開源軟體,讓民眾使用瀏覽器查詢資料時,不需另外安裝外掛軟體,即可得到所需的二維、三維圖資訊息。

地質騰雲網服務目標是將地調所內部資料結合外部資源(如外部免費圖資),透過網站提供給所需民眾,因此架構本身必須能與瀏覽器保持良好相容性。而Node.js是使用Google開發的V8 JavaScript引擎,能夠讓用戶端瀏覽器維持既有效能,加上具有非同步執行的特性,能夠以多工處理單執行緒,因此可在短時間內處理大量、密集的運算工作,讓系統在高負載的運算中,仍然可以維持一定效能。

此外,地質騰雲系統改用Docker容器來打包後端系統,順利改善以往虛擬主機效能有限的問題。在硬體資源無需增加的狀況下,每個虛擬主機可穩定執行多達50個用容器打包的後端服務,自然能夠滿足大量查詢需求。至於備受全球軟體設計人員肯定的PostgreSQL資料庫,更是成就地質騰雲系統的最後重要拼圖。

運用開源軟體 培訓台灣技術人才、投資台灣軟體業者

邵屏華表示多數人以為商用軟體功能一定比開源軟體強悍,事實上絕非如此。以地理資訊系統所需的幾何類型資料儲存功能為例,1997年問世的PostgreSQL,即已開始支援該功能,但商用資料庫卻直到2003年才開始加入類似功能。不過,我們也體認到使用開源軟體得注重後續升級與維護工作,才能免去任何可能產生的風險,但也受惠於開源平台可研究應用程式的原始碼,長期下來還能提升軟體設計師的開發能力。

擁有多年使用開源軟體經驗的邵屏華認為,開源軟體是集眾人之力的結晶,可以從中學習他人長才,還有分享與開放的精神,將經費投注台灣軟體開發產業,而非大量投注購買受權費用,除能培訓台灣開源人才,又能落實本土技術發展,為台灣軟體產業祭出長遠發展之路,這也是地質騰雲系統設計時之初衷。

開源軟體必要關鍵 投入、慎選、使用與貢獻

市面上開源軟體種類甚多,邵屏華強調使用開源軟體需要做功課的,專案者需投入並了解資料規劃,包括展現資料的方法、資料流通的格式⋯等,建議優先選擇採BSD授權(可商轉),又或者有公佈長期發展藍圖(Road Map)的開源軟體著手。因為,完善開源軟體必然擁有維護發展之核心團隊(Core Team)或社群機制,或許功能不一定很先進,但會將重要更新資訊規劃在Road Map,透過不斷的創新,功能越發完善。

邵屏華不藏私的分享,地質騰雲系統是利用開源軟體所開發的系統,具備開放特性,可讓民間業者使用地質騰雲系統平臺即服務,或無償直接介接資料,進而開發模組(例如地圖導覽或是房仲資訊),增進產業活絡,這也便符合善用開源、回饋開源。

本文同步刊登於:https://www.ithome.com.tw/pr/117341

Last updated