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

六. 常见架构误区

开高走落不到实处

  • 遗漏关键性约束与非功能需求

  • 为虚无的未来埋单而过度设计

  • 过早做出关键性决策

  • 客户说啥就是啥成为传话筒

  • 埋头干活儿缺乏前瞻性

  • 架构设计还要考虑系统可测性

  • 架构设计不要企图一步到位

常见误区

  • 误区1——架构专门由架构师来做,业务开发人员无需关注:架构的再好,最终还是需要代码来落地,并且组织越大这个落地的难度越大。不单单是系统架构,每个解决方案每个项目也由自己的架构,如分层、设计模式等。如果每一块砖瓦不够坚固,那么整个系统还是会由崩塌的风险。所谓“千里之堤,溃于蚁穴”。

  • 误区2——架构师确定了架构蓝图之后任务就结束了:架构不是“空中楼阁”,最终还是要落地的,但是架构师完全不去深入到第一线怎么知道“地”在哪?怎么才能落的稳稳当当。

  • 误区3——不做出完美的架构设计不开工:世上没有最好架构,只有最合适的架构,不要企图一步到位。我们需要的不是一下子造出一辆汽车,而是从单轮车→自行车→摩托车,最后再到汽车。想象一下2年后才能造出的产品,当初市场还存在吗?

  • 误区4—— 为虚无的未来埋单而过度设计:在创业公司初期,业务场景和需求边界很难把握,产品需要快速迭代和变现,需求频繁更新,这个时候需要的是快速实现。不要过多考虑未来的扩展,说不定功能做完,效果不好就无用了。如果业务模式和应用场景边界都已经比较清晰,是应该适当的考虑未来的扩展性设计。

  • 误区5——一味追随大公司的解决方案:由于大公司巨大成功的光环效应,再加上从大公司挖来的技术高手的影响,网站在讨论架构决策时,最有说服力的一句话就成了“淘宝就是这么搞的”或者“腾讯 就是这么搞的”。大公司的经验和成功模式固然重要,值得学习借鉴,但如果因此而变得盲从,就失去了坚持自我的勇气,在架构演化的道路上迟早会迷路。

  • 误区6——为了技术而技术:技术是为业务而存在的,除此毫无意义。在技术选型和架构设计中,脱离网站业务发展的实际,一味追求时髦的新技术,可能会将技术发展引入崎岖小道,架构之路越走越难。考虑实现成本、时间、人员等各方面都要综合考虑,理想与现实需要折中。

七. 架构知识体系

7.1. 架构演进

  • 初始阶段:LAMP,部署在一台服务器

  • 应用服务器和数据服务器分离

  • 使用缓存改善性能

  • 使用集群改善并发

  • 数据库地读写分离

  • 使用反向代理和cdn加速

  • 使用分布式文件和分布式数据库

  • 业务拆分

  • 分布式服务

7.2. 架构模式

分层:横向分层:应用层,服务层,数据层

分割:纵向分割:拆分功能和服务

分布式

  • 分布式应用和服务

  • 分布式静态资源

  • 分布式数据和存储

  • 分布式计算

集群:提高并发和可用性

缓存:优化系统性能

  • cdn

  • 方向代理访问资源

  • 本地缓存

  • 分布式缓存

异步:降低系统的耦合性

  • 提供系统的可用性

  • 加快响应速度

冗余:冷备和热备,保证系统的可用性

自动化:发布,测试,部署,监控,报警,失效转移,故障恢复

安全:

7.3. 架构核心要素

高性能:网站的灵魂

  • 性能测试

  • 前端优化

  • 应用优化

  • 数据库优化

可用性:保证服务器不宕机,一般通过冗余部署备份服务器来完成

  • 负载均衡

  • 数据备份

  • 自动发布

  • 灰度发布

  • 监控报警

伸缩性:建集群,是否快速应对大规模增长的流量,容易添加新的机器

集群

  • 负载均衡

  • 缓存负载均衡

可扩展性:主要关注功能需求,应对业务的扩展,快速响应业务的变化。是否做法开闭原则,系统耦合依赖

  • 分布式消息

  • 服务化

安全性:网站的各种攻击,各种漏洞是否堵住,架构是否可以做到限流作用,防止ddos攻击。

  • xss攻击

  • sql注入

  • csr攻击

  • web防火墙漏洞

  • 安全漏洞

  • ssl

八. 架构书籍推荐

1. 《大型网站技术架构:核心原理与案例分析》

这是比较早,比较系统介绍大型网站技术架构的书,通俗易懂又充满智慧,即便你之前完全没接触过网站开发,通读前几章,也能快速获取到常见的网站技术架构及其应用场景。非常赞。

2. 《亿级流量网站架构核心技术》

相比《大型网站技术架构》的高屋建瓴,开涛的这本《亿级流量网站架构核心技术》则落实到细节,网站架构中常见的各种技术,比如缓存、队列、线程池、代理……,统统都讲到了,而且配有核心代码。甚至连 Nginx 的配置都有!

如果你想在实现大流量网站时找参考技术和代码,这本书最合适啦。

3. 《架构即未来》

这是一本“神书”啦,超越具体技术层面,着重剖析架构问题的根源,帮助我们弄清楚应该以何种方式管理、领导、组织和配置团队。

4. 《分布式服务架构:原理、设计与实战》

这本书全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。

5. 《聊聊架构》

这算是架构方面的一本神书了,从架构的原初谈起,从业务的拆分谈起,谈到架构的目的,架构师的角色,架构师如何将架构落地……强烈推荐。

不过,对于没有架构实践经验的小伙伴来讲,可能会觉得这本书比较虚,概念多,实战少。但如果你有过一两个项目的架构经验,就会深深认同书中追本溯源探讨的架构理念。

6. 《软件架构师的12项修炼》

大多数时候所谓的“技术之玻璃天花板”其实只是缺乏软技能而已。这些技能可以学到,缺乏的知识可以通过决定改变的努力来弥补。

出处:https://blog.csdn.net/hguisu/article/details/78258430

你可能感兴趣的:(什么才是真正的架构设计?(三))