12月9日,深信服容器云产品研发部研发负责人Jacky在信服云《云集技术学社》系列直播课上进行了《DevOps技术原理与实践》的分享,详细介绍了DevOps技术的发展、开发中的关键技术、相关问题和注意点。以下是他的分享内容摘要,想要了解更多可以点击这里观看直播回放。
看点一:DevOps全景 在软件工程的发展中,开发模式从最开始瀑布模式、敏捷模式到现在把敏捷中的运维和开发串起来形成的DevOps模式。软件技术架构从最开始的单体架构、到分层架构再到现在的微服务架构。交付方式也从原来上线一个业务部署在物理机上,到部署在虚拟机上,然后到当前可能更多的部署在容器里面。基础设施也从原来建立机房的数据中心,到只关注一个云主机,到现在用户更关注的是东西怎么发布到云上。
开发模式、软件架构、交付方式和基础设施的发展虽然是独立的,但是在特定时期又相互交织。例如,在DevOps环境下,常用的部署方式是容器的方式,应用架构是微服务的架构,基础设施是云。
不同企业的DevOps模式是不同的。DevOps一般是从组织、技术、流程三个方面发挥作用,大致上都会有开发人员、版本控制系统、构建服务器、工件库、代码仓库、包管理器、自动化案例库、测试环境、预发布环境、生产环境、监控系统、流水线等部分。组织是保证,技术是推动DevOps前进的核心生产力,流程是准则。最终实现文化升级,实现学习型和使命型的文化。
看点二:Devops时代软件开发关键技术 DevOps时代下,有着6项软件开发的关键技术。
流水线:流水线将各个分散的人物流串起来,形成一个自动化的工作流。流水线是DevOps的核心。常用的流水线实现有:Jenkins、Travis CI、CruiseControl、Buildbot、Apache Gump、Cabie、gitlab。目前业界比较常用的流水线是Jenkins。深信服云原生流水线的实现则主要是基于k8s架构在云原生平台上去构建流水线的管理工具。
云原生平台:作为DevOps的载体,云原生平台是DevOps的必要条件,它管理着多云环境下的K8s集群和云平台。以容器技术为核心的云原生平台为DevOps插上了翅膀,通过构建完善的PaaS能力或中台,能大大提升DevOps的效率。
微服务:当应用系统庞大到需要十几个独立业务才能完成,在这种情况下必须把业务拆成足够小的细颗粒才行,微服务通过自动化的方式让每一个模块都可以独立运行、独立维护、独立治理。管理、度量、管控三位一体的微服务治理,让DevOps在业务侧流转起来。
监控:它是DevOps的晴雨表。没有监控,用户就无法了解系统在线上的运行情况。监控和告警是DevOps真正自动起来的保障。
测试和自动化:测试和自动化是从代码分支管理时就已经运行。在构建环境时会进行静态代码扫描、编译告警分析等操作。而到了测试环境,则针对功能、回归、API、UI等多方面进行测试保证集成功能可以发布。预发布时,还要进行极个别的动工测试、持续压力测试、回归测试、灰度/金丝雀和演练。最终发布到生产环境时会进行流量治理和运用混沌工程注入故障检测系统稳定性。测试和自动化是DevOps成功与否的指标。
开源社区:DevOps之所以属于敏捷的一个延伸,是因为它小步快跑的思路跟敏捷其实是一致的,只是DevOps把线上和线下这块拉通了。DevOps目的是形成一个很小的作战单元,更快地去反映和解决问题。实现这个目的的唯一路径是使用更加先进的工具,开源社区正好就给它提供了这些工具。
看点三:DevOps的问题和注意点 关于DevOps,Jacky在直播课上介绍了三点注意事项:
安全问题:近几年,安全左移成为了业界共识,即从开发阶段就要开发安全系统。DevSecOps要求从一开始就要考虑应用和基础架构的安全性。
混沌工程:通过在生产分布式系统上进行实验,主动找出脆弱环节,从而使得系统真正可靠起来。混沌工程与常用的微服务治理结束相结合,实现运行状态的真正高度可用。
团队建设:DevOps转型到最后是文化的转型。康威理论表明软件设计的架构反应了团队的组织和沟通架构。DevOps实际上是一场自上而下的组织变革,必须有组织保障,因此团队建设至关重要。
还想学习云计算的更多干货吗?敬请锁定下期直播,云集技术学社还将邀请更多的专家,分享他们对云计算技术的理解和实践经验。
|