1. 程式人生 > >架構的發展趨勢及現狀

架構的發展趨勢及現狀

最近幾年,軟體系統越來越大,越來越複雜,相應地,架構扮演的角色也越來越重要。無架構,不繫統,因此這裡和大家交流下架構的發展趨勢,簡單概括有幾點:

架構

技術平臺輕量化

十年前,企業級應用大行其道,商業應用伺服器如Weblogic/Websphere扮演中心的角色,它們內含各種系統級元件,如Web容器、EJB容器、資料來源和事務管理等,一站式搞定企業級軟體所需的效能、可擴充套件性、高可用性,整個系統平臺是很重的all in one模式,走的是scale out路線。

開源社群的興起為這些系統級元件提供免費實現,並且更輕量級和更易用,比如Tomcat、MySQL、Struts、Spring、IBatis等。同時應用更加網際網路化,網際網路業務的快速變化,要求開發模式和系統實現更輕量更敏捷,所以技術平臺一般是DIY,如目前比較流行的LAMP和SSH組合,系統裝置也從高大上的IOE變成平民化的XML(X86+MySQL+Linux),走的是scale up路線。

軟體設計服務化

傳統的企業級應用是單體應用(monolith application),一般是分層結構,如表現層/應用層/領域層/資料層,這主要是水平切分的思想。

隨著網際網路應用的發展,特別是大型電商系統,業務非常複雜。這種巨型系統,首先要關注的是如何根據業務劃分子系統,然後是子系統間如何協作,最後才是子系統內部實現。SOA設計可以很有效支援前面兩步,在SOA體系裡,每個子系統是獨立的服務,服務介面體現子系統協作關係,至於子系統內部,直接作為黑盒子處理。

所以對於複雜系統,首先採用SOA垂直切分子系統,然後使用分層設計水平切分單個子系統,服務化把傳統的分層設計往前更推進一步。

當然SOA本身也在不斷髮展,最初跨企業的Web service互動可認為1.0時代;支援企業內部系統間輕量級訪問,支援服務治理,可認為2.0時代;服務進一步分層和微服務化可認為3.0時代。

應用系統生態化

軟體是人類活動的虛擬化模擬,目前這種模擬越來越深入,逐漸覆蓋吃穿住行、旅遊、購物、娛樂、社交等方方面面,應用也從開始單一的資訊管理系統,到覆蓋整個企業業務,成為企業級應用,到了網際網路時代,應用更超出企業邊界,通過開放平臺互相連結成一個巨大的生態系統。

業務的上下游關聯要求應用系統內外一體化,內部系統呼叫、APP介面、開放平臺介面儘可能地一致和複用。例如對於APP介面和Open API,只需要提供簡單處理,如安全和資料格式轉換,核心實現轉發到內部SOA服務作統一處理。

業務在變,技術在變,架構也在變。變的是形式,不變的是本質,架構為了系統更有序,系統為了業務更快速,業務為了生活更美好。

文章素材來自微信公眾號:聊聊架構