架构师训练营第四周课后作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
服务演进
服务演进是渐进式的,而非一蹴而就的; 在实施过程中需优先满足业务需求,在业务发展中升级技术架构;
典型服务演进阶段
初始阶段:所有的服务部署在同一台服务器中
第一阶段:应用和数据分离
第二阶段:使用缓存改善性能
第三阶段:应用服务器集群
第四阶段:读写分离
第五阶段:CDN和反向代理
第六阶段:分布式文件系统和数据库
第七阶段:NoSQL和搜索引擎
第八阶段:业务拆分
第九阶段:微服务及中台化
第十阶段:大数据和智能化
架构模式
抽象同类问题共性,提炼出的解决方案核心,复用至更多同类问题;
分层
前端架构APP及Web开发技术浏览器及HTTP优化技术CDN动静分离图片服务反向代理智能DNS
接入层架构/应用层架构网关架构负载均衡动态页面静态化业务拆分
服务层架构微服务架构分布式消息队列分布式缓存分布式一致性分布式锁
后台架构大数据平台搜索引擎推荐引擎数据仓库
存储层架构分布式文件分布式关系数据库分布式NoSQL数据库
运维与安全架构数据采集与展示数据监控与报警攻击与防护数据加密与解密
分割
相对于分层的横向切分,分割是对软件的纵向切分
按照领域分割为不同的单元,使之高内聚低耦合
降低开发维护成本
分布式部署提升并发处理能力和功能扩展能力
分布式
分布式使用更多的计算机解决计算能力瓶颈
分布式应用与服务
分布式静态资源
分布式数据和存储
分布式计算
集群
往往和分布式一同出现
将相同职责的服务构建为一个集群,通过统一的负载均衡出口向外暴露能力
缓存
减少重复计算,加快处理速度
CDN
反向代理
本地缓存
远程缓存
异步
提高系统可用性
加快服务响应速度
消除并发访问高峰
冗余
服务能力冗余
数据存储冗余
保证可用性
自动化
devops
降低人工操作的故障率
提升任务执行效率
安全
提升攻击和窃密的门槛
核心数据和敏感信息的风险控制
互联网架构核心要素
高性能
性能问题无处不在,从用户侧到数据存储层中间的每个环节,都可以进行性能优化
性能指标服务能力TPSRT同时在线用户数系统资源CPUMEMLOADIO
高可用
高可用的主要手段是冗余
服务器宕机时有冗余服务器,可完成顺畅的故障转移
网络不可用时,有冗余链路
应用实例无法访问,有冗余服务能力
可伸缩
是否容易向集群中增减服务器资源
不存在无法扩展的性能瓶颈点
不需要进行复杂的配置
可扩展
关注功能性需求
可以容易快速扩展出新的功能,很少改动或者不改动之前的逻辑
主要手段是数据驱动架构和微服务等分布式服务
安全
保护系统不受恶意访问和攻击
保护重用数据不被窃取
针对现存和钱在的各种攻击和窃密手段,应该有可靠地应对策略
版权声明: 本文为 InfoQ 作者【万有引力】的原创文章。
原文链接:【http://xie.infoq.cn/article/5ed0e209892d83586f2c142a4】。未经作者许可,禁止转载。
评论