近日,GitLab 发布了《2019 Global Developer Report: DevSecOps》,该报告调查了 4071 名 IT 相关领域的工作人员,他们来自不同的国家地区、不同的工作岗位,通过他们的经验分享,向我们展示了软件开发人员如何才能快速创新。
从调查得到的数据来看,目前 DevOps 仍然是一项极具挑战性且耗时的实践工作,甚至在一些规模较小、以技术为导向的公司也是如此。早些年,我们更关注在文化、工作流程以及工具方面,现在我们还要把操作和安全方面也包含进来。
这次调查报告得到的主要结论有 5 个:
DevOps = 更好的可视化:如果 DevOps 模型长期存在时,开发人员、安全人员以及团队其它人员更有可能了解到同事目前的工作内容;
持续部署已在企业落地:调查中,45% 的组织表示他们在某个环节应用了持续部署;
安全性成为现在进行时:50% 的受访者认为安全漏洞主要是在代码合并和测试环境中由安全团队发现的;
远程工作的效率:远程团队记录其工作的可能性比办公室内的团队高 1.6 倍;
测试环节很困难:49% 的受访者表示在整个软件开发生命周期中,测试阶段遇到的延迟最多。
17% 的受访者表示 DevOps 实践的效果很差
在调查中,我们发现大多数开发人员都对未来做好了准备,他们对现在和未来的工作十分乐观。59% 的受访者认为组织开发流程是为开发者个人的成功设计的,63% 的受访者认为在同样的组织架构中可以做一些创新;53% 的受访者表示他们现在拥有了合适的工具。
开发者都用什么样的开发方式来完成工作呢?据报告结果显示,54% 的受访者使用 Scrum,37% 使用 Kanban,36% 使用 DevOps,17% 使用 Waterfall。
当然,开发者在应用这些开发方式时并不是一成不变的,不断变化的需求、劳动密集型的测试、持续关注的安全性等等,都敦促着开发者不断在工作中做出调整和改进。
虽然很多企业都已经在实践 DevOps 了,但是实际效果如何呢?根据调查结果显示,17% 的受访者表示实践效果很差。
在调查中,我们收到比较多的反馈有以下几种:
一切都还是手工完成的,没有实现自动化。开发人员和运维部门之间的斗争多于合作;
团队中的大多数人精通 DevOps,并且期待工作能够变成自动化;
践行 DevOps 其实是个非常手工的过程,需要找出正确有效的方法来自动化流程,并且实践 DevOps 要获得足够的信任。
我们在某些项目中很好的实践了 DevOps,但是在另一些项目中没有实践,这主要取决项目的 PM,如果他们允许的话,我们是非常愿意在项目中实践 DevOps。
DevOps 相关工具的使用情况
根据调查结果显示,95% 的开发者选择使用 Git 来进行源代码管理,而排在第二位的 Subversion 只占 2%。
在 CI 工具的调查中,61% 的受访者表示 GitLab 是他们最常用的工具,排在第二位和第三位的为 Jenkins 和 Travis CI,占比分别为 36% 和 12%。不过,需要注意的是,在这次的调查对象中有 60% 是 GitLab 用户。
在调查中,超过半数的受访者表示开发过程中最大的延迟来自于测试,这也反映出了整个行业都在努力平衡手工测试和自动化测试的需求。42% 的开发者表示 DevOps 计划会减慢开发速度,37% 认为代码开发是他们遇到的障碍,27% 的受访者表示要么进行代码评审,要么部署到生产环境中。
在针对易访问性测试解决方案的调查中,只有 12% 的开发者对其组织目前的解决方案感到满意。另外,有 73% 的开发者表示他们根本没有使用任何易访问性测试工具。
在针对手机反馈数据的调查中,61% 的受访者表示会收集应用程序的反馈数据,其中最常用的是谷歌分析,27% 的受访者表示不会使用任何工具来收集反馈数据。在反馈数据的收集中,最常见的数据收集维度是客户满意度 (68%)、用户偏好 (55%) 和可用性分析 (50%)。
当系统发生故障时,44% 的开发人员表示无法做到随叫随到,31% 的开发者可以从企业的监控系统中获得自动报警。
DevOps 的成功实践很大程度上要取决于软件开发人员(Dev)和 IT 运维技术人员(Ops)之间的信任程度。但是调查结果显示,大部分开发人员仍然对 IT 运维技术人员抱有怀疑的态度,只有 36% 的开发人员对 IT 运维技术人员抱有信心。另外,只有 43% 的开发者表示 IT 运维开发人员得到了提前通知来支持他们的开发工作。
大部分的开发者都认同持续交付是 DevOps 的基石。
在调查中,43% 的受访者表示他们企业中的持续交付是按需交付或每天多个交付;41% 的受访者表示他们企业的持续交付的周期为每天一次到每月一次之间;13% 的受访者表示,他们企业的持续交付周期在每月一次到每六个月一次之间。
持续交付的好处是显而易见的:开发人员表示,相比于每个月到每六个月交付一次的组织,CD 组织中的产品或项目经理更有可能很好地了解开发团队的能力。47% 的受访者表示管理者在 CD 环境中能够更好地规划和确定功能的范围。
在成熟的 DevOps 环境中,开发团队的创新能力可能会是其它团队的 1.4 倍,并且与其它团队的联系也更加紧密,更是有 88% 的受访者表示,因为 DevOps,他们更有可能看到其他人的工作内容。
DevOps 实践的成熟与否很大程度上会影响开发人员的士气。在调查中,88% 的开发人员曾在 DevOps 成熟度非常差的组织中工作过,他们并不认为这样的开发过程是为了成功而设计的。
23% 的受访者表示代码的安全性很差
安全性也是当前软件开发过程中常讨论的话题,70% 左右的受访者表示他们希望写安全代码,但是从调查中我们也发现在大多数组织或企业中还难以实现安全代码的相关机制。
在调查中,我们常听到受访者表达以下几种观点:1)我们企业中的代码很乱,没有标准化,大部分工作也从来不做安全扫描;2)我们公司现在才开始关心安全代码的问题;3)在过去的一年中,我们为安全代码做了各种努力,以后也会做更多努力;4)我们没有明确的安全准则,不同的服务有不同的安全级别。
在调查中,有 23% 的受访者表示他们的代码安全性很差。不过,也有 45% 的受访者表示他们在开发过程中能够收到并处理安全反馈。
原报告地址:
https://about.gitlab.com/2019/07/15/global-developer-report/
评论