作者 | 弈川 阿里巴巴云原生团队

导读:本节课程包含三部分内容,前两个部分简单介绍远程调试以及端云联调的原理,最后在 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 的远程调试和云端联调的更多相关文章

  1. 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践

    作者 | 落语 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 S ...

  2. 从零入门 Serverless | SAE 的极致应用部署效率

    作者 | 文俊 阿里巴巴云原生团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...

  3. 从零入门 Serverless | 课时5 函数的调试与部署

    作者 | 江昱 阿里巴巴高级产品经理 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 S ...

  4. 从零入门 Serverless | 在线应用的 Serverless 实践

    作者 | 唐慧芬(黛忻) 阿里云产品专家 导读:毫无疑问,Serverless 能够在效率和成本上给用户带来巨大收益.那具体到落地又应该怎么做呢?本文就给大家详细解读 Serverless 的落地实践 ...

  5. 从零入门 Serverless | 教你使用 IDE/Maven 快速部署 Serverless 应用

    作者 | 许成铭(竞霄) 阿里云开发工程师 SAE 应用部署方式 1. SAE 概述 首先,简单介绍一下 SAE.SAE 是一款面向应用的 Serverless PaaS 平台,支持 Spring C ...

  6. 从零入门 Serverless | 一文详解 Serverless 技术选型

    作者 | 李国强 阿里云资深产品专家 今天来讲,在 Serverless 这个大领域中,不只有函数计算这一种产品形态和应用类型,而是面向不同的用户群体和使用习惯,都有其各自适用的 Serverless ...

  7. 从零入门 Serverless | Serverless Kubernetes 应用部署及扩缩容

    作者 | 邓青琳(轻零) 阿里云技术专家 导读:本文分为三个部分,首先给大家演示 Serverless Kubernetes 集群的创建和业务应用的部署,其次介绍 Serverless Kuberne ...

  8. 从零入门 Serverless | 企业级 CI/CD 工具部署 Serverless 应用的落地实践

    背景知识 通过以往几节课程的学习,相信大家对于 SAE 平台已经有了一定的了解.SAE 为客户免除了很多复杂的运维工作,开箱即用.按用量付费:与此同时 SAE 提供了丰富的 Open API,可以很容 ...

  9. 从零入门 Serverless | Serverless 应用如何管理日志 & 持久化数据

    作者 | 竞霄 阿里巴巴开发工程师 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 Se ...

随机推荐

  1. openCV入门系列教学(一) 图像的读取、展示与保存

    序言 笔者最近做了两个CV领域的项目,因为数据量不足所以主要使用的是传统的CV方法.这时候不得不夸一句opencv库,让复杂的算法原理变得如此简单(调包调参侠表示很骄傲).所以闲暇下来对opencv的 ...

  2. https(ssl) 免费证书

    https://letsencrypt.org/getting-started/ https://certbot.eff.org/lets-encrypt/centosrhel7-nginx http ...

  3. 一文读懂Base64编码

    Base64编码 字符对应表 上表就是用来表示Base64,一共64个字符,A-Z,a-z,0-9,+,-,还有=(作为补位) 无论将文件,字符串,还是什么转为Base64,一定是用上表的字符表示. ...

  4. NOIP模拟38:b

      这是T2.   一个容斥(其实也可以欧拉反演做,但是我不会).   首先开一个桶,记录第i行的j有多少个.   然后枚举1-\(maxn\),枚举他的值域内的倍数,记录倍数在第i行有多少个,将个数 ...

  5. Git 系列教程(11)- 分支简介

    前言 很多版本控制系统都有分支这个概念 使用分支意味着可以将日常工作从主线上脱离,从而避免影响主线 Git 鼓励在工作流程中频繁使用分支和合并 Git 是如何保存数据的 Git 保存的不是文件的变化或 ...

  6. appnium显式等待机制

    强制等待: sleep不推荐全局隐式等待 全局隐式等待: 在服务端等待 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); ...

  7. 小白也能看懂的dubbo3应用级服务发现详解

    搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 本文已收录 https://github.com/lkxiaolou/lkxiao ...

  8. [第十五篇]——Swarm 集群管理之Spring Cloud直播商城 b2b2c电子商务技术总结

    Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具.它将 Docker 主机池转变为单个虚拟 Docker 主机. Docker Swarm 提供了标准的 Dock ...

  9. Oracle体系结构一

    总体结构分为三个部分:SGA,PGA,FILE文件 按功能分: 存储结构  存储结构对应关系  主要文件: 数据文件: 每个数据文件只与一个数据库相关联 一个表空间可以包含一个或者多个数据文件 一个数 ...

  10. 机器学习——softmax回归

    softmax回归 前面介绍了线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如 softmax 回归在内的分类 ...