在給公司或者客戶做前期的系統設計時,需要考慮的因素有比較多,但是對所有的因素進行歸納總結抽象化后,基本得出以下的幾點主要原則:
- 系統的安全性
- 日志審計:系統的操作,數據的變更都應有日志進行跟蹤
- 網絡安全:基于HTTPS的加密訪問
- 身份安全:接口都應通過網關獲取認證信息,用戶的角色,訪問的功能也要做出相關控制
- 應用安全:SQL 注入攻擊預防,XSS 跨域腳本工具防御,多維度數據過濾,數據防篡改,數據脫敏,API網關認證,接口白名單
- 數據安全:啟用多租戶數據隔離,數據災備,禁止直連數據庫
- 系統的性能
- 海量并發讀取
- 海量并發寫入:使用緩存對數據進行冷熱分離,通過MQ實現事件驅動模式支撐海量并發操
- 杜絕數據庫鎖
- 通過壓測尋找性能瓶頸
- 系統的高可用性
- 部署方式高可用:微服務的部署方式
- 故障隔離性:當服務出現不可用時需要對服務進行隔離,保障核心的服務不受影響,使得核心應用可以正常運行
- 服務層高可用:服務冗余部署,服務限流,服務無狀態化
- 存儲層高可用:數據庫集群部署,主從結構(MySQL Replication)
- 系統的l靈活性(可拓展性)
- 功能服務重用性
- 功能可配置性
- Web/服務層可伸縮
- 存儲層可伸縮
- 系統的可運營性
- 指標監控
- 鏈路跟蹤
- 異常報告及預警
- 日志管理
- 系統合規性
- 歐盟GDRP條例
- 美國隱私保護條例
- 美國安全保護條例
- 系統的全球化性
- 多語言機制:適應海外需求
- 多租戶管理:對用戶,子公司實現不同數據隔離和差異化處理
- 地方合規性
國內來說,合規性要求沒有那么高,但是隨著社會法律意識的普及、發展和提升,越來越多的員工和企業也在關注自身隱私數據的安全了,所以合規性也將會是一個重要的考量;目前對于全球化更多的理解,很多人還僅僅停留在多語言的層面。
對于合規性來說,從我們技術的角度去設計的時候,能做到的事情有哪些呢?
系統合規性
對于合規性要求,如果結合全球化的實施要求,不可避免的要對系統進行多區域部署:
全球部署策略
技術部署方案
合規性其實與系統安全性也是有緊密關聯的
系統安全性
再回到系統全球化的特性里面,多語言僅是很小很小的一個點,其他的還應該包含有多租戶,多時區等特點:
全球化特性
對于系統的高性能和高可用,這個其實相對來說還算是比較簡單的部分:
高性能高可用
對于業務人員,或者終端的用戶來說,關注的主要點其實還是在可運營的特點上,對于后臺開發人員來說,這也是降低運維工作人員壓力的一個重要考察點
可運營特性
可拓展的特性,主要體現在服務、功能重用性,這個特性在SOA的架構中,是最為重要的要素,特別是在業務單元的重用以及功能的重用性上,但是隨之而來的服務和功能之間的高度耦合和高度依賴的痛楚也慢慢體現出來。隨著當下的微服務架構的普及,該特性主要體現在底層的技術組件部分,或者體現在中間組件部分,而不是過度依賴的業務服務的重用。
服務的可拓展性
系統的架構設計是一項非常細致縝密的工作,前期需要對系統涉及的業務,關聯到的業務以及企業的IT架構有足夠的了解和認知,然后結合法律法規,利用當下企業提供的有限的條件進行設計。
以上僅為個人觀點,僅供參考。如有侵權,請聯系。