架构实战

一、架构演进

影响一个企业业务的发展主要有 3 个因素:市场、技术、管理,这三者构成支撑业务发展的铁三角,任何一个因素的不足,都可能导致企业的业务停滞不前。

在这个铁三角中,业务处于三角形的中心,毫不夸张地说,市场、技术、管理都是为了支撑企业业务的发展。

技术创新推动业务发展!

业务发展推动技术的发展!

对于框架的选择,有一个总的原则:优选成熟的框架,避免盲目追逐新技术!

二、技术实践

Hadoop 的生态圈

Docker:

腾讯万台规模的 Docker 应用实践(http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice)、

新浪微博红包的大规模 Docker 集群(http://www.infoq.com/cn/articles/large-scale-docker-cluster-practise-experience-share)。

负载均衡:

 有实力的公司可能会尝试实现 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。HTTP-DNS 主要应用在通过 App 提供服务的业务上,因为在 App 端可以实现灵活的服务器访问策略,如果是 Web 业务,实现起来就比较麻烦一些,因为 URL 的解析是由浏览器来完成的,只有 Javascript 的访问可以像 App 那样实现比较灵活的控制。

CDN:

CDN 是为了解决用户网络访问时的“最后一公里”效应,本质上是一种“以空间换时间”的加速策略,即将内容缓存在离用户最近的地方,用户访问的是缓存的内容,而不是站点实时的内容。

存储云和图片云通常的实现都是“CDN + 小文件存储”

三、平台

运维平台

运维平台核心的职责分为四大块:配置、部署、监控、应急,每个职责对应系统生命周期的一个阶段,如下图所示:

配置:主要负责资源的管理。例如,机器管理、IP 地址管理、虚拟机管理等。

部署:主要负责将系统发布到线上。例如,包管理、灰度发布管理、回滚等。

监控:主要负责收集系统上线运行后的相关数据并进行监控,以便及时发现问题。应急:主要负责系统出故障后的处理。例如,停止程序、下线故障机器、切换 IP 等。

 测试平台

 测试平台核心的职责当然就是测试了,包括单元测试、集成测试、接口测试、性能测试等,都可以在测试平台来完成。

四、

软件开发领域有一个流行的原则:DRY,Don’t repeat yourself。翻译过来更通俗易懂:不要重复造轮子。

不要重复发明轮子,但要找到合适的轮子

原文地址:https://www.cnblogs.com/developer-qin/p/14663733.html