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

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

业务背景:

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

技术实现:

       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、短信系统,发布成功或者失败,将会通过短信通知提交发布请求的用户。

你可能感兴趣的:(关于软件自动化发版的技术方案思考)