Springboot2 什么才是真正的架构设计?( 五 )

③. 安全指标

  • 安全:组织的运作过程中产生的数据都是具有商业价值的,保证数据的安全也是刻不容缓的一部分 。以免出现XX门之类丑闻 。加密、https等为普遍手段
六. 常见架构误区开高走落不到实处
  • 遗漏关键性约束与非功能需求
  • 为虚无的未来埋单而过度设计
  • 过早做出关键性决策
  • 客户说啥就是啥成为传话筒
  • 埋头干活儿缺乏前瞻性
  • 架构设计还要考虑系统可靠性
  • 架构设计不要企图一步到位
常见误区
  • 误区1——架构专门由架构师来做,业务开发人员无需关注:架构的再好,最终还是需要代码来落地,并且组织越大这个落地的难度越大 。不单单是系统架构,每个解决方案每个项目也由自己的架构,如分层、设计模式等 。如果每一块砖瓦不够坚固,那么整个系统还是会有崩塌的风险 。所谓“千里之堤,溃于蚁穴” 。
  • 误区2——架构师确定了架构蓝图之后任务就结束了:架构不是“空中楼阁”,最终还是要落地的,但是架构师完全不去深入到第一线怎么知道“地”在哪?怎么才能落的稳稳当当 。
  • 误区3——不做出完美的架构设计不开工:世上没有最好架构,只有最合适的架构,不要企图一步到位 。我们需要的不是一下子造出一辆汽车,而是从单轮车→自行车→摩托车,最后再到汽车 。想象一下2年后才能造出的产品,当初市场还存在吗?
  • 误区4—— 为虚无的未来埋单而过度设计:在创业公司初期,业务场景和需求边界很难把握,产品需要快速迭代和变现,需求频繁更新,这个时候需要的是快速实现 。不要过多考虑未来的扩展,说不定功能做完,效果不好就无用了 。如果业务模式和应用场景边界都已经比较清晰,是应该适当的考虑未来的扩展性设计 。
  • 误区5——一味追随大公司的解决方案:由于大公司巨大成功的光环效应,再加上从大公司挖来的技术高手的影响,网站在讨论架构决策时,最有说服力的一句话就成了“淘宝就是这么搞的”或者“腾讯 就是这么搞的” 。大公司的经验和成功模式固然重要,值得学习借鉴,但如果因此而变得盲从,就失去了坚持自我的勇气,在架构演化的道路上迟早会迷路 。
  • 误区6——为了技术而技术:技术是为业务而存在的,除此毫无意义 。在技术选型和架构设计中,脱离网站业务发展的实际,一味追求时髦的新技术,可能会将技术发展引入崎岖小道,架构之路越走越难 。考虑实现成本、时间、人员等各方面都要综合考虑,理想与现实需要折中 。
七. 架构知识体系7.1. 架构演进
  • 初始阶段:LAMP,部署在一台服务器
  • 应用服务器和数据服务器分离
  • 使用缓存改善性能
  • 使用集群改善并发
  • 数据库地读写分离
  • 使用反向代理和cdn加速
  • 使用分布式文件和分布式数据库
  • 业务拆分
  • 分布式服务
7.2. 架构模式
分层:横向分层:应用层,服务层,数据层
分割:纵向分割:拆分功能和服务
分布式
  • 分布式应用和服务
  • 分布式静态资源
  • 分布式数据和存储
  • 分布式计算
集群:提高并发和可用性
缓存:优化系统性能
  • cdn
  • 方向代理访问资源
  • 本地缓存
  • 分布式缓存
异步:降低系统的耦合性
  • 提供系统的可用性
  • 加快响应速度
冗余:冷备和热备,保证系统的可用性
自动化:发布,测试,部署,监控,报警,失效转移,故障恢复
安全:
7.3. 架构核心要素
高性能:网站的灵魂
  • 性能测试
  • 前端优化
  • 应用优化
  • 数据库优化
可用性:保证服务器不宕机,一般通过冗余部署备份服务器来完成