41

有方法,何必为云原生所愁?

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA%3D%3D&%3Bmid=2651040173&%3Bidx=2&%3Bsn=448c6250a1f11dce882f0b8075a94e6d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

F7Zfiq7.gif!mobile

策划 | 施尧

编辑 | 王强

云原生是近年来企业 IT 领域最火热的主题之一,被很多人视为企业数字化转型的关键环节,甚至是业务成败的决定性因素。但究竟什么是“云原生”,云原生又能给企业带来哪些实实在在的利益和价值?即便是积极推动云原生落地的技术团队负责人也往往无法给出清晰明确的答案。

对于企业管理层而言,向新技术投资时最重视的是投资的回报率,是技术为业务带来的推动作用。无论是云原生还是其他前沿概念,只要能快速落地、显著加强企业生产力,就能获得企业管理者的青睐。就云原生而言,更多企业缺乏的是对这种技术的深刻理解和认识,管理层希望看到关于云原生理念简明扼要的解读,并偏向于采用打包式的整体解决方案。

针对这一痛点,InfoQ 大咖说邀请到了全球知名的云计算解决方案提供商 VMware 的应用现代化部门(MAPBU)技术总监俊刚先生,为企业深度解读云原生技术的概念,以及围绕云原生落地诞生的企业应用现代化方法论。

俊刚,是一位从事 IT 行业 20 多年的老兵。2004 年加入惠普,开始接触云计算和大数据相关解决方案。2013 年加入 Pivotal 担任大中华区技术总监,专注于云计算的售前售后工作。2019 年 VMware 收购 Pivotal,俊刚也加入 VMware 担任应用现代化平台事业部大中华区技术总监,负责 Tanzu 产品线在大中华区的技术支持工作。

1 企业云原生之旅的四部曲

1、理解什么是云原生

“云原生”这个概念历史并不长,业内对它的理解也有很多版本。其中,认可度较高的是 CNCF(云原生计算基金会)给出的定义:

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

俊刚认为,云原生是包括了容器、微服务、DevOps、CI/CD、敏捷、无服务器、应用现代化、企业数字化转型等等新概念为一体的技术体系,没有特别清晰的边界,且在持续演进发展之中。本质上来讲,云原生是为了应对企业 IT 场景一系列需求变化的产物:

  • 在云计算技术普及之前,IT 系统主要以项目制的形式孤立建设,其需求和设计都是可规划的;但在今天的场景下,分布式的系统部署方式和池化的资源分配方式是非常大的变化,此外应用系统的处理峰值需求往往难以预估,对可扩展能力提出了非常高的要求。

  • 传统 IT 系统以单体架构为主,云计算时代的技术则更多以分布式架构落地。带来了很多系统架构实现和业务实现方式、技术实现体系等的不同。

  • 传统 IT 场景更重视稳定性,操作以工具 + 人工介入为主;如今企业更看重流水线的价值,希望通过全方位的自动化提升 IT 的运维和开发的生产率。

  • 云计算时代的业务追求持续在线,尽量减少停机,催生了灰度、蓝绿、金丝雀等新一代发布流程。

  • 云计算时代,开源软件盛行,利用开源软件的技术提升技术先进性,同时也带来了很多新的问题。

正是因为不同时期的需求与技术路径存在诸多差异,云计算业务场景需要针对性打造高效的实现方式,进而产生了云原生的理念:专为云计算场景设计的原生实现。

2、踏上云原生之旅的准备工作

有大量历史技术资产的传统企业客户要转型云原生需要考虑多个维度:

  1. 企业构建云原生的平台,支撑现代化之旅。云平台选择可以考虑私有云、公有云或者是混合云。

  2. 企业要为云原生准备对应的工具链与开发框架,应用上云和分布式架构实现、微服务实现是需要作为应用层重点考虑的工作内容。

  3. 企业可以考虑采纳云原生时代的工程管理最佳实践,包括 DevSecOps 和敏捷等。

  4. 企业需要建设新型技术团队和创新的文化,同时与第三方服务提供商更好地协作。

  5. 选择合适的发展和采用路径,决定不同业务转型的顺序,一步一步推进直至最终完全转型成功。

对于新兴企业和历史遗留资产较少的企业来说,相比起传统企业客户来讲,少了需要考虑遗留资产的问题,云原生之旅相对来讲是轻装快行的。这类企业可以从一开始就围绕这些技术建立全新的技术团队,采用全套新技术和实践,之后再不断迭代不断优化。

总体而言,云原生是云计算时代针对新的需求诞生的一系列新型技术与管理实践的集合体,企业需要根据自身实际情况选择合适的采用路径。

3、把容器变成基础架构

  1. 容器是云原生时代最重要的底层技术之一,其崛起和壮大是与云原生的发展过程相辅相成的。在早期,行业更多关注容器技术本身和容器的编排等内容,如今企业更关注如何在容器编排之上实现更加完整的平台功能与工具链。容器技术体系在不断进化,从底层平台到上层应用实践越来越完整。容器领域当下有几大行业趋势:

  2. 容器平台逐渐成为主流标准配置,越来越多的行业软件开发商会基于容器平台实现解决方案。与此同时,企业用户会愈加重视稳定性、安全性、可用性、容错性等非功能性需求,对供应商提出了更高的要求。

  3. 企业用户开始真正了解容器技术的潜力并开始大规模落地实践。大型厂商在容器和云原生领域不断布局并发力。

  4. 容器平台的大规模使用和应用上云实践,会越来越成为企业用户进行云原生实践的关注中心。

  5. 特定产品的组件功能在不断细化和增强;同时,社区的未来发展走向还是可能有很多变数。

4、小心避开云原生转型的这些坑

云原生的最终目的是为了实现应用现代化,以高效支撑企业开展业务。因此云原生的其中一个关键点在于关注企业应用本身的现代化实现。

  • 很多人认为,只要应用进入了容器平台就算实现了云原生应用,这是不够准确的。如果应用本身是单体架构,即便转移到了容器上也很难利用云环境的扩展能力,很难承载大规模业务。除容器外,API、微服务、混合云和自动化等很多关键词都是云原生应用需要关注的焦点。

  • 应用向云原生的转型升级可以分为四个阶段:云就绪、面向云、高度云化和云原生。云就绪就是通过容器来运行应用,而第四阶段的云原生则是通过微服务架构实现应用、采用 API 优先的设计模式、遵循应用开发的十二要素实践、具备自动化软件工程实践,同时支持容器化且不依赖特定基础设施。云原生应用并不是发展的终点,依旧需要根据需求和业务的变化不断迭代和优化。

  • 应用上云不一定是一蹴而就的事情,实践中可以逐步实现。具体应用可以从技术栈和业务重要程度两个维度予以评价,最终分为四种不同战略类型:重新设计架构并重写代码的应用;架构优化并重构代码的应用;容器化实现,代码不做大规模调整的应用;不上云的应用。并非所有应用都要上云,技术栈过老、重编码代价巨大且业务价值不大的应用可以不上云,具体要看投入产出的比例。

  • 要小心大而全的场景,大而全的云原生平台项目周期长、投入大、产出慢,很容易中途失败。相比之下可以选择小步快跑的思路,从现实需要解决的业务应用问题入手,快速看到云原生实践的效果,之后再不断迭代。

除了应用本身的现代化工程实践外,企业转型云原生时也要关注团队建设和工程实践。

  • 在工程实践方面,企业可以按照产品的方式管理云平台,做好维护和管理工作。应用开发流程不能忽视敏捷、TDD、DevOps、CICD 等新型理念,建立新的技术标准,做好应用上云的规划设计。云原生之旅的各个阶段也可以根据需要设定不同的可度量的指标来评价,从运维的角度和软件开发生命周期的角度来多指标评估。

  • 云原生时代,企业还会大量采用开源软件,这方面也需要做好准备,弥补开源项目安全不可控等缺陷。

  • 云原生转型需要公司高层的长期大力支持,尤其是计划建设大而全的平台时。如果选择小步快跑,就要找到有代表性的一两个高优先级应用试水,之后再逐渐深入。云原生转型会需要团队学习很多新知识技能,最好招聘一些熟悉云原生技术的骨干带领原团队共同转型。具体执行过程中也可以考虑找到优秀的厂商合作伙伴进行长期合作,通过一系列项目逐渐完成云原生的过渡和演进。

  • 企业上云后,为保持技术的先进性需要整个企业文化做出相应的改变,培养持续优化和持续学习的文化,对现有系统和业务做持续优化,并不断学习新技术和新理念。团队也要培养尝试新鲜事物的氛围和平台。

2 VMware 是怎么帮助企业实现云原生落地的?

在企业转移到云环境的过程中,很多企业的技术决策者都为市面上繁多的选择而苦恼不已,面对五花八门的产品和服务往往无所适从。针对这样的痛点,俊刚建议企业关注平台和厂商服务能力两大维度:

  • 云原生的平台要稳定可靠,能够承载大规模业务,同时满足很多关键的非功能性需求,包括稳定性、安全性、运维和开发效率、可伸缩能力、成本等因素。相比功能性需求,非功能性需求是不同平台间更能体现出水平差异的部分。至于功能性需求,由于各家厂商提供的云原生平台基本都是基于开源社区的庞大技术基础来构建的,所以通常情况下都很容易可以满足客户的功能性需要,差异性不大。

  • 厂商的服务能力非常重要。在开源软件时代,虽然很多厂商都提供了容器产品商业版本,但其中的很多组件都是基于开源实现的,因此厂商对于服务及生态的投入度,给客户的保障能力就变得至关重要。俊刚在这里举了一个例子:VMware 的某一个客户就曾遇到了云平台的运行故障,VMware 发现故障原因是 Go 运行时的问题,应该由 Go 开发社区解决,但社区的响应是比较缓慢的。为了帮助客户快速解决问题,VMware 自主开发了 bugfix 并提交社区,之后使用基于新的 Go 运行时的产品解决了故障。

3 Tanzu:VMware 为企业云原生和应用现代化准备的秘籍

针对企业客户云原生转型过程中面临的一系列需求和挑战,VMware 在 2019 年下半年正式发布了 Tanzu 战略。Tanzu 是 VMware 布局云原生领域技术生态的整体解决方案,是以容器技术为核心的产品和服务全局方案。

Tanzu 是 VMware 收购三家业内一流企业(提供云原生平台和应用现代化服务的 Pivotal、在 K8s 社区有突出贡献和影响力的 Heptio、应用市场服务商 Bitnami)后,结合三家的成熟技术与解决方案和 VMware 自身的基础能力共同打造的成果。Tanzu 主要分为四大部分:

  1. 运行。包含多个选项的容器运行时,提供可在 vSphere 中支持容器的 vSphere with Kubernetes,以及 vSphere 上松耦合的 Tanzu Kubernetes Grid(TKG)等;

  2. 构建。提供基于容器平台的企业功能增强,包括云原生能力平台 TAS、工具链、构建服务和应用开发运行时,比如流行的开源开发框架 Spring 和 Steeltoe;

  3. 管理。解决企业看重的监管控制问题,针对多云、混合云场景下多 K8s 集群的统一管理给出方案;分别通过 TMC 来实现多容器集群统一管理,通过 TO 来实现多容器集群的统一监控,以及 TSM 来实现多容器集群的服务网格管理。

  4. 应用现代化专家服务,帮助企业客户实现应用上云以及团队赋能等。

VMware 一直专注于企业云计算领域的产品和解决方案,有大量现有客户在使用 VMware 的产品;在云原生时代,VMware 将 Tanzu 产品线定位为整体技术战略中的核心环节,通过 Tanzu 不断增强服务企业客户的能力,帮助企业客户在云计算时代开发更多更好的产品,实现应用现代化。

Gartner 预测,2022 年超过 75% 的全球组织会在生产环境中运行容器化应用,相比今天的 30%,增长显著。云原生、容器、应用现代化是下一个重要的企业客户 IT 建设发力点,VMware 也很早开始在这一领域投入并不断推出新的产品和解决方案。新的 Tanzu 产品线和原有 VMware 的产品线高度可耦合,帮助客户实现投资保护,不至于建设太多孤立的烟囱式系统,产生复杂的系统管理要求和成本投入。此外,国内软件开发人员有超过 50% 在使用 Java,其中 70% 的开发人员使用 Spring,而 Tanzu Spring 运行时可为企业级应用环境保驾护航。

Tanzu 从平台、工具链、开发框架、企业级的监管控功能,一直到专家的专业服务无所不包。在企业非常关注的混合云层面,Tanzu 也做了大量努力:

  • 容器部署方面,Tanzu 的 TKG 有很多产品选项来支持异构云环境(例如基于 vSphere 或 Azure、GCP、AWS 等);企业可以通过 Tanzu 的统一产品方案在不同的云上构建相同的技术实现,实现相同的使用体验。

  • 管理方面,Tanzu 提供了 TMC 来实现不同云的大量 K8s 集群的统一管理,方便用户在混合云环境中实现企业级管理特性。Tanzu 的 Observability 可以实现容器层和应用层跨云环境下的统一监控管理。

  • VMware 通过 VMware Cloud Foundation 内的 vSphere 来支持 K8s;而 VCF 已经支持绝大多数主流公有云的服务实现,并且支持企业数据中心部署,给客户更多混合云构建的选择。可运行 VCF 的环境就天然支持 Tanzu。

对于刚刚入行的企业,VMware 提供了轻松快捷的容器平台构建路径。容器平台可以选择 VMware vSphere 7,其支持 Kubernetes 平面,非常容易入门和管理;也可以选择或者其他厂商的商业产品;个人学习可采用非常简单易用的 minikube。关注生产环境安全稳定性的企业客户可以选择 Tanzu Application Catalog,这是预测试的安全稳定开源软件打包服务,提供补丁更新和安全扫描等功能。VMware Pivotal Labs 可以帮助企业走好整个云原生旅程,从产品到应用和团队培养全部有对应的服务和方案。

4 几个建议

俊刚最后为正在经历企业云原生转型的技术决策者给出了一些中肯的建议:

更多关注技术能够如何给用户、业务带来的价值;企业级软件产品所有的技术创新,最后都是为了企业业务服务;

开源软件不免费,如果要构建真正承载业务的关键业务平台,选择高水平的第三方提供商可能比 DIY 更加合适。

说到容器平台建设,虽然容器是核心技术之一,但其只是载体,落地时往往要跳出容器看应用,因为最终的业务都是通过应用作为界面来给用户提供交互接口提供服务的,和客户感受最紧密相关。

euei6nY.gif!mobile

点个在看少个 bug :point_down:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK