• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 專(zhuān)家觀(guān)點(diǎn) >

    蔡學(xué)鏞:純云架構最好改用函數式設計、5大架構秘訣公開(kāi)

    2017-06-26 14:37:39   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


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

    相關(guān)閱讀:

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 班玛县| 佛山市| 邓州市| 桑日县| 北碚区| 盐池县| 柳江县| 定西市| 怀仁县| 三门峡市| 合水县| 灵台县| 永安市| 青阳县| 楚雄市| 腾冲县| 凤冈县| 大足县| 舞阳县| 锡林郭勒盟| 从化市| 嘉兴市| 沂南县| 新闻| 新兴县| 北宁市| 华宁县| 如东县| 大英县| 阿克陶县| 宝丰县| 水富县| 乌兰县| 沈阳市| 临沂市| 隆回县| 盈江县| 巍山| 秦皇岛市| 安丘市| 西安市| http://444 http://444 http://444 http://444 http://444 http://444