2012年11月15日 星期四

自創考題-你如何規劃內政部實價登錄網站設計?(更新)

自創考題-你如何規劃內政部實價登錄網站設計?

最近內政部實價登錄網站實在很夯
資訊處理這個職系的工作
很少可以像這個網站一樣
受到人民的"關注"
也因為大家都想連
大家都在連
就引發了很多問題與討論

日前因為流量太大,
開站以來有好幾天都連不上去
於是乎人民的問題是:怎麼都連不上去?

針對這個"流量"產生的問題
開始有一群懂資訊的人討論解決方案:
1.你把資料庫複製給我就好了啊!
乾脆由人民來做,政府做沒有效率

2.你就把網站丟上去"雲端"嘛!
雲端根本不怕流量,
放到google上面只要500元而已

還發起了一人一信寫民意信箱,
於是乎我們在採購網上看到,
該中心真的採購了雲端的服務,
也把它放上去了

流量暫時解決了,
接著又有一些人覺得:使用者介面(GUI)很難用
就把資料給人民阿!
由人民來界接你的資料
由民眾自己去寫GUI
你只要給data就好了
open data有那麼難嗎?

有一些人,認為雲端要90幾萬,
他只要500就可以做到好,
是承辦人員可能涉貪,
我在這邊不想談論這個部分,
因為我不在該機關,
也不知道實際到底是怎麼運作,
這也不是考試該寫的地方,
考試該關注的,
是這個網站帶給大家的MIS的議題:
1. open data的概念
2. 雲端的應用
這就有可能會考了。

首先我們先來看open data到底是什麼概念
其實就像上述所說的
open data 就是把資料還給人民,讓人民可以自由利用
在美國有一個政府中央的資料蒐集網站
就是提供給人民這些資料可以任意運用
(你可能會覺得,阿?為啥我們沒有,
恩~因為米國有一個中央一級資訊單位,
他們有資訊長,相當於部會首長,
而我們頂多就是一個掛在研考會底下的二級資訊單位,
那怎麼可能會有什麼力道來統籌這些資料?)
扯遠了趕快回來,
open data說起來簡單,
可以像鄉民說的,
把資料庫dump出來,
可是你有沒有想過,dump資料庫後,資料庫有更新那怎麼辦?
這就是資料庫的同步,
你或許會說,那好啊~每天晚上dump一份給我就好了。
一個應用ap每天來跟我dump一份還沒差,
如果每個人民開發的應用ap,
每天都要來跟我dump,
你能想像那個驚人的流量嗎?

假設我不要做資料庫dump這種老方法,
你可能會想說,
我用xml做資料庫物件的交換,
你政府的伺服器就負責給我資料庫的資料就好了,
這個問題比上面資料庫dump還複雜,
你應用ap只要做GUI,
後面你要連資料庫的資料,還是要連到我這邊做交換,
一個網站ap還可以,10個網站ap,
還是再加幾個不同行動平台的app,
通通連到我這邊要資料,
這時資料庫的流量,就不是普通的大了。

這就是open data要考量的第一個點:
要有強大的資料庫後援
你比傳統只面對你自己機關開發的一個ap,
要面對更多來自各種不同來源的ap,
除了資料庫伺服器效能要夠強大以外,
你還要能夠阻擋來自惡意攻擊的來源。

解決了資料庫效能流量的問題,
還有一件事情一定要考慮的,
那就是既然是要開放給人民的資料,
就要顧慮到與原始資料切割的安全性
以這個例子來說,
房價坪數等這些資料,
是來自辦理登記的資料,
這些原始資料一定有許多個資,
要如何跟你原本內網的系統切割,
保護你原有內網系統,
是在一開始設計架構時就必須想到的。
如果是以這個例子的話,
當然就是每天跑個程式,
把要公開的資料與原始資料切開,
可能是內網系統主機每個晚上跑,
然後透過ftp或其他方式丟給DMZ的主機,
準備提供給外面的open data應用AP來使用。

接下來是資訊倫理的議題,
你提供資料給民間AP使用,
萬一資料有錯的時候,
誰要來負責?
這個資料正確性的責任歸屬
就是資訊倫理的範疇,
所以一般提供open data的政府服務,
都會搭配一個行政規則來規範要跟他界接的應用AP,
比如說資料如果有錯誤,造成使用者的損失,
是由應用AP來承擔等等之類的。
或是惡意攻擊這個提供open data服務的server,
政府有權力阻擋來自這個來源的request等等。
(我這邊只是比喻,這個規範的範本,
行政院研考會早就有提供了,請自己前往觀看)

順道告訴大家一件事情,
open data目前付諸執行最成功的,
只有有錢到不行的台北市政府有做出來,
他們還辦過一個APP比賽來推廣這個open data,
還在華視轉播過。

接下來再來講鄉民說的"把網站丟到雲端",
"雲端"可是最近幾年最愛考的題目,
實際上政府機關研討會之類的也很愛講,
可是真正做出來的案子沒有幾個,
原因很簡單,
因為採購的RFP不知道要怎麼寫才不會有問題。

把東西丟到雲端,有什麼好處?
1.可以自由調配資源:
傳統我們可能為了應付一個尖峰時期的需求,
採購了大量的伺服器硬體,
但是過了這個尖峰時期,
硬體就晾在那邊,
浪費了許多能源也浪費資源,
如果採用雲端的方式,
把東西丟到跟別人共用的雲,
這樣如果你如果這時需要很多資源的時候,
雲端會自動幫你調配硬體資源。
當你不需要那麼多資源的時候,
這時這些原本服務你應用的機器,
可能會被調度去服務另外的應用。

2.可以快速部屬應用:
要做到第1點,
這個"雲"的本身就是要能夠支援快速部屬複製的,
他必須要能夠在使用量增大的時候,
能夠把原本只在雲端上面某一台機器的應用,
快速部屬到更多台雲端上的機器,
以應付使用量。
傳統上你要再多增加幾台機器服務同一個AP,
你可能需要先在新的機器上裝你的AP及環境
你可能還需要load balance,
可是雲端透過虛擬化技術,
他可以在幾秒內快速部屬你的應用到雲下所屬的機器,
可以非常快的來支援你尖峰時期的需求。

因此,買很多台機器做cluster不是雲,
應用AP去住在共構機房也不是雲,
因為這些都沒辦法符合第二個特性,
雲必須要能自動化、非人工可以自由調度資源。

簡單的講起來,
把東西丟到雲上面,
你就彷彿得到了一個永遠不會耗盡的資源,
由無數可以自動調配的機器去服務你的AP,
你需要少量的機器,雲就會自己部屬在少少的機器上,
你需要很多的機器,他可以在"你不用人工安裝"的情形下,
快速的部屬在多台機器上,
這就是大家為什麼一直想把這個網站丟到雲端上面的原因,
因為只有雲端撐得住這樣的流量。

說起來很容易,
做起來卻很不容易,
比如說"資料的安全性"這就是雲端需要考量的,
但是以這個應用來說,他本來就是要公開給大家看得,
所以沒有這個問題。

以這個雲端的特性來思考,
與其把網站放在雲上,
不如思考如何把資料放在雲上,
讓所有民眾自己開發的AP都去連雲上面的資料庫,
這樣就沒有open data需要強大資料庫後援的問題。

整理一下我個人的建議,
首先在內網平常供地政人員做登記的系統,
每天dump一些切割後可公開的資料(可能需要一個軟體來做這件事情),
接下來這些資料,把他丟到DMZ的一個server,
準備要透過這台server自動配送到雲端上,
在雲端上面只要架設能夠把這些資料提供出去類似資料庫的功能即可。

技術面上是這樣,
接著就是需要一個規範open data利用方式的行政規則了

以上這些事情說起來容易,
實際上規畫起來還是有很多細節技巧,
光是RFP就很難寫了。

這是我個人的淺見,當然,我也只是人家吃麵我喊燒,沒什麼資格來講這件事情。


最後就是統整一下這個題目可能會怎麼出

1. 請解釋雲端? 雲端應用有什麼好處? 如果要請你規劃一個可以支援超大流量的系統,你要如何結合雲端科技?(25分)
2. 請解釋何謂open data的概念及優缺點,並舉出政府應如何應用。

第1題擬答:

(一)雲端科技包含下列特色:
1.將傳統多部伺服器專屬於同一應用AP的情形,改為多部伺服器可供多項應用AP使用。

如上圖所示,傳統一個應用AP後方可能需要多台專屬伺服器以供服務所需硬體資源,如果將應用丟到雲端,可多個不同的應用AP來共享這個雲端上的所有多台伺服器的資源。

2.可動態調配資源:傳統多台伺服器專屬於同一應用AP,此應用尖峰時期需要多台伺服器,但若此應用閒置時期不須使用這麼多台伺服器,則會造成伺服器資源的浪費,雲端的概念就是為了要善用資源,在一應用尖峰時期可立刻調度多台伺服器供其使用,只需少部分的機器提供給另外其他閒置時期的應用。



如上圖,某一應用,例如申報個人所得稅系統可能在尖峰時期(4~5月)需要非常大量的伺服器資源,如20台伺服器,但其他月份可能僅需1台伺服器即可應付需求,則為了4~5月的需求量,需要採購20台伺服器,則其他月份19台伺服器都必須閒置,為了可在閒置時期供其他應用使用,產生雲端的概念。

3.可自動化快速部署並動態調配資源:雲端是建立在一群cluster機器上,然而與cluster最大的不同處是在於,傳統在一個應用因為需求量增加,必須增加新伺服器時,須由人工手動去安裝應用AP服務,而雲端強調的是可以"自動化"、"不須人為手動"的自動化快速部署,這樣的好處是如果半夜突然間需求量大增,也不需要投入人力調配並部署資源,所有的動作應該由機器自動化調配。
4.依實際需求使用量的付費機制:與傳統專屬伺服器採購後折舊攤提所需的費用比較,雲端的使用付費是依據實際資源的使用量,例如可能是依據占用的cpu資源、資料庫連線,來作計費標準,可能是按月結清,或是類似月租費的租用方式,如果服務不再使用,則亦不需支付費用。

(二)雲端應用的優點:
1.產業布局、專業分工:軟體開發人員僅需負責軟體部分維護,將軟體上雲端後,硬體維護部分不必再考慮,可交由雲端專業管理人員負責。
2.資源有效利用:相較傳統專屬伺服器會有閒置資源情況,耗電消耗費用,若動態調配資源,可響應環保並確保資源有效利用。
3.可節省初期投資成本:初期硬體機器採購部分可不需採購這麼多的硬體,僅需定期依使用量費用,減少硬體投資開銷。
4.可節省管理開銷:硬體維護人力及費用已包含於雲端租賃使用費內,不須再額外編列支付。

(三)應用舉例:以內政部實價登錄網站設計為例。
1.將網站丟到雲端,可隨時應付大量的查詢使用者:內政部實價登錄網站初期預估會有相當大的使用量,已非傳統使用多台cluster、loadbalance機器可以應付其需求流量,應將網站交由雲端,才可及時應付需求。
2.若要結合open data概念,可將網站切割成使用者介面前後台應用部分丟上雲端,資料庫部分亦丟上雲端:
內政部實價登錄網站所刊載之網站為許多民眾期盼之資訊,若能結合open data概念,將資料提供給民眾使用,例如結合各項民間開發之應用AP,將可達到資訊利用最大化的效益,但要應付這麼龐大的資料庫流量,亦需要結合雲端的配合,因此建議將資料庫部分丟上雲端;至於網站使用者介面前後台應用部分,亦可丟入雲端,以應付龐大的需求量。
3.以上概念應考量資訊安全,確實與內部應用系統切割:內政部實價登錄網站之房價來源,應為內部地政登記系統,此系統應刊載許多房屋所有人個人資料,因此,實價登錄網站之資料庫,應確實切割,如可利用資料庫或撰寫專門切割程式,每日定期將此資料由內部系統丟出至DMZ區,再由DMZ區的伺服器,自動發布部署至雲端上。

(以上那些圖型使用工具尺畫很快,不要跟我說,怎麼可能實際上可以畫那個圖,雲只要不到1秒,長方形也不用1秒。)

第2題留給你做了(其實是因為作者很懶.....)

2 則留言:

曾琨評 提到...

這兩題感覺很有希望出喔....而且是出在資訊管理或系統分析。
資訊類考試最頭痛的兩科= =

inonat 提到...

是很紅沒錯 不過也要看出題的教授有沒有再進修 如果沒更新我想出這種比較新的題目也難為他了~哈哈