程序员瓶颈突破架构师➕架构设计的理论与实践

每个程序员都有一个成为架构师的梦想,奈何手里无枪无法点燃心中奇梦。本系列文章分享如何让你手里有枪,只要努力,技术的梦想一定能实现,这应该是众多梦想中离地表最近的一个。

“平台”技术

当业务规模比较小、系统复杂度不高时,运维、测试、数据分析、管理等支撑功能主要由各系统或者团队独立完成。随着业务规模越来越大,系统复杂度越来越高,子系统数量越来越多,如果继续采取各自为政的方式来实现这些支撑功能,会发现重复工作非常多。因此我们自然而然就会想到将这些支撑功能做成平台,避免重复造轮子,减少不规范带来的沟通和协作成本。

运维平台

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

软件架构场景实战 68架构模板平台(1)

配置:主要负责资源的管理。例如,机器管理、IP地址管理、虚拟机管理等。部署:主要负责将系统发布到线上。例如,包管理、灰度发布管理、回滚等。监控:主要负责收集系统上线运行后的相关数据并进行监控,以便及时发现问题。应急:主要负责系统出故障后的处理。例如,停止程序、下线故障机器、切换IP等。

运维平台的核心设计要素是“四化”:标准化、平台化、自动化、可视化。

测试平台

测试平台核心的职责当然就是测试了,包括单元测试、集成测试、接口测试、性能测试等,都可以在测试平台来完成。测试平台的核心目的是提升测试效率,从而提升产品质量,其设计关键就是自动化。传统的测试方式是测试人员手工执行测试用例,测试效率低,重复的工作多。通过测试平台提供的自动化能力,测试用例能够重复执行,无须人工参与,大大提升了测试效率。

为了达到“自动化”的目标,测试平台的基本架构如下图所示。

软件架构场景实战 68架构模板平台(2)

数据平台

数据平台的核心职责主要包括三部分:数据管理、数据分析和数据应用。每一部分又包含更多的细分领域,详细的数据平台架构如下图所示。

软件架构场景实战 68架构模板平台(3)

管理平台

管理平台的核心职责就是权限管理,无论是业务系统(例如,淘宝网)、中间件系统(例如,消息队列Kafka),还是平台系统(例如,运维平台),都需要进行管理。如果每个系统都自己来实现权限管理,效率太低,重复工作很多,因此需要统一的管理平台来管理所有的系统的权限。权限管理主要分为两部分:身份认证、权限控制,其基本架构如下图所示。

软件架构场景实战 68架构模板平台(4)

,