Skip to main content

左耳朵耗子:云原生的正确打开方式

本文由本人整理,发表在CSDN平台并署名【小雨青年】。

发布地址 :https://mp.weixin.qq.com/s?__biz=Mzg2ODEzOTA0OA==&mid=2247485718&idx=1&sn=bd1ca5e5b1acacb8067af28a64a7dc3b&chksm=ceb1a051f9c629471e305d18ad0336ac9469abf12a3901f93ea4354a5a7053b4facd5d321848&token=1285259263&lang=zh_CN#rd

嘉宾 | 左耳朵耗子 整理 | 小雨青年

出品 | CSDN云原生

本文整理自陈皓(左耳朵耗子)在2022 CSDN开发者生态汇上的演讲,采用最精炼的语言,分享了他所理解的云原生。

一、缘起:面向用户侧的数字化转型

企业为什么要上云原生?因为要做数字化转型。

那么,企业为什么要做数字化转型呢?陈皓将其归因于企业的数字化从以前的企业侧的IT系统向用户侧的IT系统转变,原因是来自互联网企业给传统企业的压力。

对此,陈皓举了三个例子。

  • 星巴克因为瑞幸的压力,开始转向用户侧,做APP、小程序,放弃了用户必须到店里喝咖啡的执念。
  • 银行因为花呗、借呗的出现,开卡率和服务率逐渐走低,而转向了用户侧。
  • 之前汽车行业的软件是给企业内部使用,比如库存管理和内部流程管理;而现在,汽车行业在转型为智能汽车,所以也需要做很多用户侧的需求,需要处理高并发,因为汽车在运行过程中都在和服务器进行交互。 新一代的数字化转型全部是从企业内部转向用户,这几乎包括了所有行业。

图片

如果企业不转到用户侧,做数字化转型,在未来就会失去竞争力。企业要转到用户侧,就需要满足四点需求:

  • 更快的迭代开发速度
  • 更高的并发和性能
  • 高可用稳定的架构
  • 低成本和可控

企业向用户侧进行数字化转型的需求,促进了云计算架构从Cloud1.0向Cloud2.0的演进。其中,Cloud 1.0是以AWS和Azure为主的资源(运维)型,而Cloud 2.0则是以Cloud Native容器化、调度、微服务、DevOps的服务(应用)型。

图片

我们可以看到,新型的应用架构更多的是关注应用架构,而不是基础架构,只有应用架构真正的分布式、稳定和可扩展,才能通过更低的成本达到更快的并行开发,高可用,高性能。

Cloud Native就是把云计算的核心技术拿出来直接无缝地集成到应用层,让我们的应用Natively就是Cloud。这个时候,对于用户来说,无论上不上云都已经是云了。

举个经典的例子,Google上世纪90年代把自己的搜索引擎架在了廉价且不稳定的x86 + Linux的机器上(连服务器都不算),整个搜索引擎依然可以稳定的运行。这是因为软件架构做得好。所以,Google因为自己的这个实践向业内发布了三篇分布式的论文,而这三篇论文直接引领了整个技术架构的变迁。从这个例子,我们可以看到,对于云计算来说,软件和应用架构才是真正给企业带来能力的重要特性。用一句比较夸张的话来说,只要软件架构做得好,基础资源就变得不是很重要了。

二、挠头:上了云原生但没解决问题

有的企业可能会有这样的疑问,为什么我们都用上了这些技术,怎么还是没有解决问题呢?

图片

在陈皓看来,当今企业面临的技术挑战太多了:

  • 技术整合复杂度高
  • 核心技术壁垒高
  • 需要技术规范
  • 需要高级人才
  • 运维复杂度非常高
  • 跨部门协作

实际上,技术整合要求很高,就像是赛车不能靠买一堆零件拼凑出来,企业也不可能通过系统集成得到真正的架构能力。只有认真规划,从顶层开始设计,以应用服务为视角,关注于技术收益,通过建立技术规范把技术底座打扎实,才可能拥有一辆“赛车”。

说到技术规范,陈皓表示,目前,中国大多数公司的情况让人很不乐观。就算是最简单的统一技术版本,都没有做到。软件由各个供应商或是各个开发团队提供,没有选型规划,也没有升级规则。软件可以老到还是10多年前的技术,时间长了,就会出现各种版本混乱的问题,这样的IT环境是没有办法获得真正的能力的。

三、建议:正确的云原生工程演进路线

下图是陈皓梳理的云原生工程演进路线,通过开发规范、DevOps、软件架构、应用运维,还有团队建设五个方面能力进行演进,才可能拥有真正的云原生的技术能力。

img.png

对于一般用户来说,除了觉得以上五个方面纷乱复杂之外,还会发现它引入了更多的新问题,感觉成本还更高了……

怎么把这些技术零件拼装起来,并且能够打造成一个企业级的架构,这是陈皓的MegaEase过去几年一直在努力积累和沉积的。

一个好的系统架构的核心就是要有统一精良设计的控制和调度系统,这个是架构和系统集成的本质不同。

  • 云原生本质上来说就是调度和治理。这需要很多的控制系统。
  • 通过流量调度、资源调度和服务调度这三种调度控制系统可以让整个架构性能、稳定性和可运维性有非常大的提升。
  • 通过开源再加上一个有良好的顶层设计的架构模型,才能真正达到所有的用户侧转型中的所有的技术基础能力。 要打造的能力和优势是做云原生的软件架构,而不是系统集成。

系统集成,几乎所有的软件厂商都可以完成,但云计算和云原生架构则并不是。几乎所有的公司都可以用Cloud Native来标榜自己,但只有少数的公司才会拿真正的技术能力来标榜自己。

陈皓所在的MegaEase更多的是用技术能力来标榜自己,比如:一行代码不改做秒杀,可以支持用户超高并发的场景;可以让用户获得更快的故障处理能力,可以让用户进行全链路的灰度发布和完美的无侵入式的生产线全链路压测,以及真正可用的灰度发布系统,高可用的中间件架构、跨数据中心的多活和部署系统……

总结起来,陈皓认为,以MegaEase为代表的服务商的核心技术能力应该体现在三个方面。

  • 完整的无侵入式技术和对主流开放技术兼容,让用户的改造应用成本降到0。
  • 让用户获得能力的同时还降低整个 IT 成本至少一半以上。
  • 没有厂商锁定,所有的技术全是标准开放的开源软件,永不“魔改”。