目录

Nocalhost功能演示

Nocalhost功能演示

使用Nocalhost与目前开发流程的对比

问题 现有流程 Nocalhost
成本 6个测试环境,一个线上环境 一个开发环境,一个测试环境,一个线上环境
发布 改一点代码发一次流水线 本地修改代码,云端自动同步,无需重新打包
环境 每个需求单独占用一套环境 大家公用一套环境
调试 调试某个微服务自有流程 调试某个业务流程和难以重现的问题。
开发 在本地启动N个依赖才能启动 直接调用环境中的依赖
控制 rancher控制服务信息、日志、配置等 IDE控制服务信息、日志、配置等

本地开发时,解除微服务依赖

假设某个微服务启动时,需要依赖其他组件,如果本地直接启动这个微服务,则无法启动成功。

../images/yanshi01.png

需要在本地启动依赖服务。

如果使用Nocalhost进行开发。可以看到并没有报错。

../images/yanshi02.png

实现逻辑:

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

../images/yanshi03.png

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

本地IDE接手线上流量

../images/yanshi04.png

使用Nocalhost IDE远程运行的容器,支撑业务流量

Nocalhost分为两种模式:一种是代理模式,用IDE中运行的代码代替线上运行的来提供服务。一种是开发模式:即另起一个容器,可以连接其他组件,但是不接收任何流量。

多人同环境研发互不影响

../images/yanshi05.png

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

多微服务多人研发互不影响

../images/yanshi06.png

当开发某个需求,需要两个或以上微服务同时编码开发。

在使用Nocalhost时,可以用IDE启动多个窗口,运行多个容器,其他功能相同。

若多个开发者PC2、PC3也如此操作,均不会影响dev环境的正常运行。

注意,nocalhost微服务在需要互相连接时,需要使用环境变量覆盖之前的环境变量,以免连接到原始环境中的服务。

整套环境运行时进行Debug

调试代码的配置文件

../images/yanshi07.png

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

../images/yanshi08.png

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

../images/yanshi09.png

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

../images/yanshi10.png

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