持续交付及服务化,是当前比较多互联网软件开发采用的实践,其很大程度地提高了团队对于软件交付的响应能力。新的技术实践的采用,也同样影响着软件开发的协作模式,即从传统的单一技术职能团队间抛接的工作方式,逐渐往多技术职能融合的微服务DevOps团队演进,整体负责应用的构建、部署和监控,打破原来技术职能竖井,加快发布及运维问题的响应。
但是,如何快速地适应这些变化,享受技术红利及好的研发方式,依旧伴随着诸多挑战。
当前互联网产品持续交付中遇到的挑战
首先,随着服务的数量变多,服务之间的耦合性及复杂度也在增加,交互变多,可能的故障点也有可能变多。应用部署环境日趋复杂,测试、运维负担加重,出错概率升高。
其次,每个服务应用的开发,可能是由不同的开发人员单独完成,如果在集成发布过程中,质量标准不一致,版本不一致,可能导致整体的系统故障;
另外,针对中小型企业而言,基础设施保障的建设往往落后于企业的快速发展,缺乏统一的研发平台,自动化程度低,没有有效的质量保障体系;
业界有很多很好的实践,但是复用到自己团队却很难,无从下手。
为了解决这些问题,阿里云提供基于容器,通过云效和K8S结合的持续交付解决方案,帮助用户快速上手,进行应用的持续交付。
3 基于云效&K8S的持续交付实践
3.1 阿里云 云效+K8S产品优势
3.1.1 云效持续交付能力
首先,云效持续交付流水线是基于阿里巴巴众多团队的实践经验,为互联网产品开发量身定制,同时支持集成主流的研发工具,覆盖