欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于软件自动化发版的技术方案思考

程序员文章站 2022-11-18 12:16:16
本文为技术讨论,思路记录,为以后如有需要用到此业务场景提供参考。 业务背景: 一个中小型企业,拥有多个软件产品,服务的客户的需求也是五花八门,有时候用一个版本库会极难处理和均衡各方需求,出于管理方便,可能就每个客户有对应的一套源码进行管理,因此需要有一套自动化管理软件的发布服务程序。否则版本管理的工 ......

本文为技术讨论,思路记录,为以后如有需要用到此业务场景提供参考。

业务背景:

  一个中小型企业,拥有多个软件产品,服务的客户的需求也是五花八门,有时候用一个版本库会极难处理和均衡各方需求,出于管理方便,可能就每个客户有对应的一套源码进行管理,因此需要有一套自动化管理软件的发布服务程序。否则版本管理的工作量将是巨大的,并且是容易出错的。

技术实现:

       1、事务管理系统(需求和bug的管理信息系统)

  2、svn(源码管理系统)

  3、webservice(发布程序的接口服务)

  4、oracle(数据存储:存储每次发版任务信息和结果,以及各个源码程序配置等信息)

  5、后台服务程序(发布主服务程序)

  6、ftp(ftp服务器,后台发布成功的程序,通过ftp上传到ftp服务器,提供个测试人员和现场实施人员下载)

  7、短信系统(发布结果通过短信提醒提交发布请求的人)

业务逻辑:

  1、作为一家以软件项目为主体的软件公司,一般都会拥有一套事务管理系统(采购第三方或者自己开发),事务管理系统能够记录各个业务系统的需求,bug,以及发布请求,能对这些事务进行跟踪。

  2、事务管理系统中的发布版本事务,需要和webservice进行交互,能够提交相应的发布请求,当然事务系统和发布系统之间处理发布请求,还要对项目的管理,项目各个模块等信息进行数据互通处理。

  3、svn作为免费开源的源码管理器,相对也稳定,用作公司的源码服务器还是比较合适的。

  4、oracle数据库存储各种信息(各个软件项目信息,服务的客户信息,软件产品模块,各个软件项目对应的源码库信息,以及发布程序最新信息等,各种事务信息等等)

  5、后台服务程序(作为软件发布服务的核心,需要能够实现可配置多台的发布服务器,并且实现负载均衡,有详细的错误日志信息,支持发布多种程序语言,例如:c#,asp.net,pb,java)

  6、后台服务程序发布结果能够通过邮件的方式发送给事务提交者,并且把输出日志和错误信息一并发送。这里不考虑把发布程序也通过邮件发送给发布者,因为一般邮件附件大小都会有限制,会给系统造成局限性。

  7、发布后的程序统一上传到ftp服务器上,不同的项目存储的路径不同,提供给客户使用下载的ftp用户和密码也不相同,这样可以便于控制管理。

  8、短信系统,发布成功或者失败,将会通过短信通知提交发布请求的用户。