更新时间:2023-02-19 GMT+08:00
分享

软件DevOps云化发展的趋势

华为公司管理过程的变化

《科技想要什么》一书中,将科技比作生物。生物是在不断进化,伴随着科技生物的进化,科技生物的研发方法也在不断的进化。华为公司在过去三十年,从小型做硬件、做CT通信产品的公司,成为跨ICT公司,研发理念和思想上也在不断变化。经历了初步的CMM持续交付、持续集成到敏捷、DevOps,直到最新的进化状态CodeArts。下图是华为公司在过去三十年研发能力和研发方法以及研发的工具进化的过程。

云原生Cloud Native的“纹身”

Native的意思是辅助、原生,DevOps与Cloud Native背后共同的东西是文化。DevOps不仅是我们的工作内容,更是工作方法,同时也在形成一种工作的文化。

华为Cloud Native转型之路,也是把文化赋予华为的研究过程的纹身过程。这是基于DevOps的精髓和支柱。

华为在云端领域的DevOps是云的基座,云渗透在ICT的很多领域,目前华为云推出一百多个云上的服务。在云的基座上,TATO所代表的内容是:T代表Team(团队),A是Architecture(架构),T是Tools(工具),O是Operations(运维)。

DevOps实践的第一步是来自于人的思想和观念的转变、科学的变化,科学的背后是思想和理论的变化,文化需要人在思想上做出改变,也需要人去承载这种思想改变。华为CodeArts转型经历了几个阶段,最初华为以盒子类的通信设备为主,盒子是以前大规模的软件开发过程,软件都是上亿行甚至几亿行代码的软件,要求可靠、稳定,每一款通信设备都有很长的研发周期。

华为最开始接触到的工程方法,更经典和更传统,更像工厂的管理过程——矩阵式的模式。通过矩阵职能性的分工去划分不同的功能模块,划分不同功能模块的团队,从而实现组织和交付,通过华为强有力的管理和执行过程,把一些分散的组织单元组织起来进行交付。

  • Team(团队)

    团队向DevOps团队转型,全功能团队是第一步。首先实现开发组织,从开发、测试到设计,包括开发管理过程的全功能团队。

    伴随着云基础设施的兴起,云的基座和新的生产力手段的诞生,华为现在演进的最新状态是基于Cloud Native,其组织生长基于大量的云服务,可以实现很多自主的开发、运维、测试的过程,从而支撑跨功能域的全功能团队。以前能力沉淀需要靠资源组织、职能组织完成。在新的技术条件下,云服务技术手段天然提供了平台,把能力、经验沉淀在云服务里,通过云服务使用和访问。

    SRE是运维,80%的运维过程不需要运维人员参与,而是运维人员提供的运维服务能力,开发人员不需要联系运维人员,只需要使用运维人员封装好的运维服务即可。

    同时华为更加关注端到端产品的经营,而不仅仅是开发的过程,DevOps已经不单纯是开发行为,而是商业行为。这是Team团队的转型变化。

  • Architecture(架构

    A是Architecture,正如康威定律所言,组织结构、业务结构之间互相促进、互相影响。如果仅有新的组织结构而没有全新的业务架构,会发现这个组织运作不流畅。我们必须对现有的业务进行调整,调整的思路伴随着IT基础设施的变化而变化。

    最初阶段的架构里,环境运行在物理服务器上,运行在主机上,业务软件是单体软件运行在某一台、某几台主机上,硬件环境、软件以及软件里面各个模块,都耦合在一起。这种开发方式是用矩阵式的环节开发,无法匹配小团队和微服务的开发。

    之后演进一步,将一部分迁移上云,只是迁移到虚拟机和一些基础的服务上,比如数据库服务,从而实现环境、软件和软件之间的模块的耦合,让以前繁琐的准备环境、获取环境耦合掉。

    仅有这种变化还不够,软件本身还是高度耦合的单元。我们把软件拆成Cloud Native服务架构,把软件里每个功能模块和依赖的中间件资源、依赖于的数据库资源和依据健全的服务全部拆开,各归其位。

  • Tools(生产工具

    T是Tools,生产工具和生产力是互相作用、互相反作用,不管是新的设备结构、组织结构的演进,基础都是生产力的变革,生产力的变革基础又是生产工具的提升。回顾过去一百年发生的变化,从蒸汽机、电力机到计算机,新的生产工具迭代和诞生,出现了新的行业、新行业的发展模式、新的行业思想和理论。

    软件行业从最初的CMM、敏捷、DevOps也经历了这个过程,推进这个过程变化的是背后的技术和工具,新的编程语言、新的开发语言、新的工具链支撑了生产力的变革,生产力的变革同时支撑新的生产关系,微服务的团队、全功能的团队的诞生。

    华为基于CodeArts的研发体系,包含从软件的需求到代码托管编译构建到发布的全过程,十年前这些所有的过程都分散在不同的团队、不同的个体人去完成的,十年后,如果你是一个深度DevOps的践行者,一个人就可以完成,就是新的工具、新的IT系统给大家提供这样的变化。云的最大特点就是自服务,可以通过自服务提供方方面面的能力。十年前是不同的团队、不同的角色分时间点完成的,现在可以在几分钟内实现、几分钟内完成。

    举个例子:曾经有人对比过新的第四代战斗机和第二代、第一代战斗机的区别,主要是航电活动的高度集成,以前的战斗机都是大量的仪表,一个飞行员、两个飞行员监控不同的模块,保证飞行的安全和正常。新的飞机就两块屏,跟在电脑上玩飞机游戏差不多。

    因为所有的信息系统都高度的集合和整合,新的开发平台也提供给大家一种模式,也提供了这样的能力,我们可以实现整个价值流的串接。

    流水线背后的思想理论是软件生产的价值流这个实践带来直观的感觉是实现了快速的迭代。未来GDP的总量应该有时间GDP的总量,软件开发活动也是如此,如何把碎片化的时间整合起来,形成软件开发的生产力就是我们要思考的。

    看板可以解放更多IT人员。让他们不用每天坐在电脑前,或是不用每天通过会议的方式和周边同事讨论软件的进展,什么时候可以发布、什么时候不可以发布,还有什么问题。通过高度整合的信息系统提供支撑,可以在手机上完成软件发布审核的过程,可以在手机上完成看板卡片状态的更新,这样一些过程都可以在上面实现,正如前文所说,Tools生产工具的变化带来了一些变化。

  • Operations(运维

    O是Operations运维,新的生产工具带来新的生产关系,《科技想要什么》中说到,生物在不断的演进和发展,也有生命的存续。Operations运维和运营就是维护生物不断的存续过程。

    华为的定义里,5G叫做万物连接,2G、3G、4G是完成人和人之间的连接,通过多媒体的信息手段完成人和人之间的联系,5G的带宽和响应可以完成物和人、物和物之间的连接,未来的软件如果是不联网、不连接,不ONLINE的软件,那么这个软件也将是没有生命力的软件,从全球TOP公司战略转型都可以看到这个规律。

    未来不在线的软件一定是没有生命力的,如何保持运维让它一直在线,保证它生存是我们要考虑的问题。基于华为的IT基础设施、云的基础设施有很多运维服务,这些运维服务也是给大家提供技术手段,让个别团队都能轻松的操作起来,这是Operations的变化。

    运维、运营不应局限于现有的状况。《DevOps理论》一书中,业务的原意是Business,连接到客户Customer。业务表面上是技术,实际上是Business。把客户通过DevOps连接起来,形成商业的闭环,是需要有运营的,运营同样需要依赖平台和平台的支撑才能高效的完成这个过程,让服务更好地生存。

分享:

    相关文档

    相关产品