创新推出 | Serverless 调试大杀器:端云联调

简介:端云联调功能,不仅提升了 Serverless 应用的开发者的开发效率并且带来了良好的开发体验;让本地开发环境突破网络限制,真正实现和云端环境融为一体,一文带你了解,端云联调功能是如何解决应用调试难题的。

作者:西流

背景

说起当前最火一个技术, 不可避免地讨论到一个概念:Serverless。作为一种新型的应用架构,Serverless 让我们摆脱了维护基础设施的繁琐,只需要上传代码包或者镜像, 即可得到一个弹性、高可用、免运维、低成本的服务。

听上去很美的 Serverless 在实际落地开发过程中,却确存在一些痛点。比如您在使用 Serverless 的过程中,肯定有如下的困扰:

  • 使用函数计算 Custom Runtime/Container 想要一键平迁原有 SpringBoot,Python Flask,ThinkPHP 等各种语言框架的应用,实例启动过程中需要访问云端环境中的其他服务(如数据库或者注册中心),遇到应用启动不起来时,该怎么排查原因?
  • 应用采用微服务架构,涉及到多个服务。能否在本地代码开发完成后快速进行端对端测试?
  • 事件驱动的应用,通过事件源触发函数,环节多,链路长,能不能在本地快速测试整个链路?
  • ……

业界的调研报告(hacknoon serverless report[1])也体现调试是 Serverless 落地最大的障碍。目前业界已有的 Serverless 应用调试手段,主要是在本地模拟云端执行环境进行本地调试;而远端环境中运行的应用则主要靠日志。由于在本地无法模拟真实的云端环境,因此本地调试无法解决上述问题,为此我们推出了业界创新的端云联调功能,解决 Serverless 应用调试的难题。

端云联调

Serverless Devs 的端云联调[2]功能,核心思路是要让本地开发环境突破网络的限制,和云端环境融为一体。开发者通过端云联调能在本地启动实例,和云端环境无缝连通,快速进行测试和问题调试。端云联调能帮助开发者:

  1. 变更代码,实时查看结果,调试迭代的闭环最短。例如要开发的服务被其他服务依赖,当本地代码开发完成后,最好能发起端对端的测试,看看改动有没有 break 调用方服务。如果采用传统方式,需要把代码部署到远端,发起测试才可以,流程很冗长。
  2. 能够复用本地丰富的开发调试工具,效率最高。例如调查远端环境中的测试用例失败,以往只能靠日志。如果能把生产流量导入到本地环境的实例上,使用本地环境上各种 IDE 进行调试,是不是很爽?

如下图所示,端云联调在本地开发机和云端应用的 VPC 环境间建立一条安全的隧道连接。访问云端应用的流量将自动转发到本地开发机上;同时本地实例对外访问的网络流量也被自动转发到云端应用的 VPC 环境中。比如在本地实例访问云端的 RDS 数据库实例,传统方式开发者如果在本地进行调试开发的话, 只能放开 RDS 实例的公网访问或者购买 VPN 服务实现本地访问线上 VPC。而使用端云联调,不需要任何配置的改变,可以直接以内网的方式访问 RDS 实例。

开启端云联调

用户只要在 s.yaml 的目录下, 执行 s proxied setup,这个命令做了如下事情:

  1. 根据您 s.yaml 的 vpc 配置等信息创建一个辅助的 Service/Function,  并对辅助函数预留1个实例。该辅助函数的作用是作为代理服务,本地实例所有进出流量都会通过该代理服务。
  2. 启动本地环境的代理容器实例, 通过通道服务, 和 1 中的 FC 网络代理容器实例建立一条双向通信 TCP 隧道。
  3. 启动本地的函数容器实例, 比如您是 Custom Runtime 直接跑 SpringBoot 应用, 启动 SpringBoot 的本地函数容器实例和 2 中的代理容器实例共享网络, springboot 应用已经能内网访问线上 VPC 资源。
  4. 本地函数容器实例启动成功, 即可以开始调试,直接使用 s proxied invoke 或者 curl 自定义域名调用辅助的 Service/Function, 流量会通过代理服务打回到本地函数容器实例, 开启本地 IDE 对实例内的应用进行断点调试。

关闭端云联调

因为会有一个辅助函数预留1个实例, 所以调试结束后, 您可以手动清理资源, 以免产生不必要的费用。

  1. 在开启端云联调的终端, 直接 CTRL + C 中断
  2. 或者在另外一个终端,在相同的目录下执行 s proxied cleanup

使用上面 1 或者 2 其中一个方法即可, 如果您不放心, 可以多次执行 s proxied cleanup。

即使您忘记清理, 如果本地开发机关机或者断网, 通道 session 会自动关闭, 预留的资源也会自动清理。

实战场景举例

以阿里云函数计算一个真实的企业客户为例:小王是一个业务驱动型的公司的开发, 公司为了提高业务迭代效率, 技术架构向全面云原生化演进, 减少基本设施的管理和运维, 架构大致如下:

小王将迭代最频繁的对外的前后端分离的项目都一键迁移到函数计算的 Custom Runtime,在其中 SpringBoot 的项目需要能使用各种 VPC 内网地址访问下游服务(比如注册中心或者其他微服务接口),这个时候Serverless Devs 提供的端云联调[3]就可以派上用场了, 只需要在 s.yaml (s.yaml 中定义了函数的 VPC 配置) 所在目录下执行:

$ s proxied setup

该命令会和云端 VPC 环境建立安全的网络通道,并在本地启动应用实例。此时本地实例可以无缝访问云端 VPC 环境内的资源,比如使用内网地址访问注册中心、RDS、 Kafka 等。这意味着您的应用配置不需要任何改变,就可以在本地和云端环境内的资源交互。

与此同时,直接使用这个SpringBoot后端项目对应在函数计算 FC 上的自定义域名,流量将被路由到本地应用实例上。比如,您的前端项目部署到 FC 的函数名字是 frontend, 对应的自定义域名是 frontend.abc.com。前端依赖的后端服务部署在 FC 上的函数名字是 backend,对应的自定义域名是 backend.abc.com。这个时候,您直接浏览器打开 fronted.abc.com,进行有后端请求的操作,流量就自动从线上路由到本地的 SpringBoot 实例,同时 SpringBoot 的日志在终端实时显示,甚至您也可以使用断点调试来自线上的流量。

假设本地启动 SpringBoot 后端项目的实例失败,可能的原因包括函数计算的 VPC 配置不对, 对应的下游服务有白名单限制等等。此时您在本地就可以重现和云端环境实例相同的启动过程,这对排查实例启动方面的问题极其有帮助。如下图所示:

我们从本地实例的启动过程信息就可以明确定位到原因是 Nacos 访问不通,我们需要查看函数是否正确配置了 Nacos 所在的 VPC 信息,或者 Nacos 是否有白名单限制等等。

总结

最后我们简单用一张表格总结本地调试和端云联调的差异:

Serverless 作为云计算下一年十年默认的计算范式, 目前调试在 Serverless 最大的挑战之一, 相比其他友商只提供本地调试的能力,阿里云函数计算创新性地提出了端云联调, 并通过工具实现了很好的开发者体验, 大大提升了Serverless 应用的开发者的开发效率和幸福感, 人生苦短, 我用 Serverless!原文链接本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密立根油滴实验的计算机仿真实验报告,H-D光谱实验的计算机仿真

对H-D光谱实验进行计算机仿真,由计算机控制的摄谱仪进行氢氘光谱摄谱,对谱线寻峰,计算出里德伯常量、氢氘质量比和同位素位移,并画出了氢原子的能谱图。维普资讯 http://www.wendangwang.com第2 7卷第9期物理实验PH Y SI CS EXPERI EN TA T 1 N M 0Vo . 7 NO 9 12 .Se p., 0 20…

独家交付秘籍之招式拆解(第一回)

简介:上一回说到经历种种交付难题的王小锤一行人,意外发现一本交付秘籍,打开了新世界。本次他们带着具体交付场景来到阿里云,与交付宗师阿莫探讨秘籍中的招式以及招式背后的秘密。 作者:吕莫、新钰 前情介绍 大家好…

白鲸开源再获数千万元融资,完善 DataOps 开源生态,打造下一代云原生智能DataOps平台

Apache DolphinScheduler是首个由国人主导并贡献到Apache的大数据工作流调度领域的顶级项目。作为已经十分流行的开源调度项目,已有48位Committer和21位PMC,360 Contributors 积极参与到社区的共建中。自开源以来,Apache DolphinScheduler稳步…

国内唯一,阿里云容器服务进入 Forrester 领导者象限

简介:近日,国际权威咨询机构 Forrester 发布《 The Forrester WaveTM: Public Cloud Container Platforms, Q1 2022 》报告,报告显示,阿里云进入全球公共云容器平台"领导者"象限,这是中国云计算厂商首次进入…

K8s Ingress Provider 为什么选择 MSE 云原生网关?

简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代,Ingress…

在 Kubernetes 上执行 GitHub Actions 流水线作业

作者 | Addo Zhang来源 | 云原生指北GitHub Actions 是一个功能强大、“免费” 的 CI(持续集成)工具。与之前介绍的 Tekton 类似,GitHub Actions 的核心也是 Pipeline as Code 也就是所谓的流水线即代码。二者不同的是,GitHub Act…

将信息系学生的计算机文化学,计算机等级考试(国家)-关系数据库操作语言sql(四)...

计算机等级考试(国家)-关系数据库操作语言sql(四) (8页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!10.90 积分关系数据关系数据库库操作操作语语言言SQL(四四)设计题设计题 在SQL Server 2000中&a…

系统困境与软件复杂度,为什么我们的系统会如此复杂

简介:读 A Philosophy of Software Design 有感,软件设计与架构复杂度,你是战术龙卷风吗? 作者 | 聂晓龙(率鸽) 来源 | 阿里技术公众号 读 A Philosophy of Software Design 有感,软件设计与架…

节省 58% IT 成本,调用函数计算超过 30 亿次,石墨文档的 Serverless 实践

简介:石墨文档使用函数计算搭建文档实时编辑服务,由函数计算的智能调度系统自动分配执行环境,处理多用户同时编写文档带来的峰值负载,函数计算的动态扩缩容能力保障应用的可靠运行。 作者 | 金中茜 对石墨文档来说,“…

剖析 Netty 内部网络实现原理

作者 | 张彦飞allen来源 | 开发内功修炼Netty 是一个在 Java 生态里应用非常广泛的的网络编程工具包,它在 2004 年诞生到现在依然是火的一塌糊涂,光在 github 上就有 30000 多个项目在用它。所以要想更好地掌握网络编程,我想就绕不开 Netty。…

免费体验,阿里云智能LOGO帮你解决设计难题

简介:超实用!零基础搞定一个高大上的智能logo设计 新年过后,往往是大家一年中士气最足的时候,散去了年末的疲惫和emo,重燃对新一年的热情和希望。 想创业的朋友们同样意气风发,趁着新年的劲头想大干一场。…

第十一届吴文俊人工智能科学技术奖颁奖盛典召开,66个项目成果摘得中国智能科学技术奖励最高殊荣

7月16日上午,我国智能科学技术最高奖“吴文俊人工智能科学技术奖”颁奖盛典在北京隆重举行,66个获奖项目及个人受到表彰奖励。中国工程院院士、浙江大学教授潘云鹤荣获“吴文俊人工智能最高成就奖”,并颁授荣誉奖牌和100万人民币奖金。欧洲科学院院士、华…

企业拥抱开源之前,必须了解的七件事

简介:新的时代,开源的发展越来越蓬勃,开源和云的关系越来越复杂,耦合度越来越高,云是开源软件允许的最佳环境之一,也为开源软件插上安全高效的腾飞引擎。本文试图从企业软件的历史,结合开源软件…

荔枝音质高保真AI降噪技术分享

“荔枝音频处理目标就是两个字:清静——清晰、安静。让用户听得更清晰、更真切、更好。”荔枝集团技术副总裁刘晓宇谈及音频技术要攻克的几个难点时一针见血地提到。 随着疫情下直播、在线社交、在线课堂、在线会议等快速发展和元宇宙产业不断壮大,音频…

19年兰州大学计算机分数线,兰州大学2019年在广东省录取分数线

免费申请学习规划请选择在读年级学前小学初中高中大学留学其他已为10472位学员提供学习规划*验证码*短信验证码{"text1":{"label":"薄弱科目","placeholder":"请输入你的薄弱科目","required":1,"formType&q…

最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解

简介:云上私有池系列终篇终于来了,本文将重点介绍构建云上的私有池(虚拟IDC)的多种方案和各自的优缺点,并给出相关的性价比优化建议。 本文作者:阿里云技术专家李雨前 摘要 围绕私有池(虚拟I…

阿里云万郁香:多样付费选择构筑成本最优的弹性体验

简介:云上成本优化三部曲:云上资源归属拆解、确定资源需求及购买优先级、选择最佳的付费方式。 2021年12月21日,阿里云弹性计算年度峰会在上海举行,本次峰会通过全实景直播的形式为大家呈现。峰会上,阿里云弹性计算高…

智能分层、满足更高工作负载,亚马逊云科技加速云端存储服务创新

编辑 | 宋慧 出品 | CSDN 云计算 分布式存储 Amazon S3、弹性计算 Amazon EC2,都是亚马逊云科技的当家产品。在云原生、人工智能、数据分析领域继续发挥技术优势,夯实云技术领先的地位之后,亚马逊云科技在存储领域的研究和发展也没有止步不前…

计算机开机黑屏,开机黑屏,电脑无法进入系统

win10开机进安全模式我相信经常用电脑的童鞋也遇到过这样的问题,就是桌面上什么都没有,电脑也开着。怎么了?通常,不显示桌面有很多原因。如何解决这个问题?等等,别担心,小...相信经常使用电脑的…

最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南

简介:业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入、最大化业务收益始终是不同客户间的…