前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续交付的软件系统架构

持续交付的软件系统架构

作者头像
新亮
发布2022-12-05 21:20:33
6490
发布2022-12-05 21:20:33
举报
文章被收录于专栏:新亮笔记

为了提升交付速度,获得持续交付能力,系统架构在设计时应该考虑如下因素:

  1. 为测试而设计:如果我们每次写好代码以后,需要花费很大的精力,做很多的准备工作才能对它进行测试的话,那么从写好代码到完成质量验证就需要很长周期,当然无法快速发布。
  2. 为部署而设计:如果我们开发完新功能,当部署发布时,需要花费很长时间准备,甚至需要停机才能部署,当然就无法快速发布。
  3. 为监控而设计:如果我们的功能上线以后,无法对其进行监控,出了问题只能通过用户反馈才发现。那么,持续交付的收益就会大幅降低了。
  4. 为扩展而设计:这里的扩展性指两个方面,一是支持团队成员规模的扩展,二是支持系统自身的扩展。
  5. 为失效而设计:俗语说:“常在河边走,哪能不湿鞋。”快速地部署发布总会遇到问题。因此,在开发软件功能之前,就应该考虑的一个问题是:一旦部署或发布失败,如何优雅且快速地处理。

系统拆分原则

大系统应该由很多组件(component)或服务(service)组成。组件通常在编译构建或者部署时被集成在一起,而服务可以由多个组件构成,能够独立启动运行,并在运行时与整个系统进行通信,成为整个系统的一个组成部分。

在系统拆分的同时,我们必须同时建立相应的构建测试部署监测机制,而且,这些机制的建立与系统拆分工作同等重要。只有这样,才能既获得系统拆分的益处,又能管理因拆分带来的复杂性。

常见架构模式

  • 微核架构,适合于客户端软件;
  • 微服务架构,适合于大型后台服务端系统;
  • 巨石应用,适合于创业公司或中小型项目;

架构改造实施模式

  • 拆迁者模式,就是一次性重写所有代码;
  • 绞杀者模式,就是不改变或少改变原有遗留系统,通过增加新的服务来不断替代遗留系统的功能;
  • 修缮者模式,就是通过迭代,对原有遗留系统进行逐步改造,同时开发新的功能;

为了能够持续交付,并且降低架构改造的风险,建议团队根据实际情况,采用 绞杀者模式修缮者模式 进行遗留系统的架构改造。

数据库的拆分方法

  • 详细了解数据库结构,包括外键约束、共享的可变数据以及事务性边界等;
  • 先拆分数据库;
  • 数据库双写无误后,找到程序架构中的缝隙;
  • 将拆分出来的程序模块和数据库组合在一起,形成微服务;

了解更多:https://t.zsxq.com/06R7mqJAq

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新亮笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统拆分原则
  • 常见架构模式
  • 架构改造实施模式
  • 数据库的拆分方法
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档