97成人免费视频,97视频免费公开成人福利,免费视频99,99婷婷,国产伊人久久,亚洲视频欧美,国产精品福利久久

您當前的位置是:  首頁 > 新聞 > 專家觀點 >
 首頁 > 新聞 > 專家觀點 >

蔡學鏞:純云架構最好改用函數(shù)式設計、5大架構秘訣公開

2017-06-26 14:37:39   作者:   來源:CTI論壇   評論:0  點擊:


  「你說的云,是哪一種云?」擁有多年云端架構師經(jīng)驗的北京全棧科技聯(lián)合創(chuàng)始人蔡學鏞表示,目前大家對云的定義都不大一樣,企業(yè)要用要先厘清是哪一種云,再加上傳統(tǒng)的程式設計方法不適合云端平臺,他建議,程式設計師要結合架構師,找出新的程式設計方法。
\
  「你說的云,是哪一種云?」許多企業(yè)都認為將系統(tǒng)和資料上云端有很多好處,不但可以節(jié)省成本又可以彈性調用資源,那為什麼不搬上云端呢?曾在大陸擔任阿里巴巴支付寶、中國銀聯(lián)、創(chuàng)新工場、中國平安保險集團等公司的架構師,擁有多年云端架構師經(jīng)驗的北京全棧科技聯(lián)合創(chuàng)始人蔡學鏞表示,企業(yè)設計軟體時,是否考慮到云端平臺的特性是相當重要的課題,他也指出,目前大家對云端的定義都不大相同。
  他認為,目前比較流行的是FaaS(Function as a Service)和BaaS(Backend as a Service),F(xiàn)aaS就是將程式拆成各自獨立的功能,各個程式之間互相沒有關聯(lián),BaaS則是用Open API來用開發(fā)服務,像是用戶的身份認證,這兩種云端設計方式可以讓程式更加自動化,減少程式運作維護的工作量,也讓程式設計師可以不用考量系統(tǒng)流量瞬間爆量的問題。
  而現(xiàn)今有許多企業(yè)會在PaaS層上設計服務,但他提醒,若不是像用Spring Boot框架開發(fā),很容易還是將程式和資料庫綁在一起,若將兩者綁在一起,則不適合云端的平臺。
  蔡學鏞將云端程式設計分成Who、What和How,設計程式時分為兩種工程師,一種是程式設計師,負責設計與業(yè)務領域相關的功能,設計的方式則可用領域導向的方式(Domain Driven Design, DDD)的方式,他表示,DDD的設計方式一直都不太流行,但是最近因為流行微服務,而DDD又開始興起。
  第二種工程師則是架構師,他說明,這個詞大約2000年才誕生,與網(wǎng)路的興起密不可分,架構師主要從事的不是功能的設計,而是以系統(tǒng)運作為導向的設計,包括系統(tǒng)的負載量、安全性等,他建議可用的設計方式是Patterns of Enterprise Application Architecture(PEAA)。
  「我也開始在轉型!」蔡學鏞表示,由於云端平臺的興起,將許多架構師的工作都可以方便快速地完成,且許多云端架構的問題都有規(guī)則可循,架構師的價值也越來越式微,他也在思考自己要如何轉型,他認為,程式設計師要結合架構師的角色,找到新的程式設計方法。
  由於現(xiàn)在系統(tǒng)需求快速且多變,蔡學鏞認為,過去傳統(tǒng)的程式設計方法已經(jīng)不管用,主要是因為傳統(tǒng)的物件導向程式設計的結構有些問題,他指出,以前的程式設計都將業(yè)務和資料緊緊地綁在一起,但是綁在一起的作法并不適合云端平臺,物件導向的觀念在敏捷開發(fā)也完全不適合。
  他點出傳統(tǒng)物件導向設計的眾多問題,舉例來說,蔡學鏞以前在保險公司擔任架構師時,保險的規(guī)則非常繁雜,高達1,000萬條,也有許多幽靈規(guī)則,平時都沒有執(zhí)行,但是沒有人敢調整,深怕一調整系統(tǒng)會當?shù)簟?/div>
  另外,法規(guī)和業(yè)務調整的變動也會影響著前端的服務模組、API,以及後端調用資料庫和串連外部系統(tǒng)的設計,還有FaaS的設計強調沒有狀態(tài)(State),但是物件導向的物件都是有狀態(tài),他建議,企業(yè)若要使用云端,則要使用函數(shù)式的程式設計。
  蔡學鏞歸納出五個函數(shù)式程式設計的原則,首先,設計業(yè)務功能的模組要分開,且分的越細越好,第二要采用非同步的調用方式,讓程式無需等待被調用函數(shù)的返回值,就讓程式繼續(xù)執(zhí)行,第三是他認為最關鍵的,就是只要資料最終一致化就好,不需要每筆資料都變成即時交易,第四則是盡量將功能都API化,甚至他建議可以先從外圍的Interface開始設計,最後物件必須是無狀態(tài),這樣系統(tǒng)面對較高的流量,就能同時開啟多個Instance。
  除了上述的五大原則之外,蔡學鏞也認為,在設計云端架構的系統(tǒng)時,必須對資料非常了解,有些是需要和業(yè)務人員一同合作來了解,像是資料的重要性、保密性、調用資料的費用和業(yè)務一致性,舉例來說,金錢和地址的資料遺失重要程度就不同,且也要依照不同的資料類型,將資料放在適合的資料庫,并用不同的方式存取。
  有些資料的厘清,工程師則是可以透過技術或是統(tǒng)計的方式來理解,像是調用資料的頻率、資料筆數(shù)、資料老化現(xiàn)象等,他認為,只要是透過技術可以了解的,就能將規(guī)則用成通用的方式放在云端平臺,他舉例,由於火車時刻表屬於不容易變動的資料,就不需要頻繁地調用資料,避免浪費調用的成本。
  最後,資料的互相調用也是重要的議題之一,他表示,調用資料時除了可以用密碼的方式確保安全性之外,其實還可以用Attribute-Based Access Control的方式,利用調用和被調用的資料都有各自專屬屬性的特性,來做精細的比對。

相關閱讀:

專題

榆社县| 延寿县| 伊宁市| 湘阴县| 通许县| 滨海县| 左权县| 天祝| 鄂温| 藁城市| 许昌县| 怀柔区| 上思县| 视频| 凤凰县| 射洪县| 寿宁县| 保定市| 兴化市| 曲水县| 平乐县| 巴彦淖尔市| 高密市| 新安县| 青浦区| 海盐县| 迁西县| 永吉县| 文山县| 定襄县| 庆安县| 苍溪县| 新龙县| 澄城县| 雷州市| 宁陵县| 大宁县| 曲阜市| 宜章县| 棋牌| 杭锦旗|