下面的內容只是一些概要的介紹,更多具體的內容,請下載附件查看。
另外特別聲明,該文檔的作者不是我。具體是哪位京東的同時已經不記得了,這里表示下敬意。
概述
SOA七大階段

我用人話翻譯一下啊。
- 基礎架構
這一部分主要解決系統的高可用性和資源利用率的問題
指的一般是運維層面的事情。比如早期是單機的,然后有了HA或者Nginx,然后又有了虛擬化方面的技術比如:vmware和openstack, 更后面又有了docker。還有一部分是存儲技術的發展帶來的一些應用。
基於存儲技術,解決了一些數據同步和備份的問題,比如基於存儲技術可以在不使用主從配置的情況下就能夠做集群Mysql等。
基於虛擬化的技術解決了彈性雲的問題,通過一些監測手段來實時監控虛擬環境,然后動態的修改環境的配置來達到資源最大的利用率。
- 系統架構
這一部分主要關注的是可擴展性和性能問題
主要使用的技術是分布式調度框架,MQ中間件,restful等
- 應用軟件
主要解決可擴展和模塊化的問題
這邊主要靠的是設計能力了,並沒有框架能夠很好的解決問題, 把功能聚合成單獨的模塊和系統,然后單獨的供給其他模塊和系統調用。 通常都是部門為單位了。
這邊通常會給溝通方面帶來比較大的問題,容易產生部門牆,對於管理的要求也更高一些。各種文檔、接口說明等等會比小的團隊要求高很多。
到這里有一個雲平台准們管理API接口就是很必要的了。
- 流程方法
主要是建模方式、最具參考價值的是面向對象、面向服務和領域模型技術。
- 業務角度
最終的對外的接口, 是由很多底層接口拼接而成的。基本偏向於純業務了。
發展階段示例

可以簡單認為最后一張圖就是加入了分布式調用中間件(如motan), 和數據庫中間件(雲存儲,主要是基於代理的)。
架構實施步驟

重點說一下,這個是一個不停的迭代的過程, 就像代碼重構一樣,一遍又一遍的梳理和遷移。
我覺得架構都是慢慢改出來的,並不是一次設計出來的。
願景
好吧,所有公司的分布式架構都是這樣的願景:
總體架構原則
簡單實用的原則, 字字珠璣。
質量要求

這里涉及非功能部分和管理方面的工作量很多。
- 可支持、可測試 可能需要引入擋板系統,並且在管理上提測前需要加上單元測試覆蓋率等指標
- 設計質量 會需要開概要設計評審會,對文檔和代碼注釋覆蓋率都有要求
- 運行時質量 這邊需要引入很多框架,比如安全方面的shiro,單點登錄,auth2.0, 為了可管理需要引入各種管理端,比如基於zk的配置管理。分布式調用框架的管理。系統存活監控等等。
京東架構發展

這里主要可以看出其實架構的提升主要是因為各種新技術的使用
京東的SOA架構


