作者 | 纳海 阿里巴巴高级开发工程师

导读:上篇我们介绍了应用成功上云后,面对应用的管理,如何做可灰度的线上发布,那么当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试?

相关文章推荐:

  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)》

前言

当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试?

这些步骤都比较繁琐。现在 EDAS 提供了端云联调的工具,让您在本地就可以启动应用并且能跟云端服务联调。只需三个步骤,您就可以在本地获得跟云端服务联调的能力,下面我们一起来体验吧!

打开调试开关

默认情况下,EDAS 端云联调功能是关闭的,只有打开命名空间中的调试开关后,本地服务才能跟云端联调。您可以只对开发环境的命名空间开启端云联调,而对其他环境保持关闭,这样既方便本地开发,也保证其他环境服务稳定。

EDAS 命名空间的默认关闭状态如下所示,打开开关即可启用此功能:

准备可远程访问的节点

EDAS 端云联调只需一个可远程 SSH 的 Kubernetes 集群节点即可,如果您已具备这样的节点可跳过此节,否则可参考如下步骤来进行配置。

在 Kubernetes 集群内任意选择一个机器节点,进入 ECS 实例详情,绑定一个弹性公网 IP:

绑定弹性公网 IP 后,需要设置实例安全组规则以放通 SSH 端口的流量。进入实例安全组,设置入方向规则允许访问 SSH 的 22 端口:

上图中的授权对象 0.0.0.0/0 表示 22 端口对公网开放,您可以根据本地网络的公网出口 IP 来设置授权对象,只允许您所在的网络访问实例的 22 端口,进一步提升安全系数。

最后,设置实例登录密码并重启即可完成 SSH 配置:

配置插件

现在我们来配置 IDE 插件来启用端云联调。此功能支持 Intellij IDEA 和 Eclipse 两种 IDE ,配置流程相同,下面以 Intellij IDEA 来说明配置参数。

打开 IDE 配置页面,选择 Alibaba Cloud Toolkit -> EDAS 页面,勾选 Join EDAS Registry 选项,如下所示:

参数说明如下:

  • Region:您的 Kubernetes 集群及服务所在区域;
  • Namespace:EDAS命名空间,如未看到所需的命名空间,请参考上面的《打开调试开关》小节打开端云联调功能;
  • Gateway Host:可远程 SSH 的节点,请参考上面的《准备可远程访问的节点》小节来配置;
  • Username:可远程 SSH 的账号名。这里可填入一个不存在的账号,插件会进行检测,如不存在则进行创建;
  • Password:可远程 SSH 的账号密码。如果账号不存在,则插件使用此密码来创建账号;
  • Server Port:您的 Spring Cloud 项目服务端口。

填入以上信息后,点击页面上的 Add SSH Rule 按钮进行配置,插件会提示授予 root 权限来进行代理配置:

授予 root 权限,点击 Add 完成配置。至此,您已完成全部的配置流程,团队成员可直接复用上述配置的 SSH 的节点、账号和密码,无需重新配置。

启动应用进行联调

现在我们跟平常一样启动本地应用,IDE 会提示当前处于端云联调状态:

在此状态下,本地服务能正常调用云端服务,云端服务也能调用本地服务。另外,您也可以使用 IDE 的调试模式来启动本地应用,端云联调同样生效。

结语及后续

在本篇文章中,我们介绍了 EDAS 端云联调工具,借助此工具本地服务能跟云端服务进行联调。端云联调对于可重现的问题来说是一个非常高效的解决方案,但不适用于如下问题:

  • 已发生的问题;
  • 不能稳定重现的问题;

对于这样的问题,我们有更好用的解决方案:APM 监控。通过 APM 监控,您可以方便的查看分析系统异常、服务异常、接口异常等各种异常信息,下一讲我们将详细介绍《APM 监控》。

首届云原生微服务大会

首届云原生微服务大会 PC 端地址:https://developer.aliyun.com/topic/microservices2020#/

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

bk3432开发的应用实例_SpringCloud应用在Kubernetes上的最佳实践—诊断(线上联调)...相关推荐

  1. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:在上一篇文章<SpringCloud 应用在 Kubernetes 上的云上实践 - 开发篇>中讲到 ...

  2. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 前言 近年来,云原生.Kubernetes.微服务.SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 ...

  3. SpringCloud应用在Kubernetes上的最佳实践—开发部署

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:在上一篇文章<SpringCloud 应用在 Kubernetes 上的云上实践 - 开发篇>中讲到 ...

  4. SpringCloud应用在Kubernetes上的最佳实践—开发篇

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 前言 近年来,云原生.Kubernetes.微服务.SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 ...

  5. bk3432开发的应用实例_《Javaweb开发实例大全》限时免费啦!

    Java Web,是用Java技术来解决相关web互联网领域的技术栈.web包括:web服务端和web客户端两部分.Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的 ...

  6. 彼之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践

    作者:sherrywasp https://www.cnblogs.com/sherrywasp/p/9436623.html "描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的 ...

  7. 生产环境和开发环境_环境部署:开发、测试和线上环境的区别

    点击蓝字 关注我们 软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件 ...

  8. 汝之蜜糖,吾之砒霜— 聊聊软件开发中的最佳实践

    文章来源:https://www.cnblogs.com/sherrywasp/p/9436623.html 作者:sherrywasp "描述一个事物,唯有一个名词定义它的概念,唯有一个动 ...

  9. 软件开发:最佳实践 != 过度设计

    点击上方"全球Java架构师集中营",选择"设为星标" 技术文章第一时间送达! 作者:sherrywasp  来源:http://1t.click/YVy 先讲 ...

最新文章

  1. Firefox 46解决安全问题,改善性能
  2. TiDB 官方设计文档翻译(二)
  3. 二分匹配(匈牙利算法)
  4. 使用js代码将HTML Table导出为Excel
  5. Windows 环境下运用Python制作网络爬虫
  6. gradient设置上下渐变_PaintCode Mac使用教程:如何使用渐变色
  7. byte[]、sbyte[]、int[]以及Array的故事
  8. Android开发之高德API篇:2、高德API线路规划
  9. 解决 MyEclipse 的耗内存卡死的办法
  10. python 特征选择卡方_4. 机器学习之特征选择-Python代码
  11. Java中的方法重载(overload)
  12. python文本自动伪原创_手把手教你使用python制作伪原创工具
  13. draco压缩引擎学习笔记(二)
  14. 中国移动下月发布5G套餐:“三不一快”策略方便终端入网
  15. Springboot整合Redis实现腾讯云发送短信验证码并实现注册功能
  16. apache实验报告 linux_Apache服务器配置实验报告
  17. 手把手教你 合并分支到master上
  18. UE4_关于Roll,Yaw,Pitch,Rotator的理解
  19. Qt 5.7设置调试器
  20. formality 命令/变量的使用及各种设置

热门文章

  1. python制作u盘病毒_十行代码--用Python写一个USB病毒!
  2. vim 全局替换_高效操作:vim 快速删除空行和注释
  3. C++基础与深度解析第三章:数组、vector与字符串
  4. c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc
  5. Linux系统中的CPU利用率
  6. git switch
  7. Java 时间处理 PeriodDuration
  8. python contextlib closing
  9. flask-前端-requests之response对应关系 img
  10. 1.11 神经网络的权重初始化