最近在回顾腾讯云在Techo Day腾讯技术开放日(吐槽一下这么长的名字真的方便传播不?)举办的《云原生全栈开发与实践》,可惜由于本人对云原生这块不是很熟,所以里面非常多关于云原生的应用案例讲解,包括北极星、CODING、招商云我基本都是跳着看的,不过里面很多嘉宾都顶着“腾讯架构师”的Title,我相信内容还是非常不错的,这一块就留给大家去看了。
一开始本以为这次的讲座纯粹是那种对偏基础的人完全不友好的高端论坛时,最后终于出现了让我眼前一亮的视频《对于开发者,云原生意味着什么?》(在所有视频的最下面,让我不得不感叹:“终于等到你,还好我没放弃~”)
虽然视频中有一点推广的内容,但总体还是解答了很多关于云原生大家常见的困惑吧,对话的内容我就不在这里展开说了
,这里还是更推荐大家去看原视频:https://cloud.tencent.com/developer/salon/live-2011/agenda-10014。
不过就算视频内容很详实,看完视频之后,我其实还是有3点疑问,这3点疑问找了一帮也是没啥云原生基础的朋友问了一下,发现他们也是对这3个问题感兴趣,正好,我通过查资料之后算是对云原生有了自己的理解,这里把自己的学习心得写下来,也算是给视频做一下补充。
一、云计算(上云)和云原生到底有什么区别?
《对于开发者,云原生意味着什么?》视频中关于上云和云原生的区别只有简单的“云原生是上云的更深层次”,不过具体“更深”在哪儿,视频的解释我感觉不是很能理解。
我去网上查,发现当下很多技术概念,不知道是不是为了方便增加逼格,似乎都从产品经理那边学到了“概念堆砌”这个坏毛病。比如某搜索引擎对云原生的解释就是“云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。”整得跟论文似的,每个字我都能看懂,但是组合到一起我就不太明白了。
直到我看到有人用一个案例描述云计算和云原生的区别,我觉得这个解释是很完美的:
上云就是“企业的研发运维流程部分上云”:比如我们开发写代码是用的本地IDE,写好之后push到Git,测试人员再pull到自己的本地容器调试,没问题才最后部署到云服务器上,整个过程只有Git和云服务器是真正的云计算,其他都是本地机器在跑。
云原生就是“企业所有研发运维流程全部上云”:比如我们开发写代码用线上云端IDE(类似这次《对于开发者,云原生意味着什么?》提到的Cloud Studio),写好之后push到云端的代码库,测试人员pull到云端的容器调试,没问题最后部署到云服务器上,整个研发过程完全离不开云。
当然,尽管一眼就能够看明白,但上面这个解释有个最大的缺点是:云原生看起来好像不如我们想象中高端了。
既然只是简单的将全部研发运维流程迁移到云上,为何会有这么多巨头争先恐后去推出“云原生”相关解决方案?
二、为何云原生是大势所趋?
跟第一部分的说明方式一样,我这里就不扯概念了,大家想要了解概念可以去看《对于开发者,云原生意味着什么?》视频,这里就简单介绍一下我使用一款云原生产品的体验吧,就是视频中提到的Cloud Studio。
关于Cloud Studio,你可以理解为一个“线上版的VS code”,没办法,咋一看它的UI确实跟VS Code长得太像了(仅仅是拿来举例,绝对不是广告,可以放心阅读)。
一开始别人推荐给我,我是拒绝的,因为我觉得这个Cloud Studio就是一个“网络不好就不能用的VS Code”,直到说,有一次因为疫情不得不居家办公,当我离开了公司给我们配置的开发工作站,拿出自己用了10年的古董级笔记本,我才发现Cloud Studio存在的意义。
为什么这么说,因为我有的时候要跑一些人工智能的小模型,靠这种古早电脑完全带不动,而Cloud Studio最大的意义就在于因为用的是云端算力,它能够让开发完全摆脱硬件依赖。
而Cloud Studio还只是一个初步云原生平台,因此,我们只要把Cloud Studio的优点放大多倍,就能够理解为何云原生会成为香馍馍:
1、极致的弹性算力,摆脱硬件依赖:
不同于云服务器只能够为服务器分配算力,未来云原生很有可能只要是研发运维流程中任何需要用到算力的地方都能够进行合理分配,不会像我们直接为程序员采购实体电脑那样,需求少时计算机闲置,需求多时计算机超载。
2、开发链路全程可溯源管理:
从需求提交到最终的交付部署都在云端,可以实现整个研发运维流程的监控,吐槽一句,虽然从公司层面上来讲这样能够更好的对程序员进行管理,但最大的缺点可能就是不能够愉快的摸鱼了。
3、“即开即用”式的低代码开发:
目前我了解到的情况是,云原生不单单是某个公司内部的开发链路上云,甚至你还可以将自己写的某个功能代码发布到云上,类似容器那种,其他人pull你的代码之后,云原生平台会自动检测其他人原始的代码要如何跟你的代码进行耦合,终于不用花心思去解决兼容、环境、依赖库的问题了,看来能够愉快的抄袭别人的代码了。
三、云原生会如何影响程序员
尽管《对于开发者,云原生意味着什么?》视频中提到了很多低代码、服务网格之类关于开发流程的变革,但这些概念对开发的影响已经有许多人探讨过了:有影响,但不至于颠覆。
最主要的表现就是,很多云原生平台照顾到了用户的使用习惯,UI包括说操作逻辑都跟一些纯离线的软件很像(比如Cloud Studio)。
而如果所有的DevOps流程都开始向云原生迁移的话,我感觉这更多是一场硬件层面的改革,部分以“修交换机”“装电脑”为主业的运维可能就要连夜改简历了。
好了,以上就是本文的全部内容,感谢大家的阅读,如果我有什么没解释清楚的地方,欢迎大家评论向我提问。