问答时间:2020年11月25日
嘉宾简介:
宁鹏伟:腾讯云云开发产品中心总经理,“小程序·云开发“负责人,腾讯前端通道委员会委员,先后负责加速(CDN)产品,基础计算(服务器、网络、中间件、容器)等产品前端研发工作。
主持人简介:
吴洪声(人称:奶罩):腾讯云中小企业产品中心总经理,DNSPod创始人,洋葱令牌创始人,网络安全专家,域名及DNS技术专家,知名个人站长,中欧国际工商学院校友。
以下为对话原文整理:
吴洪声:你在腾讯工作多年,先后参与过 QQ 秀、QQ 情侣、微信、QQ 水浒等大众熟悉的腾讯业务,是什么让你结缘了云开发业务的?你认为之前的实践积累对你现在管理云开发业务上有哪些帮助?
宁鹏伟:这几年前端工程师负责的业务边界越来越宽,除了精通 Web 技术以外,也需要理解 Node.js 后台开发、存储、数据库和柔性高可用服务等等,现在腾讯内的大部分前端工程师其实都拓展到了全栈开发的领域。
然而这带来的问题是相应的人才招聘也越来越难,开发效率和人力成了团队最急需解决的问题。当时就想着是否能提供类似 Firebase 这样的服务,但那时大部分业务都还是运行在自建 IDC 内,大部分团队对公有云不太信任,接受度不高。
后来随着上云浪潮来临,正好我也转来负责小程序和云生态的结合探索,就想着可不可以把腾讯云的各种后端服务直接和小程序端打通,一个人就可以完成一个小程序,云开发就这样诞生了。
在 18 年我们算是第一个提出了 Serverless = FaaS BaaS 的理念,并且实践落地了相应的产品。后来提出了云端一体化的概念,希望将小程序 IDE 云端服务打造成全栈式的一体化开发平台,提升开发效率。如今我们还在不断地探索,从云开发,到低码平台,让非技术岗位的同学也可以让自己的想法落地。
吴洪声: “云原生”成为近几年云计算领域炙手可热的话题,越来越多的企业和开发者开始把业务与技术向云原生演进,国内外各大云厂商也加大对云原生的投入。“云原生”到底解决的是什么?
宁鹏伟:首先云原生这个概念这几年越来越火,很大程度上得益于容器化、微服务化和 DevOps 理念的发展,这些能力正好都是各大云厂商可以直接提供的。当然现在我们说的“云原生”,这个概念已经被逐渐扩大化了,它现在更多是指“从云上出生,在云上长大,依托于云上基础设施运行”。
对于企业而言,云原生明显降低了企业的运维和研发成本,让企业可以直接享受到大厂商的技术红利,从而带来全社会技术的爆发和变革。我认为当下的趋势已经很明显了,越来越多的企业选择基于云上的一套新的技术标准的开发方式(比如容器和 Serverless),将整个研发周期和后期运维运营都进行云化的管理。但我觉得未来不仅仅是研发、运维流程的云原生,数据分析、运营这些领域也会慢慢地走向云原生,会产生一套云上的标准和方案。
吴洪声:基于对AWS、微软及国内其他云厂商所发布的新功能或者新服务形式的统计,可以看到绝大多数的新服务都在呈现 Serverless 化。而云开发作为这条道路上的先行者,面向的用户又是极度严谨、追求完美的开发者,作为云开发的领队人你是怎么在准确把握用户需求的同时又兼顾技术落地应用的?
宁鹏伟:Serverless 是不是终极目标,我不敢下定论,但是 Serverless 肯定是未来 10 年最重要的技术方向之一。腾讯的优势在于,除在 Serverless 技术上有大量的实践以外,我们在 C2B 领域也有充足的经验,所以我们最开始的时候就希望能够结合这两者,应该会受到很多开发者的欢迎。
不过万事开头难,我们初期上线时,能力和稳定性上还比较欠缺,会受到很多用户的“灵魂拷问”。后来随着概念的普及,开发者发现云开发真的帮助他们极大地解决了效率问题,于是就自发地帮我们宣传,提了很多好的建议和需求。现在相当于我们和开发者一起做产品,也不存在兼顾哪边的问题,毕竟大家提出的都是自己业务中最急需的需求,我们会从整个云开发产品的定位、边界、愿景这些角度来整体思考用户的需求。
吴洪声:通过云开发,开发者无需管理基础架构和服务器运维,是不是意味这种模式下最先冲击的是运维岗位?除了运维,云开发对后端的弱化会不会逐步蚕食后端开发工程师这个岗位?我很好奇它会给未来的就业形势带来什么样的变化?
宁鹏伟:我觉得这里算不上一种冲击,应该是一种模式的演进,在解放了运维团队或者后台团队的一些工作之后,相关岗位的同学可以更关注到业务本身的提升上,例如运维团队可以做更多的精细化的业务层运营,而不是花费过多的时间在 IaaS 层的资源管控,而后端开发者也可以去解决更多平台搭建的问题,而不是处理一些分布式架构。整体上各个研发岗位都会更多像业务靠齐,而不是被束缚在非业务场景的支撑上。
吴洪声:在移动互联网时代,营销活动往往伴随着企业的经营。运营活动往往面临 “高流量”、“高并发”、“应用体验佳”的高要求。据我了解今年的《创造营 2020》上线扫票等一系列的营销互动活动就是基于云开发,云开发是怎样在这种秒杀运营活动中顶得住流量洪峰的?
宁鹏伟:这里还是依赖于 Serverless 这种无服务器的架构特点来支撑的。传统模式下,开发者需要更多的去关注自己的业务导致的资源瓶颈,在活动之前做很多的资源采购和准备工作。而在云开发模式下,基于腾讯云海量的大盘计算资源能力,云开发能在活动场景下进行快速的资源自动的弹性,随着活动的结束,相关的资源自动释放,开发者享受了 Serverless 带来的弹性能力,又不用太担心相关的资源管控成本,对活动场景,Serverless 能比较好的提供服务。
吴洪声:提到《创造营2020》,直播投票这种互动感极强的大型营销活动,除了要扛住流量洪峰保证系统的可用性外,同时还要防刷票、防攻击保证活动的安全性。云开发是通过什么方式将羊毛党和黑客拒之门外的?其实这种活动形式很多年前就有了,技术发展到今天,从活动形式到活动安全性带来了什么样的改变?
宁鹏伟:当下大部分羊毛党都是通过破解网络协议、模拟真实请求来实现“薅羊毛”的,让一线的业务开发实现一套安全的通信协议其实非常困难。而云开发从链路上彻底解决了这个问题,直接复用了微信的私有链路进行通信,所以同时也获得了与微信同等级的通信安全保证,破解微信的私有协议几乎是不可能的。这也让一线的业务开发能够专注于业务实现,而不需要担心通信协议和链路是否安全。
云开发本身是 Serverless 的形态,所有资源都是自动扩容、弹性伸缩的,这大大改变了大型活动的开发流程。过去都要先做足够的资源预留,经过一层又一层的压力测试之后才敢上线,并且上线之后也需要运维人员时刻盯着。如果使用云开发,由于资源本身的弹性伸缩特性,基本只需要关注于业务逻辑和数据,大大减轻研发和运维人员的负担。
吴洪声:要说今年刚发布不久的云托管落地实践,Discuz! Q 算一个,通过云开发一键部署 Discuz! Q,对于开发者来说跟传统服务器部署有什么区别?接下来对 Discuz! Q 这类应用的支持还有没有进一步产品化的规划?
宁鹏伟:云开发一键部署 Discuz! Q 不同于传统服务器部署,它是通过我们的云托管(容器引擎)来部署,结合配合云开发自身的一系列能力,提供按量计费、弹性伸缩、自带 CDN 加速、自带免费域名的应用托管。
另外我们也有进一步的规划,比如我们发现部分开发者有二次开发的需求,所以计划支持应用的二次开发,让项目可以基于代码仓库持续构建。我们还计划支持 Serverless Mysql,让依赖的数据库也能按量计费、弹性伸缩。另外为了支持更多 Discuz! Q 这类开源和头部应用的一键部署,我们推出了应用中心,会引入更多优质的应用。
吴洪声:这周日即将举行一年一度的小程序云开发峰会,小程序云开发走到现在已经服务超过50万的开发者,主题从第一届的“不止于快”到这次的“重新定义开发”,这里的转变怎么理解?
宁鹏伟:去年10月,我们已经服务超过50万开发者,今年在开发者数量上我们已经有跨越式增长,更多细节可以关注本周日的小程序云开发技术峰会。
其实最初我们目标只是开发者群体,后来发现很多非技术的同学也在使用,并且收到的反馈非常好。我们调研发现他们的诉求是很强的:产品同学希望通过工具快速试验想法,可以把一些重复的需求独自落地;运营同学希望能使用云开发快速生成一些运营分析的工具。
后来我们就决定在云开发的基础功能之上推出 CMS,还有低代码平台,以及正在策划中的用户增长工具。我们希望“重新定义开发”,借助云开发人人都可以轻松、快速地做出好用的产品。就和现在好多人在学 Python 一样,云开发可以成为云原生时代的一项基础技能。
吴洪声:从一开始对小程序的支持,降低开发者上手门槛,到今年陆续发布静态网站托管、支持多种语言的云托管,对开发Web应用、移动应用这块的支持度也越来越高,腾讯云在云开发的布局是怎么考虑的?具体有哪些动作?
宁鹏伟:首先是基础能力的进一步完善。我们现在已经支持了多端、多平台,包括 Web、Flutter、Unity 等等。我们也提供了很多其他语言的的 API,具体参考我们的文档站:https://docs.cloudbase.net/。开发者基于目前提供的能力,可以很容易地构建出一个 Web 网站。
今年我们还重点推出了云托管,这是一个基于 Knative 的容器化 Serverless 服务。过去很多开发者向我们反馈存量服务迁移到云函数很困难,只能放弃。而新推出的云托管,可以让大部分无状态的服务几乎无痛迁移上来,并且可以非常方便地调用各种微信平台 API 和云上能力。有客户形容基于容器的云托管才是Serverless的终极形态,真正的无损迁移,Serverless化。
当然除了这些基础能力之外,我们还计划提供一系列更好用的运维工具,包括灰度、版本控制、监控日志等等,提升运维效率。比如我们近期上线的全链路日志监控分析功能,开发者可以很方便地看到链路里面哪个接口出了问题,延时怎么样。
吴洪声:上周刚结束了2020 Google 开发者大会,这是谷歌面向开发者展示最新产品和平台的年度盛会,不知道你有没有关注这个大会,连续6天的技术演讲,你对哪一款产品的分享印象比较深刻呢?当下技术瞬息万变,开发者如何跟上技术更迭的脚步来迎接未来?
宁鹏伟:今年的谷歌开发者大会我主要关注了和 Web 技术相关的主题。从这些主题可以明显可以看出 Web 技术依然在不断演进,Google 也在努力推动增强 Web 自身的能力,包括 PWA、各种新的浏览器标准接口、隐私和安全的保护。另外,Flutter 作为 Google 主力跨端平台,今年也有不少重磅更新,云开发目前已经提供了 Flutter SDK,我们接下来也会考虑和 Flutter 平台继续深化合作。
对于开发者而言,我觉得很重要的一点要看到技术的趋势和走向:比如近年来传统的移动端开发已经固化下来,未来可能会被某些跨端框架、平台慢慢替代;比如苹果今年发布了基于 ARM 架构的 MacBook,作为科技风向标,未来的桌面端和移动端开发有慢慢走向统一的趋势;比如各大云厂商的平台愈加完善,从一台虚拟机开始构建服务这种做法可能会成为历史,现在云开发很多用户的新服务一开始就是完整的云原生设计,未来我们估计也会有越来越多的开发者选择直接使用各种云平台来完成自己的服务开发。
吴洪声:腾讯云首届企业级开发者大赛已经全面启动,你认为一个优质的作品应该包含什么?对参与赛者你有什么想说的?
宁鹏伟:腾讯云对中小企业的扶持力度一直很大,帮助中小企业快速实现数字化的商业应用,兼具商业化和技术化。这次的腾讯云企业级开发者大赛项目,面向互联网、金融、教育、工业等各行业企业展开业务应用创新大赛招募与推广,虽然行业不同,但通过参赛得到一个很好的技术探讨以及商业价值交流的机会,是一次很值得投入的项目。希望参赛者都能从中获益,有所收获,加油!
▼点击报名2020小程序云开发峰会
栏目介绍:
大家好,我是吴洪声。
不知不觉,《DNSPod十问》这个栏目,已经做了第二十六期。本来这个栏目叫洪声十问,一期十个问题。然而细心的读者可以发现,问题逐渐变为十一问,十二问。因为在实际采访过程中我发现,十个问题的答案不足以将嘉宾思考上的高度展示给大众。
此外,这个栏目受邀嘉宾的领域也在逐渐的扩大,从域名圈,站长圈到程序员圈,创业者圈。腾讯副总裁丁珂、CSDN董事长蒋涛、Discuz!创始人戴志康、知识星球吴鲁加、腾讯安全学院副院长杨卿等技术大咖、行业领军人物都在这个栏目留下了他们的真知灼见。比如易名中国金小刚说的:“别想着持有对社会有不良影响的域名,这是一个底线。”比如CSDN创始人蒋涛说的:“对于一个技术驱动的公司而言,不断更换新人并不是好事,技术要有一个积累的过程,应该鼓励这些技术人去提升,对技术人员的回报或薪酬、等级要相应地跟管理平行。”
《DNSPod十问》在腾讯云生态圈也极具影响力和活跃度。我们在腾讯内部平台——DNSPod公众号、Discuz! Q公众号、腾讯中小企业服务公众号、腾讯云公众号、腾讯云主机公众号、腾讯云服务器公众号、腾讯云助手、腾讯乐问、腾讯码客圈、腾讯KM平台、腾讯云 社区、腾讯云 大学等平台累计关注度高达数十万,同时我们积极开拓与外部媒体的合作,如腾讯科技、腾讯新闻、新浪微博机构号、CSDN社区技术专栏、知乎机构号、企鹅号、搜狐号、头条号、开源中国技术社区、IT之家、InforQ社区资讯站点、Twitter机构号、Facebook机构号等媒体阅读总量逾百万。
未来我们希望这个栏目的影响力会覆盖更加多元的受众。把更多正确的理念去对外传递。所以也欢迎各位在评论区留下你想看到我对话哪位嘉宾,还有你想问的问题,我们邀请你共同成为“吴洪声十问”栏目的提问者,发声者。(栏目统筹:赵九州 责任编辑:张洁 胡琼文 )
SMB
腾讯云中小企业产品中心
腾讯云中小企业产品中心(简称SMB),作为腾讯云体系中唯一专业服务于8000万中小企业的业务线,致力于为中小微企业提供全面完善贴心的数字化解决方案。产品线覆盖了企业客户从创业起步期、规范治理期、规模化增长期、战略升级期等全生命周期,针对性的解决企业的信息化、数字化、智能化的生产力升级需求。本中心还拥有两大独立腾讯子品牌:DNSPod与Discuz!,在过去15年间,为超过500万企业级客户提供了强大、优质、稳定的IT服务。
SMB团队成员大多都有过创业经历,有获得过知名VC数千万投资的,有被一线互联网巨头以数千万全资收购的,也有开设数十家分公司后技术转型而失败倒闭的,我们成功过,也失败过,我们深知创办企业的难处与痛点,深刻的理解中小企业该如何敏捷起步、规范治理、规模化增长与数字化升级发展,我们会用自己踩坑的经验给出最适合你的答案。
腾讯云中小企业产品中心,助力中小企业数字化升级的好伙伴。
▼点击直达DNSPod官方社区