web 全架構系列(一): 總體分層及各層模塊化

介紹

這一系列文章, 旨在描述面對一個從零開始的 B(C)/S 應用的時候, 如何去搭建一個業務無關的平臺, 承載上層應用流量. 這裏要強調這個平臺的幾個特色:服務器

  • 業務無關性: 不管業務的形態如何, 都可以在此架構之上運行, 這裏可能會面臨若干狀況, 如無狀態服務, 長鏈接服務等, 後續會根據場景運行描述, 可是這些場景能夠看做是一個有限集.
  • 可擴展性: 這裏的擴展性特指兩個方面, 一是業務的擴展, 二是流量的增長, 這二者對於任何一個平臺而言, 都是要着重考慮的.

業務根據不一樣的指標, 能夠分爲若干類, 這裏指望經過兩種指標來描述這一系列文章想要覆蓋的場景, 以說明業務無關性:架構

  • 根據狀態: 分爲無狀態服務和有狀態服務
  • 根據實時性: 分爲異步實時應用

這兩個指標能夠任意組合, 可是最經常使用的組合應該是屬於無狀態-異步有狀態-實時應用了, 可是一般也會有無狀態-實時應用存在, 好比對於一個博客系統, 能夠認爲其是一個無狀態-異步應用, 而一個一對一的聊天應用, 則能夠看做是無狀態-實時應用, 而大多數在線遊戲, 則是有狀態-實時應用, 須要注意的是, 業務場景不會嚴格按照上述概念進行區分, 最終大多都會造成一個無狀態有狀態, 異步實時共存的狀態.異步

微服務化是知足擴展性的基石, 這也是文章會首先描述的一個總體性架構, 單機應用會在後期引起若干難以解決的問題, 因此這是一開始就須要考慮到的事情.模塊化

文章會主要描述如下幾個部分:微服務

  1. 應用分支與模塊化
  2. 持續集成
  3. 有狀態的長鏈接應用擴展性設計
  4. Web 端構建與模塊化

微服務的存在, 導致應用分散在若干服務器集羣中, 如何有效管理集羣是一個比較龐大的話題, 可是目前業界已經有了比較一致的具備完備性的技術方案, 如k8s, rancher等, 特別是雲服務商的出現, 掩蓋了硬件管理這個最複雜的環節, 因此這裏不會去討論關於容器編排相關的話題.設計

應用分層與模塊化

相關文章
相關標籤/搜索