在开发应用时,可以使用Alibaba Cloud Toolkit(后文简称Cloud Toolkit)插件实现本地应用和部署在EDAS中的应用的相互调用,即端云互联,帮助您提升开发效率。
前提条件
什么是端云互联
端云互联(也称“端云联调”)是一种使用安全通道连接本地应用与云端VPC网络环境的开发方式,处于此模式下的本地应用将能正常访问云端VPC内的资源(如微服务、数据库、缓存、消息队列等),云端VPC内微服务亦能调通本地应用所提供的服务。

处于端云互联中的本地应用流量会通过本地通道服务进程转至云端代理,再由云端代理相应转至注册中心、其他服务、数据库等下游资源中,云端服务也通过代理和通道服务来访问本地应用。端云互联具有如下特性:
- 易用性:在使用过程中,您只需在IDE插件可视化界面中启用端云互联,配置SSH账号并一键初始化,然后正常启动应用即可。插件自动化帮您完成代理配置、通道拉起、请求转发等工作,此过程无需任何人工操作,应用代码无需任何修改。
- 可用性:启用端云互联后本地应用可正常访问云端微服务、数据库、缓存等资源,云端微服务亦能访问本地服务,实现双向互通。端云互联适配Windows、Mac和Linux系统,支持Dubbo、SpringCloud和HSF等微服务框架,相对于同类产品可用性较高。
- 安全性:本地通道服务跟云端代理间基于SSH加密通道进行通信,无需担心通信数据窃取。
使用场景
在云原生时代,开发测试环境部署在云端,本地无法正常启动应用进行调试,由此带来了研发效率的下降。端云互联能够通过IDE插件一键启用本地应用,跟云端资源进行互联互通,以便进行端云联调,提升开发效率。下面为您介绍端云互联常见的使用场景。
- 双向互联和单向访问
双向互联:启用端云互联功能后,本地应用默认注册到云端注册中心并订阅云端注册中心的服务,本地应用中的服务可以和云端服务相互调用。
单向访问:如果仅需要调用云端服务,不希望云端服务调用本地服务,可以选中只订阅云端服务,不注册本地服务。
- 全链路流控
全链路流控是EDAS提供的对服务流量进行细粒度控制的核心能力。通过全链路流控,您可在同一套开发环境中进行多特性开发且相互间不受干扰。例如,如下开发场景:
环境中包含HSF-A、HSF-B、HSF-C、HSF-D四个服务,白色框链路为稳定的基准环境,绿色框链路为正在开发测试的特性分支,通过全链路流控可以使得包含env=2的请求路由到特性分支环境中。而在本地也可以通过端云互联来使得本地应用加入到特性分支环境中,如图所示:
选中加入全链路流控,选择本地服务归属应用和本地服务归属灰度分组,控制请求链路流向。通过全链路流控,您可在同一套开发环境中进行多特性开发且相互间不受干扰。
- 远程调试
远程调试是开发者在开发过程中经常使用的问题排查手段,通过远程调试进行断点调试可方便了解请求处理过程。而当服务部署到云上时,受限于安全要求和环境限制,往往不能直接在本地连接云上服务的调试端口。对于此场景,端云互联提供了基于代理的远程调试模式。安装Cloud Toolkit插件后,打开运行配置界面,可配置Alibaba Cloud Remote Debug运行配置,如图所示:
在实际场景中,您可根据目标IP及调试端口进行设置。保存配置后,即可以调试模式运行,通过提示来确认连接状态。
环境隔离
在项目研发中,一般会区分开发、测试和生产等多套环境,并且在开发过程的不同阶段,使用不同的环境。对于端云互联,我们推荐您在开发或测试环境中使用,以提高研发生产力。但同时有必要对生产环境进行严格的安全控制,以避免数据泄露和影响服务稳定。这里,我们推荐结合专有网络VPC和命名空间对不同环境进行隔离,来保证云上服务的稳定和安全。

开发环境和生产环境分别部署在两个VPC中,这两个环境相互物理隔离。而且开发环境的微服务和生产环境的微服务属于不同命名空间,由注册中心进行服务逻辑隔离。在开发环境VPC中,您可自由选择一台实例开放SSH,使用它来作为开发环境的代理。同时,我们也对本地应用归属的命名空间进行了安全管控,只有在控制台上打开远程调试开关后,本地应用才能选择注册到该命名空间去(默认命名空间除外)。此机制有效的防止本地应用注册到生产命名空间而影响服务稳定。
配置代理
配置单级SSH代理
配置多级代理
对于安全要求极高的项目可能会限制对外开放SSH登录,这种场景可利用端云互联多级代理能力来构建符合安全合规的代理。

配置端云互联
启动本地应用进行端云互联
启动本地应用,如果当前状态处于端云互联状态,那么会有如下提示:

并且,在启动应用之后会启动一个etrans的进程:

更多信息
- 在使用Cloud Toolkit实现端云互联时,如果遇到相关问题,请参见端云互联问题。
- 您可以在EDAS上代理购买ECS,具体操作,请参见创建ECS实例。
- 如果您想使用IntelliJ IDEA插件快速在EDAS上部署应用,请参见使用IntelliJ IDEA部署应用到EDAS。