云科技时代|微软的软件工程现代化转型



云科技时代|微软的软件工程现代化转型
本文插图

现代软件工程创造了一种文化、工具和实践 , 专注于开发高质量、安全和功能丰富的软件服务 , 以实现微软的数字化转型 。 微软核心服务和工程(CSEO , 前身为微软内部IT , 服务微软内部客户)团队正在实施现代软件工程愿景 , 以创建一种文化、工具和实践 , 致力于开发高质量、安全和功能丰富的服务 , 来实现微软的数字化转型 。 现代软件工程计划正在帮助CSEO痴迷于客户 , 加快新功能的交付 , 并提高工程效率 。 1:到目前为止的旅程
截止2020年1月 , 微软向云计算的迁移使CSEO能够提高开发流程的整体敏捷性 , 并为由约1400个组件所组成的约600项服务 , 提供新的云技术 , 这些新技术只需较少的专业技能就能使用 , 还可快速访问其它基础架构 。 这样就可以按需扩展环境和资源 , 进一步使工程师能够更快地响应不断发展的业务需求 。 但是 , CSEO仍然需要解决几个结构性问题 , 包括基本软件工程基础上团队之间的不一致性 , 比如编码标准、自动化测试、安全扫描、遵从性、发布方法、封闭的构建和发布等等 。 CSEO确实预料到了这一点 , 因为有些团队的项目组合中包含多达40%的遗留代码 , 这些代码由打包在一起的大型组件组成 。 这使得存储、扩展、可用性和操作的管理变得困难 , 因此CSEO已开始通过实施组织范围的服务评审来推动一致性 。
CSEO缺乏集中的通用软件工程系统和相关实践 , 意识到无法继续以联盟的方式发展软件工程系统 , 于是CSEO投资了一个中央“基础”团队 。 这个团队的宗旨是在基于Microsoft Azure DevOps的公共软件工程系统上进行创新 , 同时推动整个组织在设计、编码、工具、测试、构建和部署服务方面的一致性 。 CSEO通过为每个服务领域定义愿景、确定季度优先级以及通过定义的冲刺 (sprint) 节奏执行这些策略 , 为自己的服务带来产品工程思维 。 由此产生了通用软件工程系统和可提高开发人员效率的一致性以及跨团队移动性 。
CSEO需要通过结合行业领先的可访问性、安全性和合规性开发实践来降低代码中的风险 。 实现合规性一直是非常具有挑战性 , 这迫使CSEO从原有的流程和工具中改变 , 并积极应对这些领域的技术债务 。 不过 , 采用新方法的速度很慢 , 并且由于必须清除的技术债务数量而产生了摩擦 。 这妨碍了CSEO针对代码提交设置自动策略 , 从而确保“清洁”前进的努力 。 CSEO需要努力实现以无摩擦的方式 , 交付易于访问、安全且合规的软件和服务 。
CSEO还缺乏一致的遥测和监视水平 , 无法获得有关服务运行状况、功能、客户体验和使用模式的关键洞察 。 如今 , CSEO每月平均要运行11万张支持工单 。 但是 , 还必须进行更深入的分析 , 以找出预防和持续补救的机会 。 还有一个机会可以使当前端到端的流程完全自动化 , 只有由于工具之间的差距而尚存一些手动方面的问题 。 CSEO正在推动Live Site文化 , 以便能够全面监测服务运行状况 , 主动发现问题并快速系统地补救事件 , 同时关注根本原因以确保持续改善服务质量 。 针对服务健康状况建立了CSEO范围内的通用度量 , 例如检测时间、缓解时间 。 CSEO 团队在服务评审会议上讨论这些问题 , 这推动了文化变革 , 提高了可能导致事故(如过期安全证书)的问题的可见性 。 通过执行综合监视和从各种数据源引入数据的能力 , 遥测能力得到了提高 。
CSEO正在实施一种统一的方法来发射遥测数据 , 管理遥测数据以及有关业务流程、应用程序和基础结构的洞察 , 以促进交叉关联 。 使用正确的工具 , 系统应支持每个应用程序和服务的基本监测方案 , 并跨不同应用程序启用指标和交叉关联 。 这将:
-- 产生更多切实可行的见解 。
-- 不需要学习和维护多个完全不同的遥测解决方案 , 只需很少或没有开箱即用的集成 。


推荐阅读