Nocalhost功能演示
目录
Nocalhost功能演示
使用Nocalhost与目前开发流程的对比
| 问题 | 现有流程 | Nocalhost |
|---|---|---|
| 成本 | 6个测试环境,一个线上环境 | 一个开发环境,一个测试环境,一个线上环境 |
| 发布 | 改一点代码发一次流水线 | 本地修改代码,云端自动同步,无需重新打包 |
| 环境 | 每个需求单独占用一套环境 | 大家公用一套环境 |
| 调试 | 调试某个微服务自有流程 | 调试某个业务流程和难以重现的问题。 |
| 开发 | 在本地启动N个依赖才能启动 | 直接调用环境中的依赖 |
| 控制 | rancher控制服务信息、日志、配置等 | IDE控制服务信息、日志、配置等 |
本地开发时,解除微服务依赖
假设某个微服务启动时,需要依赖其他组件,如果本地直接启动这个微服务,则无法启动成功。

需要在本地启动依赖服务。
如果使用Nocalhost进行开发。可以看到并没有报错。

实现逻辑:
该终端运行命令启动,实际上是在云端k8s容器中进行启动,启动的环境也是在k8s中,那此时代码启动时,使用的的环境变量仍是之前在yaml中配置过的那些。(可在上图中查看env,并没有配置app2)

接管以前配置,使用k8s dns请求便能进行连接原本环境中的依赖,无需像传统开发时,本地启动依赖。
本地IDE接手线上流量

使用Nocalhost IDE远程运行的容器,支撑业务流量
Nocalhost分为两种模式:一种是代理模式,用IDE中运行的代码代替线上运行的来提供服务。一种是开发模式:即另起一个容器,可以连接其他组件,但是不接收任何流量。
多人同环境研发互不影响

在使用Nocalhost 开发模式时,不接受任何流量的特点,此时多人同时使用Nocalhost,并不影响该k8s集群中原来的所有组件正常运行。并且图中nh-app1和nh-app2仍可以请求正常dev环境中的其他组件。
多微服务多人研发互不影响

当开发某个需求,需要两个或以上微服务同时编码开发。
在使用Nocalhost时,可以用IDE启动多个窗口,运行多个容器,其他功能相同。
若多个开发者PC2、PC3也如此操作,均不会影响dev环境的正常运行。
注意,nocalhost微服务在需要互相连接时,需要使用环境变量覆盖之前的环境变量,以免连接到原始环境中的服务。
整套环境运行时进行Debug
调试代码的配置文件

配置对应开发语言的调试插件,图中go代码使用插件go-delve的dlv,右键应用,选择Remote Debug,进行调试。

程序运行起来后即进入调试模式。

请求一下该服务的api,触发断点。

可以看到,成功获取debug数据
CloudNativeQingFeng