Pivotal在KubeCon 2019中国峰会上的创新分享。
云原生,已成为整个IT业界的一个新的技术标准,DevOps、容器Kubernetes、微服务和无服务器架构这些概念更是常常被很多行业的头部客户提及,企业需要采用各种云原生技术来解决成本、运维管理、产品迭代等系列问题,而云原生各领域的技术巨头,也纷纷做着各种努力来激活技术价值、推动应用落地变现。
2019年6月24日-26日,由云原生计算基金会(Cloud Native Computing Foundation,简称 CNCF) 和Linux基金会主办的“KubeCon+CloudNativeCon+Open Source Summit”峰会已经成为全球云计算领域最具影响力的开源技术峰会。 2019年全球三场峰会的第二场在上海隆重举行,三会归一,规模空前, 大会集合了云原生领域所有Top级厂商的技术干货,超过40多个国家的3500多名开发者参与会议,学习借鉴、同业交流,进一步普及和推动了云原生发展。
使用CRD扩展K8s API
在峰会的”定制+扩展 Kubernetes”分会场,Pivotal软件工程师Ed King和Sam Gunaratne共同为与会者带来了一场富有哲理性演讲——使用CRD还是不用CRD,这是个问题。
二位专家由K8s API的特点、构成和发展历程引入,逐步揭示CRD(Custom Resource Definition)与K8s API的关系,并重点讨论与传统方法相比,基于CRD应用开发的优缺点。我们知道,每个团队都拥有各自的开发目标,而每个开发服务都会需要储存、数据库及预防系统出错的retry装置等等,CRD定义的Kubernetes就可以很好地把这些融入,通过创造不同的客体让每个内容都能很好地衔接,开发人员只要负责构建自己的controller来监听资源的变化情况,并作进一步的处理。在Kubernetes中,CRD就是团队之间的交互页面和合作的桥梁。
DevSecOps提高安全性,减少工作量
Pivotal系统管理员Paul Czarkowski认为,DevOps不只涉及部署软件,还涉及减少瓶颈并为业务带来价值。通过利用DevOps技术,企业可以构建强大的安全实践,让开发和运维团队都参与其中。Paul曾利用DevOps实践领导团队实现了安全和审核实践方面的重大转型,让他们不用再执行容易失败的手动重复性任务,实现了完全自动化的独角兽状态。
构建云原生软件,要让安全和合规融入产品生命周期的每一环节,除了定期对不同版本打补丁等常规安全操作外,还要遵从各种国家、产业和行业标准,最简单的就是遵从开源代码使用协议。因此,如果能把这些遵从都内嵌到CI工具中,在测试环节依据标准和法规遵从快速做出反馈,大幅节约开发团队的时间和精力。Paul 还重点强调,Pivotal Cloud Foundry采用高度自动化的现代安全方法,自动实现合规性,BOSH+Concourse也融入了对于安全的考虑,是一个自动化的DevSecOps平台和工具链。
基于K8s实现CI/CD,打造敏捷开发
开发团队规模和应用规模快速扩大,测试环境日益复杂,对基于云端提升效率的CI/CD(持续集成、持续交付)工具的需求日益迫切。在快速的发展迭代中,CI/CD被认为是敏捷开发的最重要实践之一。Pivotal的高级软件工程师Shash Reddy在分论坛的主题演讲,为大家解读了如何使用Knative Pipeline项目为Kubernetes应用配置和运行CI/CD流水线,并重点介绍了Kubernetes原生CD工具开源项目Tekton Pipelines,此外,还现场演示了一些真实用例,如应用开发人员推送源代码— 构建镜像— 在集群上部署应用,而无需任何外部CI/CD资源。
至于为什么要基于K8s实现CI/CD,Shash认为有几个重要原因,包括:
● Containerization— 在独立容器中运行CI工作,容器就可以隔绝很多外部因素的干扰,而K8s提供了此类功能;
● Orchestration— 需要一个能够承载规模算法的平台,让多重CI任务在不同机器间找到平衡,K8s优秀的算法分配和多线程操作能力业已被验证;
● Observation— 观察系统通过operator运转CI/CD,也需要查看、了解、管理系统日志,虽然K8s没有此项服务,但有很多配套产品能够补齐;
● Cloud Platform Agnostic— K8s在block vendor之上建立一个层,让平台迁移转换不受阻碍;
● Identity Management— 为了保障信息储存和权限,通过K8s API可以确定何种资源可以提供给哪些用户。
发布工程即服务 加快软件推出速度
如今软件发布、迭代越加频繁,在这个过程中,我们或许正在错过改进和优化软件集成过程的机会,对这一领域缺乏重视,可能会降低代码质量,掩盖组件之间的不兼容性,并让寻求可靠的发布节奏的用户感到沮丧。
Maryam Labib和Ramya Shenoy是Pivotal云研发团队两位富有创意的工程师,重点负责Pivotal Container Service (PKS)的开发工作,她们深愔Release Engineering发布工程的重要性,并且积累了优秀的发布工程实践。发布工程通常针对的是比较复杂的开发团队,它连接着软件开发、产品管理、质量保证及其它工作的整合枢纽,可以通过源码结构、组件等细分到每个不同的开发人员,有助于尽早识别出集成问题并最小化所需的合并工作量。
在演讲中,Maryam和Ramya讲述了自己的团队如何打造“发布工程即服务”,从而解决缓慢的发布周期和无休止的错误报告,更好地帮助开源贡献者了解,集成过程中的微小变化就会对他们的交付速度产生巨大影响。同时,她们还与开发人员详细探讨了如何使用CI/CD实现一致的软件集成,以及使用自动化、并行化和再利用来改善反馈周期的方法,为开发团队的持续集成、交付、测试等提供了全方位参考。
选择开源 构建高效可靠的CI/CD流程
Pivotal大中华区资深架构师刘凡的演讲,更像是一份围绕峰会主题的集大成式总结,从DevOps、微服务、容器、CI/CD这四个云原生重要技术之间的关系云谈起,再深入如何达成CI/CD,最后对Pivotal在此领域的优势做了深度解读。
目前在市场上已经普遍使用的Concourse,就是为执行敏捷开发并需要处理复杂交付排列的团队重新设计的CI/CD工具,由Pivotal赞助开源贡献给Cloud Foundry基金会。Concourse以Pipelines机制运行集成任务,通过可视化方式让团队一目了然当前正在构建的软件版本运行情况。Pipelines将任务(Task)、资源(Resource)、作业(Job)三者有机地结合起来,建模简单,其Build构建在容器中运行,隔离各个环境,避免不同环境之间相互污染情况发生。
此外,建立在Pivotal Cloud Foundry平台之上的PAS、PKS等产品和Concourse集成可以实现软件构建、测试和交付管道的自动化,每一次试运行都当成一次交付。活动现场,刘凡还为来宾演示了如何使用Concourse实现端到端的蓝绿部署。
大会期间,Pivotal展台前来咨询和索取资料的参会者络绎不绝,大家与现场的技术同事交流各种云原生理念、技术和行业方案,也有Pivotal来自在新加坡星展银行的客户,以及来自日本和印度的客户前来探访,彰显了Pivotal的技术实力和领导力。