企业的开发团队如何在不牺牲功能和更新完整性的情况下缩短开发生命周期?
DevOps通常被定义为将软件开发与IT运营相结合的软件开发方法。其目标是缩短系统的开发生命周期,同时根据业务目标频繁地提供功能、修复和更新。
将DevOps付诸实践是许多组织正在进行的实验。开发人员经常在持续集成(CI)/持续交付(CD)性能、测试延迟和其他瓶颈方面遇到困难。事实上,一项调查显示,只有34%的项目按时完成,只有42%的项目按预算完成。企业的安全和开发团队须协作以跟上快速的开发生命周期,而不会在每次更新时牺牲安全性。
企业软件即服务(SaaS)应用程序不像传统软件那样分布;它们持续运行服务。所以,持续交付(CD)就是用一组更改来更新服务。在像AWS和Heroku这样的公共云中,这是通过管道阶段(例如,开发、测试、分段和生产)完成的。在像Salesforce这样的平台中,阶段变成了沙盒环境、临时的组织和生产实例。
开发团队如何在不牺牲功能和更新完整性的情况下缩短开发生命周期?在这篇文章中,Copado公司产品副总裁David Brooks分享了实现可预测、可靠的发布管理的关键步骤。
数据点1:高级计划确保很多框都被选中
敏捷规划现在是企业开发的准则。如果团队成员之间需要定期的面对面交互和协作,以及当最终产品需要在整个生命周期中定期更新、监控和持续交付给客户时,最好使用它。
对于持续交付(CD),请确保企业的用户情景正确,并且每个情景都汇总到代表独立功能的平台。这使其团队能够发布可由用户使用并可追溯到企业发布计划的功能。另外,定义在验证阶段使用的接受标准,这样就知道什么时候做了一些事情。
数据点2:管理源代码,尤其是在共享环境中工作时
有一些应用程序创建实践会影响持续交付(CD)。首先,源代码不是企业解决方案的唯一元素。模式、用户界面、访问控制权限,以及图标和图像等静态资源都是创建过程的一部分,应该像源代码一样勤勉地进行管理。它们都应该作为单一事实来源签入版本控制系统(VCS)。
其次,确保开发人员在隔离环境中进行更改。在像Salesforce.com这样的低代码平台中,这将成为一项挑战,但即使在数据库中,多个数据库管理(DBA)也可以在共享环境中工作时互相干扰。
数据点3:自动化质量流程难以实施
Selenium是测试功能的一个颇佳工具,应该成为企业实践的一部分。但是,在进行功能测试之前,应该进行多次验证。像PMD这样的静态代码分析工具对于确保企业的开发团队针对单一样式进行编码至关重要。
定义团队样式并强制使用。单元测试覆盖率也很重要,将它们与至少75%的覆盖率结合起来。最后,在这些自动化测试通过之后,实现同行评审。经验丰富的员工能够发现性能改进的机会,而自动化工具却不一定。
数据点4:应在具有严格质量门的已定义管道中发布更改
持续交付(CD)的打包是关于捕获可以逐步释放到下一阶段或环境中的更改。开发团队应为每个阶段专门设置一个分支,并将增量更改捆绑到促销分支中,以利用Veritas集群服务器(VCS)中的合并冲突检测。
变更应在规定的管道中发布,并具有严格的质量,以确保验证步骤和执行发布阶段的顺序。开发人员不应该能够在整个开发周期中绕过关键阶段,例如从开发阶段转移到生产阶段。
专注于进行较小的更改,从而产生可靠的、可预测的发布。最后,要使促销自动化。这使企业的团队能够在发布到生产环境之前在集成、测试、分段中验证提升脚本,从而降低意外发生的可能性。
数据点5:自动配置,尤其是最终用户访问权限
测试验证过程的正确配置部分。像Salesforce公司这样的平台具有强大的配置文件和权限集,使用户只能访问正确的信息。配置不当可能会暴露个人身份信息(PII)、信用卡号或医疗健康数据。
数据点6:监控不仅仅是服务可用性和性能
大多数SaaS公司都会监控服务可用性和性能。但优秀的公司还会监控数据访问,以检测不正确的配置更改,并监控最终用户功能的使用情况,从而使企业管理人员能够了解其使用情况。