Category: CI & Automation Test
1. 背景与挑战——又稳又快 互联网行业的最主要属性是快,一方面是量的快速增长;另一方面是业务场景的多样化变更。每年的交易量都增长得非常快速,同时业务也快速丰富起来,之前可能只有线上电商担保交易,现在新增了许多金融属性的业务如花呗、借呗、相互保,甚至还有跨境支付。同时,蚂蚁金服具备的金融属性,要确保监管合规和资金安全,需要把稳放到首位,我们需要在这个稳的基础上去快速创新以满足市场的快速变化。也就是说要“又稳又快”。 把又稳又快深入到软件开发,「稳」要求软件质量可靠;「快」体现在研发队伍快速扩张和代码量的快速增长。在这种背景下,对于 CI(持续集成)的研究和改造成为保障软件质量可靠又快速交付的有效手段。
首先简单解释一下何为 Kubernetes 来帮助大家理解。Kubernetes 是一个生产可用的容器编排系统。Kubernetes 一方面在集群中把所有 Node 资源做一个资源池,然后它调度的单元是 Pod,当然 Pod 里面可以有多个容器。 就像一个人左手抓着 ECS 资源或计算资源,右手抓容器,然后把它们两个匹配起来,这样它就可以作为一个容器的编排系统。
代码重构!你敢吗? 我们想了双流程验证的方案。 我们将重构部分的代码全部封装起来,然后提供一个新的接口,一个请求进来后,我们分别执行旧的业务逻辑,也将请求发给新接口。在流程的最后,我们将新旧流程构造出的字段,进行逐个字段的对比。新流程只验证正确性,不做实际的输出。
根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术人员,大家可能听说过“滚动发布”和“蓝绿发布”等术语,但是很多人并不清楚这些术语背后的原理。本文试图总结当前主流的发布策略,每个的优劣,适用性,让开发人员特别是架构师对现代发布技术有一个更为清晰全面的认识,让大家能够根据自己的企业上下文,对发布策略做出正确的选型和实践。