本文来自脑极体,作者/藏狐。
大概两年多前,脑极体的一位编辑离职了,“罪魁祸首”就是一个关于云原生的选题,这直接让他心理防线崩溃了。真不是他太脆弱,绝大多数人看到云原生的复杂内容,恐怕都会怀疑人生。
点开云原生计算基金会(Cloud Native Computing Foundation,CNCF)的沙盒,你会看到数百种不同的应用和解决方案,令开发者眼花缭乱;云厂商们的云原生产品,有的甚至超过了100款。
市面上关于云原生的科普,画风往往是这样的:《一文了解云原生四要素》《细数云原生的5大特征》《浅谈云原生架构的7个原则》《云原生应用的12要素》……看起来都很专业,但是中英混杂、陌生概念无数,而且不同云厂商、不同机构的说法还各有不同。甲方和读者只是想搞清楚火爆的云原生究竟是什么东西,又不是要考研……最后大多数看不懂的普通人只好躺平,任技术人士们自嗨。
云原生概念火了多久,就科普了多久。难以说清的原因有很多:
一是技术体系庞杂。云原生并不是一种特定的技术,而是围绕云计算的应用逻辑,搭建起来的一系列具体技术和产品,不同的云厂商往往会从不同的角度给出各自的解释。看看这张NCNF的云原生知识图谱,谁看了不迷糊?
另一个原因是云原生本身还在不断演进发展之中。其定义、特征、核心技术等都在不断发展,比如2015年云原生计算基金会(CNCF)成立,对云原生定义进行了修改,2018年定义又进一步完善。今天还是十二要素,转眼又变成了十五要素;刚合并Docker,随后又宣布弃用。这样快速变化的局面中,要清楚地记住云原生各种名词,属实有点难。
想要从一个明确且公认的客观定义来理解云原生,确实是很困难的一件事。不过,IT世界里流行一句话:“语言只是工具,思维才是最重要的。”同理,了解云原生的根本,思维才是最重要的。
《云原生发展白皮书(2020)》中也指出,云原生是面向云应用设计的一种思想理念,能够充分发挥云效能的最佳实践路径。
云原生究竟是一种什么思想呢?我们觉得,云原生其实就是企业上云的本土化策略。
大家可能见过很多海外企业来到中国,或者中国品牌出海,都需要结合当地消费者的经济、文化、生活习俗等,进行一系列融入性调整。同理,比起简单将数据和应用迁移到某朵云上,一开始就生于云、长于云的“云原生”,更具吸引力,也被认为能更好地发挥云服务的优势。这是很多企业,尤其是非数字原生的实体企业十分看重的。
云原生,就像一个云世界里土生土长的土著,被看好它的人们视作优质偶像、未来顶流的潜力股。那么,从2019年的爆红至今,云原生究竟发展到哪一步了?
从虚火到实红:云原生这三年
云原生概念有很多,这里我们从比较客观的时间线来梳理一下,看看云原生是怎么被一众“星探”们挖掘追捧并成为网红的。
大多数人会追溯到2010年,WSO2公司CTO Paul Fremantle在博客里也提到“Cloud Native”的概念。不过关于云原生核心技术之一容器,则可以追溯到更早的2003年,谷歌提出了一个可扩展的分布式文件系统Google File System。
2013年,Pivotal公司CTO Matt Stine在推特上提出,云原生是一系列技术的集合。同年,开源容器软件Docker发布,以Docker为代表的容器技术开始兴起。
2014年,谷歌发布Kuberbetes开源项目,这也是目前容器编排使用最广泛的工具。
2015年,Matt Stine在《迁移到云原生应用架构》一书中提出了云原生的技术特征,包括十二因素、微服务、敏捷基础设施、基于API的协作,反脆弱性等。同年,CNCF成立,将云原生定义为容器化封装、自动化管理、面向微服务。
2017年,Matt Stine重新归纳了云原生的六个特质,Pivotal官网则给出了云原生的最新定义,概括为4个要点:容器、微服务、DevOps、持续交付。
2018年,CNCF又新增了两个定义:服务网格(Service Mesh)和声明式API。同时期,几乎所有主流云计算供应商如阿里云、华为云、腾讯云等都加入了CNCF,Kubernetes和容器成为云厂商的既定标准。
细水长流之后,云原生在2019年迎来了概念爆炸的元年。主流云厂商都开始宣布全面上云,并大力推广、开源云原生相关技术。《云原生发展白皮书》显示,2019年中国云原生市场规模已达350.2亿元,由大中型互联网企业主导云原生产业发展。
2020年,云原生热度继续升温。调查显示,中国社区的CNCF项目使用量增长了64%,2个来自中国的项目Harbor和TiKV毕业,使用量出现跨越式增长。
2021年,全球云原生应用持续走高,Forrester数据显示,组织中容器和无服务器技术的使用率在一年内都增长了75%以上。
这有点像一群经纪公司推出了“云原生”这名练习生,没想到真的戳中了B端客户的审美点,迎来了爆发增长。“云原生”热度一直持续,已经从虚火变成实红了。
云原生,戳中了企业的哪些审美点?
企业是不会因为一个虚幻的概念或者趋势,就用真金白银来买单的。显而易见,云原生能够爆发,还是在于相关技术或产品,戳中了云计算客户的审美点,成为数字化的刚需。
其实企业采用云原生就和搭建本地团队一样,都是看到了一些本土化的妙处。
1.快速响应。海外企业想要适应中国市场,最好的方式当然是雇佣中国人来快速响应用户的需求,同理,越来越多的企业需要通过数字技术、线上软件进行作业,这时候就需要更快响应、更快扩容、更为敏捷的云服务,来替代传统机房和IDC这样的传统IT基础设施。仅仅是用上云来替代服务器还不够,一些企业还希望将业务和服务也搬上云,这就需要从应用开发到部署维护都在云上完成,容器等云原生技术在上云和迁云中的优势自然受到欢迎。
2.降低成本。相比海外高管外派到中国,雇佣本地人的成本也是大大降低了。而企业在上云、应用开发、运维等过程中,对IT人员的需求也越来越多,但传统实体企业显然不是IT技术人员的首选,而且用人成本也是企业难以承受之重,这时候云原生通过一系列产品、工具、方法,可以加速软件开发进程,减少相关资源的投入,降低运维人员的压力。这对于企业推进数字化是非常有吸引力的。
3.场景化方案。本土化策略当然不是随便抓来一个当地人,而是根据行业特性如零售、汽车、制造等有针对性地搭建团队。以前,云商场大多是提供云服务器、CDN、消息中间件等基础设施,但对于一些数字化转型的实体企业来说,更倾向于购买解决方案,将云服务器、硬件、API、AI、边缘计算等各种能力,一起打包购买,这种针对企业需求提供场景化产品和解决方案的商业模式,也让包含基础设施和应用服务的云原生成为云厂商的新机会。
4.自由度。企业在上云过程中,本能地不希望被某一朵云彻底绑定,无论是从降低成本的角度,还是容灾、安全的角度,将业务负载分别部署到不同云平台是大势所趋,而混合多云就要求应用能够在不同平台、公有云、私有云和混合云上分布式部署,并且可迁移,而基于Kubernetes和容器的一系列云原生改造,则能够更好地应对迁移问题。
换句话说,市场需要新的云计算,而云原生的各种技术和方法论,恰恰好满足了企业客户的需求,是云市场向前发展的必然潮流。
优质偶像云原生,
需要怎样的业务能力?
大家可能会问,究竟怎样的云原生才算优质偶像呢?其实云原生的业务能力既有基本的唱跳RAP(划掉)微服务、容器、DevOps,也有新近加入的AI、安全等能力。这里帮大家简单梳理一下。
首先就是微服务。
就像偶像都得看脸一样,几乎每个云原生的定义都包含微服务,这可以说是云原生的安身立命之本。与微服务相对应的就是单体服务,即部署到某一台主机或一个进程里的服务,如果主机坏了,服务就不能用了。而微服务则是一组小型服务,每个服务都以一个独立进程的方式运行,仅实现一种功能。这样一来,开发更加敏捷,微服务的每个组件都可以独立自治,只迭代改进某个模块即可,二来系统容错性、可靠性也更强,一个或某个微服务出现故障时,其他微服务不会受到影响。
微服务早在2014年就被提出了,为什么伴随着云原生的走红才被看重呢?答案就是容器技术的发展。
微服务虽好,但运行在虚拟机上,虚拟机之间互相通信,形成错综复杂的关系,管理起来就非常麻烦,还会出现资源浪费的情况。而容器技术,就以集装箱的方式将一个应用的资源打包在一个容器内,再通过Kubernetes这样的容器编排器,就能够很好地管理资源与应用数据,成为微服务的最佳载体。2016年,Kubernetes在三大编排中胜出,成为目前最为主流的容器编排器,也是CNCF孵化的第一个“毕业”项目,成为云原生基础设施的事实标准。
随着微服务的增多,服务与服务之间需要通过内部网络或外部网络进行通信,如何管理这些服务,就带动了服务网格(Service Mesh)的出现。
Service Mesh是轻量级的网络代理,提供一个代理实例Sidecar,将对应的服务一起部署在环境中,并形成一种网络状的依赖关系,这种架构使得服务网格可以处理服务之间通信的任何问题,如负载均衡、服务发现等,同时将所有指标数据提供给运维人员观测,对流量进行控制,通过加密服务间通信、认证服务等实现更高的安全性。
所以,Service Mesh也成为下一代微服务的架构基础。
微服务的开发离不开开发人员的努力,传统IT基础设施还需要开发人员考虑服务器等基础设施和底层资源,而云服务的普及,也推动了Serverless全托管计算服务的出现,Serverless让研发运维与基础能力、基础设施、服务器解耦,消除了底层基础设施的开发和运维等工作,可以自动弹性伸缩,大幅降低了资源容量规划的难度,开发人员只需要聚焦在核心业务、编写代码即可。
除了开发环节,云原生也为DevOps带来了质的飞跃。DevOps(Development+Operations),弥合开发和运维之间的鸿沟,能够大大提高软件开发质量、缩短开发周期、确保持续交付。而相比于传统IT基础设施,云原生的容器技术和Kubernetes编排,让跨平台应用成为可能;Service Mesh提升了运维和管控的灵活性;Serverless则让运维对开发透明,根据资源自动扩缩容。DevOps又反过来推动了容器技术的发展。
随着越来越多的应用和服务向微服务、容器化迁移,API网关成为微服务集群的入口,连接微服务化的业务架构。而云原生的API设计理念,则是声明式API——即需要向系统声明期望的运行状态,如果出现于期望状态不一致的情况,Kubernetes这样的云原生工具就会根据声明做出对应的操作。
采用声明式API,一旦系统中的组件出现故障,只需要查看声明状态,就可以确定需要执行的操作了。而传统的过程式设计,则是描述达到期望状态的一系列操作,出现故障往往要逐个排查哪一步操作出现了问题。显然,声明式API大大减少了开发和运维人员的工作量。
云原生技术的渐次落地,也影响到了许多传统的云计算技术,比如要满足原生弹性伸缩、智能运维、跨平台迁移等需求。传统的数据库也需要转变,以云原生的形式进行交付,于是出现了DBaaS(DataBase as a Service,数据库即服务)。
企业在引入云原生的时候,本质是希望上云赋智,获得运行AI模型进行训练推理的能力,这就推动云厂商研发出基于云原生的AI系统,通过容器技术和编排调度能力,对机器学习的算法进行资源弹性调度,以满足AI对高性能算力的需求,提高AI训练推理的效能,让AI服务在云上应用时更加稳定高效。
上云之后如何确保安全,云原生也带来了截然不同的解题思路。相比传统安全机制的碎片化、复杂化,云原生安全体系模糊了服务器和硬件终端的物理边界,让零信任等技术趋势得以落地,可以实现统一的身份接入、统一的全局管理、统一的网络安全连接,覆盖企业上云的全流程、全方位、全环节,催生了云防火墙、网络微隔离、Web应用防火墙、应用层鉴权、云安全中心等云原生安全产品和技术方案。
不难看出,云原生确实是一个宝藏优质偶像,代表了一种可扩展、高效,能够给企业数字化、云化带来非常多切实有效的助益。不过,要想成为顶流,可能还欠点火候。
虽不达亦不远矣:
云原生的顶流之路还有几步?
成功卡位在客户的审美取向,又有很强的业务能力,云原生的爆红似乎指日可待。但要客观看到,云原生走向产业的过程中,还需要跨越一些现实问题。
一方面,云原生虽好,但规模落地尚待时日。
首先,不是所有行业和企业都看好云原生。公有云是云原生的基座,然而对于一些数据敏感的行业及企业来说,还是更倾向于在本地服务器或私有云上部署,比如金融、医疗,以及电信、政府/国防领域的开发人员使用公有云的比例就相对较低。
其次,实体行业的云原生改造需要心智培养。《剑指云端:引领企业IT未来的最佳实践》一书中曾提到,云迁移是一项艰苦的工作,数字原生的网飞公司,云迁移就用了整整七年,才完成全面迁移,过程中选择了云原生方法,几乎重构了自身所有技术方法,并从根本层面改变了企业的运营方式……将网飞全面改造成一家云原生企业,是一项费时费力的大工程,更何况大量非数字原生的实体企业。这些企业往往已经投入了大量资产建设物理机或虚拟机,要一下子迁移到云原生,需要在成本、组织结构、业务流程、人员培训、企业文化等各个方面一同转变,这个过程的风险和成本都是比较高的。
当然,这三年来我们也看到各个头部云厂商在积极地布局云原生生态,通过人才培养、行业共创、产教融合等方式,不断降低云原生的认知门槛。比如阿里云的云原生人才培养合作计划、华为云的全球化云原生交流平台“创原会”、腾讯云发布的云原生成熟度标准体系和“云原生开源白皮书“等,伴随着云原生的开源开放与标准化,去拓展企业的云原生实践,培养用户心智。
另一方面,白热化导致同质化,云原生竞争进入差异化赛道。
对于云厂商来说,在日趋同质化的市场竞争中需要新的热点来赢得新用户,而随着“云原生”成为市场新风口,很快又成为云厂商竞争白热化的焦点。
大量云原生技术都是开源的,头部云厂商投入研发,可以很快打造出自己的云原生产品,结合各自沉淀的大量云技术与产品,很容易就打造出了各类“最全云原生产品体系”,形成了乱花渐欲迷人眼的局面。
比如各家都会强调自己拥有微服务、容器化、Mesh、Serverless、DevOps等云原生能力,能够满足企业对敏捷、弹性、可靠、低代码甚至无代码的需求。反而没有了记忆点,又进入了同质化竞争的怪圈,最后企业客户还是看谁家价格低、谁家渠道关系好选谁。
不过,近两年来,一些云厂商也已经开始打造差异化的云原生能力。比如从底层硬件角度,已经出现了专门针对云原生的芯片,充分释放服务器性能,从而降低用户使用成本;还有的厂商将AI、知识计算等技术与云原生结合,推出持续优化云上应用AI的效能,加速行业AI落地,专门满足企业业务智能化的需要;还有的云厂商将自身的核心技术,如AI、影视渲染、数据库、存储等,构建更具特色的云原生解决方案。
面对数字时代,非数字原生企业很容易产生隔阂和焦虑,云原生提供了一种迥然不同的数字本土思维,它根植于云、生长于云、应用于云、运行于云,与企业的转型焦虑紧紧胶合在一起,将这个原本抽象的概念推向了爆火。
可以预见的是,随着云原生更多地嵌入产业、云服务逐渐变得无处不在,未来有一天,我们将不会在意什么是云原生,因为所有的企业都是云原生企业,所有的云技术都是云原生技术。
在这之前,高速成长的云原生仍然值得我们关心,并期待。