2022年2月23日,我有幸受邀参与网站《新程序员》特别谋划的新栏目——“新程序员和TA的朋友们”系列直播对话第四期,和大家聊一聊开发范式大转移。作为开发者如何把握技术脉络?我从API和容器技术、云原生、开源三方面提出了自己的见解并为开发者给出了自己的长大建议。
感激张雪蕊同学将本场直播整理成文,分享给大家。
温铭,API7.ai 结合开创人兼CEO,Apache APISIX PMC主席,Apache 软件基金会成员
云原生带来开发范式变化
新程序员:近几年,云原生相关话题逐步升温,在您看来,云原生相关技术为如今的开发范式带来了什么变化,以及为什么会带来这些变化?
温铭:对于开发者来说,在现有原生的技术革新里最大的一个变化是开发习惯上的改变。开发者从需要关注运维例如搭建根底设备等方面,变为只需要关心怎么去使用这些根底设备以及怎么把它们组合起来去构建自己的业务。很多开发者不用再去关心根底设备了,可以直接用云原生。云原生架构把使用的根底设备是云上数据库还是本地数据库这些细节直接呈现出来,使得开发者可以集中精神到业务自身。
新程序员:作为云原生领域不可或缺的API和容器技术,这两项技术的演变历程是怎样的?
温铭:首先聊一下API。我们已知最早的就是AWS的CEO兴办AWS的时候,在开发上制定了一个规则,即所有的系统之间的交换必需要通过RESTful API的形式来停止数据的交换。也是从那个时候开端,越来越多的系统使用RESTful API来交换各种各样的数据。在去年的时候,全球有95%以上的公司都在使用API来做各种各样的对外效劳。所以我们如今说到的互联网就是把各种各样的手机的客户端连到我们效劳端,其实就是API。因而API不时都是一个非常重要的事情。
然后我们聊聊容器。容器是一个非常技术性的词汇,它的痛点其实也来自于开发者自身。在容器里面大家都会聊到Docker,而Docker其实就是集装箱的意思,也就是作为开发者希望一次编码可以到处运行。大家逐步把各种各样的东西放到方便管理的容器里面,越来越多的这种轻量级的容器就会取代了以前那种重量的虚拟机之类的效劳。容器越来越流行起来,是因为开发者希望自己的程序可以不依赖于各种环境和操作系统去运行。
总之,API其实是由企业数字化转型驱动,而容器更多的是由开发者为了可以在更多的环境上去运行自己的效劳渐渐开展起来的。
API改变在线效劳体验
新程序员:请简单介绍下API如今的应用情况。
温铭:其实对于非开发者来说,只需要晓得我们如今用的所有的电脑、手机等设备,它之所以可以给我们提供各种效劳,其实都是通过API连接到后面的效劳端的,而效劳端也是通过API把后面各种复杂的系统串在一起的。对于开发者来说,防止不了写代码,而写代码就会先去设计个人的API然后根据API的定义编写前后端的代码。所以API其实已经不只是在开发者的领域深化人心,而是真真实实地改变了使用各种各样的在线效劳体验的所有人。
新程序员:API技术目前面临哪些挑战?
温铭:API技术面临的挑战更多的来自于有越来越多的企业和效劳正在从线下变成线上。特别是由于最近两年的疫情,越来越多的企业加快了数字化进程,停止线上协作办公。线上的协作办公等我们生活中的各品种似改变,会让API的调用次数以及API的并发量变得非常高。所以API面临的挑战第一个就来自于API的量非常大,对API的高性能、高可靠提出了高的要求。
其次,用户需要的同样的功能有大量同类的APP可以提供,因而APP自身需要快速迭代给受众新颖的体验。也就会对API的研发效率,以及API的上线下线、灰度发布等提出了非常高的要求。因而围绕API的全生命周期,如何尽快的进步研发效率和产品竞争力,也是非常关键的一个点。
总起来说,第一个是在底层 API的高性能、高可靠上的挑战;第二就是如何打通围绕着API全生命周期的工具,让整个API的研发效率提升。这两方面是比较大的技术上的挑战。
新程序员:您在这方面有什么样的理论经历分享给大家吗?
温铭:第一个挑战其实就是APISIX希望去处置的问题。在两三年之前去兴办这个项目的初衷其实就是我们觉得在将来的世界,API会越来越重,而且量越来越大。关于第二个问题,其实像海外的Postman以及像国内如今的Apifox、ApiPost等这种围绕着API全生命周期的一些创业公司,他们就也希望去处置这样的一些问题,所以能看到大家对于性能、效率、稳定性不时都有极致的追求。
如今API也有非常多新的方向。就算如今的API都是RESTful格式的API,其实也有越来越多的API是用GraphQL的这种方式去获取的,这算是其中的一个方向。还有一个方向就是serverless。因为有一些效劳,我们是希望用户使用的时候它才启动。就是说我可能不用常驻在后面的一个效劳,而是通过这种容器,通过K8s,通过云上的各种根底设备,当有用户恳求过来的时候,我再真正地把这个效劳给启动起来。第三个是关于API的一些设计和文档。这方面其实不时是研发的一个痛点,因为以前在比较粗暴的研发管理平台下面,我们不太关心文档和设计,但如今我希望产品可以快速发布,进步研发效率,那么围绕着API的文档、设计,其实也有非常多新的流程或工具呈现。
云原生时代,开发者的机遇与挑战
新程序员:云原生技术的快速开展已经逐步将整个开发过程、开发流程带入云端,将来,开发者的代码调用等效劳都将被“云化”,开发者身在其中,将迎来怎样的时机?需要在哪些方面学习提升自己,才干抓住难得的开展机遇?
温铭:对于开发者和创业公司都是一个非常好的时机。因为不用再去关心根底设备的运维和它的一些高可用,只需要像搭积木一样把这些根底设备拼装起来,然后把重心用到打磨产品上。这能让你的产品快速达成一个可用状态,对于很多的创业公司和开发者来说是非常好的。不用花很长的时间,就可以做一个产品的MVP版本出来,然后让用户去反响、迭代。
新程序员:那是不是也就会意味着开发者在这里面的重要性会弱化?
温铭:对于一些初级的开发者或者没有积累太多经历的开发者来说,这种云上的东西会逐步的把他们给替代掉。但是有经历的开发者,还是每一个公司都希望招聘的人才。云只是帮你去提升了开发效率,但是你这个产品终究能不能去满足用户的需求,你的代码、写的应用是不是真的可以处置用户的痛点,云上的根底设备其实是很难帮你做到。
新程序员:作为开发者需要在哪些方面停止提升?
温铭:第一个方面就是技术的深度和广度。例如作为DBA,以前可能更关注系统的高可用、数据库备份之类的东西,但是放到云上之后,这些东西通过云上的一些配置就可以自动完成了。那么DBA可能就应该更关注性能的调优、数据库的安全等方面。对于普通的开发者来说,你就要花更多的时间去研究怎么设计缓存、怎么设计算法,让代码运行得更快。所以需要开发者把代码自身钻得更深一些。
云原生,路在何方
新程序员:在您看来,云原生技术将来的开展方向是什么?
温铭:我觉得云原生其实是刚刚开端,虽然如今大家都在聊云原生,但是从原生概念降生到落地,也就是最近几年的时间。就算如今大家都喊着要上云,其实真正上了云的公司的比例也是比较低的;而且就算上了云,很多中国的公司其实还是一个混合云的架构,也就是说,一部分的业务先上云,其他很多的业务还是在自己的私有云,甚至完全的把公有云搬到自己的私有机房这种形式的上云,这并不是真正意义上的公有云。
对于云原生来说,很长一段时间内还要在多云混合云的情况下,考虑如何保证业务的连续性和自身安全,以及后续如何把很核心的业务和数据搬到云上面去。我觉得还有非常多技术上和非技术上的挑战,甚至是法律层面都需要我们去考虑。
所以我认为云原生不是一阵风一样的技术,过两年就没有了,云原生会影响将来至少10年的技术走向。基于开展方向,我觉得大家可以更多的关注云原生上一些比较流行的开源项目,虽然公有云自身是不开源的,但是整个CNCF里一些基石类的项目全都是开源项目,这和以前我们用 Windows或者是Oracle的时代是完全不一样的。可以认为在云原生的整个时代里面,开源项目是基石。所以我认为对于开发者来说,我们应该更关注如今有没有一些好玩的项目,这些项目能不能协助我们更好地完成我们的业务。
新程序员:您觉得将来很多公司都会上云,那上云能处置他们什么样的业务问题?
温铭:我觉得第一个就是本钱的问题。以前大家不愿意上云,是因为自己有研发,可以去搭一套自己的架构。但是如今中国工程师越来越贵,人力本钱在逐步上升,这个时候不如去上云,云上的根底设备也能给我们提供这种效劳。
第二个是业务快速开展的问题。比如说有一个上线的线上效劳,有时候它的流量很大,我需要去弹性扩容缩容,假设没有上云,其实是很难弹性扩缩容去满足你业务自身需求的。
第三个我认为可能会有安全方面的考虑。虽然中国的公司觉得在私有云里面更安全,但是大量事实证明很多的泄露都是从内部开端的,所以公有云的安全级别其实会比自己搭建私有云更高,而且随着中国的各种隐私数据维护法在2021年开端落地,很多的公司也会出于安全考虑,把自己的数据放到一个更合规、更安全、有专业安全团队的云厂商去效劳。
开源与商业化的平衡
新程序员:从APISIX到如今API7,这个过程阶段中有一些什么样的变化?
温铭:APISIX是Apache软件基金会的顶级项目,和有些项目不同的是,APISIX是我们公司捐献给Apache软件基金会的,所以我们最终还是为了实现商业公司的利益,会作为APISIX的原厂去提供一些支持商业化的产品。
这种形式在中国会越来越多,因为工程师其实不只可以通过自己的代码去找一份工作,也是有时机去写一些世界级的开源项目,或者开一家全球化的公司去实现一个更大的梦想。这个其实是我们去捐赠APISIX和兴办商业公司的一个原因。
新程序员:那您认为开源和商业化之间的关系是怎样的?
温铭:我觉得开源和商业化其实并没有一个很直接的关系,并不是不开源就很难商业化或者开源项目就一定能做好商业化,其实是并没有必然联络的。有一些开源项目的商业公司其实也没有做胜利,比如说像Docker。所以我们需要更理性的去看开源,开源其实是可以协助一个项目更快地去触达通过商业公司触达不到的用户,可以让你的项目更快地向前迭代。
关于商业化,其实我们历来不会羞于谈商业化,因为作为一家商业公司来说,赚钱就是利益的驱动点。很多的开源商业化的公司,开源的项目推出,最终的目的就是希望可以从开源的企业里面去做一些付费转换的。付费转换就算是1%或者2%,只要开源用户基数足够大也会有非常多的用户转成付费用户,那么我们也可以从中通过开源用户对开源社区的奉献,最终到达商业公司去赚钱,然后把这些利益又分给开源的奉献者,我觉得这其实是很良性的循环。
我们需要找到怎么从开源变成一个商业付费的点,而且要平衡好,才有可能把一个开源商业化公司做起来。这个挑战很大,因为大部分开源项目的作者都是工程师,工程师做商业化,其实并不会那么容易。很多开源项目需要商业化的时候,其实是在外面找了一个有商业敏感度的人来当CEO,或者是找这样一些合作伙伴来。要把工程师的思维转变成商业思维,其实对于很多的工程师来说挑战还是蛮大的,因而我们需要更多的是在于考虑问题的角度,怎么把个人的成就感,从代码转移到创业。
新程序员:国内开源存在的普遍问题是什么?
温铭:我觉得对于开源商业化公司来说,中国其实是一个很好的长大的土壤,但并不是一个很好的商业化的土壤。我觉得这会是中国开源商业化公司面临的一个问题,我能在中国收获非常多开源的用户,但是并不能收获太多付费用户。这其实是有多个原因的,第一个原因是中国并没有很强的为效劳或者是一个看不见的根底软件付费的意愿。
中国的很多企业更愿意为一台硬件设备来付费,或者更愿意为一个可以坐在我公司里面给我写代码的外包人员来付费,但是他不愿意为一个看不到的虚拟的根底软件来付费,我觉得这是一个观念上的问题。我觉得这应该是中国所有的开源商业化公司面临的同样问题,而且这个问题是靠自己的努力很难去处置的。这可能需要很多人很长时间的努力才行,就像如今大家逐步习惯去电影院看电影一样,它需要一个时间和观念的转换。
新程序员:国内开源开展的问题对云原生技术开展将产生了哪些影响?
温铭: 我们经常会问到一个问题,为什么一些关键的、根底的技术往往掌握在外国的工程公司手里?其实面临这类问题的不只是根底软件的问题。我觉得一个好的处置方案就是,中国需要有更多全球化视野的创业者,我们应该在第一天就把自己定位成一个全球化公司。这也需要有更多这样的工程师、投资人或者媒体,可以更多的去关注中国正在做一些非常好的根底软件硬件的创业公司,然后一起去打造这样一个更好的环境。
API7:将来瞻望
新程序员:API7在之后会有一些什么样的方案可以跟大家分享?
温铭:其实对我们最大的一个方案就是全球化。因为我们在中国已经有非常多非常好的标杆用户。对于infrastructure这种根底软件来说,它是没有语言、没有文化、没有国别差别的,可以满足中国企业用户的需求,也可以满足海外用户的需求。所以全球化会是我们将来几年最重要的一个事情,我们会把APISIX让更多海外的工程师和公司晓得、使用。同时我们也在做我们的云产品,然后在海外我们也会有更多的付费用户,最终它就可以形成一个良性的循环。
以上是我在本期直播的分享,希望能为开发者朋友们带来启发。另外,我在《新程序员003:云原生和全面数字化理论》还写了一篇文章:《API-现代软件基石与数字世界的连接者》,感兴趣的朋友可以在这本书中阅览。 |