系统架构设计的原则

在给公司或者客户做前期的系统设计时,需要考虑的因素有比较多,但是对所有的因素进行归纳总结抽象化后,基本得出以下的几点主要原则:

系统架构设计的原则

文章插图
 
  • 系统的安全性
    • 日志审计:系统的操作,数据的变更都应有日志进行跟踪
    • 网络安全:基于HTTPS的加密访问
    • 身份安全:接口都应通过网关获取认证信息,用户的角色,访问的功能也要做出相关控制
    • 应用安全:SQL 注入攻击预防,XSS 跨域脚本工具防御,多维度数据过滤,数据防篡改,数据脱敏,API网关认证,接口白名单
    • 数据安全:启用多租户数据隔离,数据灾备,禁止直连数据库
  • 系统的性能
    • 海量并发读取
    • 海量并发写入:使用缓存对数据进行冷热分离,通过MQ实现事件驱动模式支撑海量并发操
    • 杜绝数据库锁
    • 通过压测寻找性能瓶颈
  • 系统的高可用性
    • 部署方式高可用:微服务的部署方式
    • 故障隔离性:当服务出现不可用时需要对服务进行隔离,保障核心的服务不受影响,使得核心应用可以正常运行
    • 服务层高可用:服务冗余部署,服务限流,服务无状态化
    • 存储层高可用:数据库集群部署,主从结构(MySQL Replication)
  • 系统的l灵活性(可拓展性)
    • 功能服务重用性
    • 功能可配置性
    • Web/服务层可伸缩
    • 存储层可伸缩
  • 系统的可运营性
    • 指标监控
    • 链路跟踪
    • 异常报告及预警
    • 日志管理
  • 系统合规性
    • 欧盟GDRP条例
    • 美国隐私保护条例
    • 美国安全保护条例
  • 系统的全球化性
    • 多语言机制:适应海外需求
    • 多租户管理:对用户,子公司实现不同数据隔离和差异化处理
    • 地方合规性
国内来说,合规性要求没有那么高,但是随着社会法律意识的普及、发展和提升,越来越多的员工和企业也在关注自身隐私数据的安全了,所以合规性也将会是一个重要的考量;目前对于全球化更多的理解,很多人还仅仅停留在多语言的层面 。
对于合规性来说,从我们技术的角度去设计的时候,能做到的事情有哪些呢?
系统架构设计的原则

文章插图
系统合规性
对于合规性要求,如果结合全球化的实施要求,不可避免的要对系统进行多区域部署:
系统架构设计的原则

文章插图
全球部署策略

系统架构设计的原则

文章插图
技术部署方案
合规性其实与系统安全性也是有紧密关联的
系统架构设计的原则

文章插图
系统安全性
再回到系统全球化的特性里面,多语言仅是很小很小的一个点,其他的还应该包含有多租户,多时区等特点:
系统架构设计的原则

文章插图
全球化特性
对于系统的高性能和高可用,这个其实相对来说还算是比较简单的部分:
系统架构设计的原则

文章插图
高性能高可用
对于业务人员,或者终端的用户来说,关注的主要点其实还是在可运营的特点上,对于后台开发人员来说,这也是降低运维工作人员压力的一个重要考察点
系统架构设计的原则

文章插图
可运营特性
可拓展的特性,主要体现在服务、功能重用性,这个特性在SOA的架构中,是最为重要的要素,特别是在业务单元的重用以及功能的重用性上,但是随之而来的服务和功能之间的高度耦合和高度依赖的痛楚也慢慢体现出来 。随着当下的微服务架构的普及,该特性主要体现在底层的技术组件部分,或者体现在中间组件部分,而不是过度依赖的业务服务的重用 。
系统架构设计的原则

文章插图
服务的可拓展性
系统的架构设计是一项非常细致缜密的工作,前期需要对系统涉及的业务,关联到的业务以及企业的IT架构有足够的了解和认知,然后结合法律法规,利用当下企业提供的有限的条件进行设计 。
以上仅为个人观点,仅供参考 。如有侵权,请联系 。


推荐阅读