好文:蔡學鏞 純雲架構的5大架構秘訣公開

蔡學鏞 對於雲端架構 的開發、設計整理出來得文章,有空可以參考看看。

現在有哪些雲端服務的定義:

  • PaaS (platform as a service):雲端運算服務,提供運算平台與解決方案服務
  • IaaS (Infrastructure as a Service):是消費者使用處理、儲存、網路以及各種基礎運算資源,部署與執行作業系統或應用程式等各種軟體
  • SaaS (Software as a Service):即需即用軟體(一經要求,即可使用),軟體僅需透過網際網路,而不須
    透過安裝即可使用。用戶通常使用精簡客戶端經由一個網頁瀏覽器來訪問軟體即服務
  • FaaS (Function as a Service):FaaS 就是將程式拆成各自獨立的功能,各個程式之間互相沒有關聯
  • BaaS (Backend as a Service):用 Open API 來用開發服務,像是用戶的身份認證,這兩種雲端設計方式可以讓程式更加自動化,減少程式運作維護的工作量,也讓程式設計師可以不用考量系統流量瞬間爆量的問題

好文:蔡學鏞 純雲架構的5大架構秘訣公開

下述整理自此篇文章:蔡學鏞:別再用物件導向,純雲架構最好改用函數式設計,5大架構秘訣公開

蔡學鏞將雲端程式設計分成 Who 、 What 和 How ,設計程式時分為下述兩種工程師:

  1. 程式設計師:負責設計與業務領域相關的功能,設計的方式則可用領域導向的方式(Domain Driven Design, DDD)的方式
  2. 架構師:以系統運作為導向的設計,包括系統的負載量、安全性等,他建議可用的設計方式是Patterns of Enterprise Application Architecture(PEAA)

物件導向為何不適合雲端開發

  • 過去傳統的程式設計方法已經不管用,主要是因為傳統的物件導向程式設計的結構有些問題,他指出,以前的程式設計都將業務和資料緊緊地綁在一起,但是綁在一起的作法並不適合雲端平臺,物件導向的觀念在敏捷開發也完全不適合。
  • 法規和業務調整的變動也會影響著前端的服務模組、API,以及後端調用資料庫和串連外部系統的設計,還有 FaaS 的設計強調沒有狀態 (State),但是物件導向的物件都是有狀態,他建議,企業若要使用雲端,則要使用函數式的程式設計

蔡學鏞歸納出五個函數式程式設計的原則

  1. 設計業務功能的模組要分開,且分的越細越好
  2. 採用非同步的調用方式,讓程式無需等待被調用函數的返回值,就讓程式繼續執行
  3. 資料最終一致化就好,不需要每筆資料都變成即時交易
  4. 盡量將功能都 API 化,甚至他建議可以先從外圍的 Interface 開始設計
  5. 物件必須是無狀態,這樣系統面對較高的流量,就能同時開啟多個 Instance

資料層面

  • 資料的釐清:工程師則是可以透過技術或是統計的方式來理解,像是調用資料的頻率、資料筆數、資料老化現象等,他認為,只要是透過技術可以了解的,就能將規則用成通用的方式放在雲端平臺
    • ex: 火車時刻表屬於不容易變動的資料,就不需要頻繁地調用資料,避免浪費調用的成本
  • 資料的互相調用:調用資料時除了可以用密碼的方式確保安全性之外,其實還可以用Attribute-Based Access Control的方式,利用調用和被調用的資料都有各自專屬屬性的特性,來做精細的比對

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料