从零入门 Serverless | SAE 的远程调试和云端联调
作者 | 弈川 阿里巴巴云原生团队
导读:本节课程包含三部分内容,前两个部分简单介绍远程调试以及端云联调的原理,最后在 Serverless 应用引擎中进行实际演示。
经过之前课程的学习,相信大家对于 Serverless 应用引擎(SAE)已经有了一定的了解,SAE 是一款基于容器与 kuberneters 的应用 PaaS 平台,在 SAE 提供的 Serverless 场景下,我们不需要再关注底层资源的运维,只需要关注应用的业务逻辑本身。但是,我们在开发测试阶段通常会需要用到调试功能,因此,为了方便用户调试,我们提供了远程调试功能,目前只支持 Java 程序的远程调试。
远程调试
Java 远程调试原理
众所周知,我们的 Java 程序是运行在 Java 虚拟机(JVM)之上的,JVM 不单单为我们的 Java 程序提供了跨平台能力,并且也提供了相应接口与协议方便远程调试。JDK 中有一个叫 JPDA 的体系来规范与支持 Java 程序的调试,在这个体系中,调试发起者与被调试程序的 JVM 底层分别由 JDI 与 JVMTI 模块来支持,而两个接口之间则是有 JDWP 来负责相互之间的通信。
由此可见,远程调试的本质就是两个 JVM 通过一个连接保持通信,被调试的程序作为服务端,在某个指定的端口监听调试指令,而调试发起者则是作为客户端连接目标端口,发送各种调试指令并且接收调试状态。
我们此时已经了解了 Java 程序远程调试的原理,那么对于部署在 SAE 中的 Java 应用是如何实现远程调试的?
SAE 中的 Java 远程调试
首先,在 SAE 部署的 Java 应用需要先开启调试模式,因此需要在部署应用时添加相关的启动命令。另外,由于 SAE 的应用默认是无法提供公网访问的,所以需要一个 SLB 提供公网访问能力。以上两条都设置好之后,最后可以获得一个调试程序用 IP 与端口,将这个 IP+端口 设置到 IDE 中就能够开始远程调试了。
注:以上操作见文章【实操演示】部分。
端云联调
除了远程调试,对于微服务的应用,端云联调也是一个非常重要的功能。
我们在微服务架构下的开发测试过程中,经常会遇到需要上线一个新的服务或者更新一个旧服务的版本的情况。如果没有端云联调,我们只能先在测试环境测试之后再上线生产环境。而通常测试环境与生产环境有着这样那样的差异,导致有些隐藏的问题无法被及时发现。
而有了端云联调功能后,在正式上线之前,我们能够直接实现本地服务与部署在云端的服务相互调用,这样就能够方便我们更加贴近实际生产环境进行调试。
首先,部署在 SAE 上的服务与本地网络上是有隔离的,所以需要在同一个 VPC 下购买一个 ECS 充当跳板机。借助这个跳板机我们可以通过 IDEA 的插件完成本地服务在云端注册中心的注册与服务发现。最后即可完成端云互联,进行端云联调。
实操演示
最后对 SAE 提供的远程调试与端云联调功能进行实际演示,演示过程请点击这里进行观看。
从零入门 Serverless | SAE 的远程调试和云端联调的更多相关文章
- 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践
作者 | 落语 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 S ...
- 从零入门 Serverless | SAE 的极致应用部署效率
作者 | 文俊 阿里巴巴云原生团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...
- 从零入门 Serverless | 课时5 函数的调试与部署
作者 | 江昱 阿里巴巴高级产品经理 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 S ...
- 从零入门 Serverless | 在线应用的 Serverless 实践
作者 | 唐慧芬(黛忻) 阿里云产品专家 导读:毫无疑问,Serverless 能够在效率和成本上给用户带来巨大收益.那具体到落地又应该怎么做呢?本文就给大家详细解读 Serverless 的落地实践 ...
- 从零入门 Serverless | 教你使用 IDE/Maven 快速部署 Serverless 应用
作者 | 许成铭(竞霄) 阿里云开发工程师 SAE 应用部署方式 1. SAE 概述 首先,简单介绍一下 SAE.SAE 是一款面向应用的 Serverless PaaS 平台,支持 Spring C ...
- 从零入门 Serverless | 一文详解 Serverless 技术选型
作者 | 李国强 阿里云资深产品专家 今天来讲,在 Serverless 这个大领域中,不只有函数计算这一种产品形态和应用类型,而是面向不同的用户群体和使用习惯,都有其各自适用的 Serverless ...
- 从零入门 Serverless | Serverless Kubernetes 应用部署及扩缩容
作者 | 邓青琳(轻零) 阿里云技术专家 导读:本文分为三个部分,首先给大家演示 Serverless Kubernetes 集群的创建和业务应用的部署,其次介绍 Serverless Kuberne ...
- 从零入门 Serverless | 企业级 CI/CD 工具部署 Serverless 应用的落地实践
背景知识 通过以往几节课程的学习,相信大家对于 SAE 平台已经有了一定的了解.SAE 为客户免除了很多复杂的运维工作,开箱即用.按用量付费:与此同时 SAE 提供了丰富的 Open API,可以很容 ...
- 从零入门 Serverless | Serverless 应用如何管理日志 & 持久化数据
作者 | 竞霄 阿里巴巴开发工程师 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 Se ...
随机推荐
- 一个基于activiti审批流程示例,如何与系统整合
前言 目前市场上有很多开源平台没有整合工作流,即使有,也是价格不菲的商业版,来看这篇文章的估计也了解了行情,肯定不便宜.我这个快速开发平台在系统基础功能(用户管理,部门管理-)上整合了工作流,你可以直 ...
- 基于Linux系统的MariaDB数据库的安装配置
数据库是指长期存储在计算机内.有组织的和可共享的数据集合.表是数据库存储数据的基本单位,一个表由若干个字段组成 MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 G ...
- Oracle环境配置之山路十八弯
Oracle数据库的安装 背景: 因为疫情原因,只能在家上网课,学习Oracle的时候需要安装数据库,但是!! 安装的时候出现了报错: 无法检查指定的位置是否位于 CFS 上. 出来这个基本无解,这个 ...
- SVN无法查看最近日志和提交记录
现象: 使用SVN查看最近的提交记录日志时,最近总是无法显示出全部的日志内容,只能显示到几天之前的日志.就算是自己刚提交的代码也是无法没有记录的. 解决方式:右键选择TortoiseSVN中的&quo ...
- C#中的“等待窗体”对话框
这篇文章向您展示了如何在c#.net Windows窗体应用程序中创建一个等待窗体对话框.创建一个新表单,然后输入您的表单名称为frmWaitForm.接下来,将Label,Progress Bar控 ...
- Nginx:无处不在的Nginx的八个应用场景与配置
--- 阅读时间约 15 分钟 --- Nginx概述 众所周知,互联网已经离不开 WEB服务器 ,技术领域中 WEB服务器 不止 Nginx 一个,其他还有很多如 Apache . ...
- LVS+keepalived集群
一.Keepalived工具介绍专为LVS和HA设计的一款健康检查工具 支持故障自动切换(Failover) 支持节点健康状态检查(Health Checking) 官方网站:http://www.k ...
- Apache网页优化
目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...
- -bash: ulimit: core file size: cannot modify limit: Operation not permitted
一.问题描述 使用普通用户执行某个软件加载环境变量时报错 -bash: ulimit: core file size: cannot modify limit: Operation not permi ...
- HDU - 3790 最短路径问题 (dijkstra算法)
HDU - 3790 最短路径问题 Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费 ...