目录

一、什么是Nocalhost

1.1 云原生时代的开发难题

1.2 破局的Nocalhost——重新定义云原生开发环境

二、Nocalhost安装

Step 1:安装 IDE 插件

Step 2:查看 KubeConfig

Step 3:配置服务

Step 4:选择 DevMode(Duplicate)


业务越做越大,应用系统越来越复杂,面对数量日渐激增的“微服务”,要开发一个“微服务”应用可谓是越来越难。而这里最痛切的难点,莫过于云原生环境给开发带来的重重挑战——本地开发难以调试、与生产不一致、开发测试环境混乱..

而在2020年,云原生开发者可谓是久逢甘露,Nocalhost“横空出世”,彻底打破了开发难的僵局,让云原生开发回归原始与简单。

本期文章我就来带大家简要了解什么是Nocalhost,并贴心地提供一份Nocalhost的安装指南,帮助大家快速体验Nocalhost~

一、什么是Nocalhost

1.1 云原生时代的开发难题

随着业务的快速发展,应用系统也越来越大,一般来说,组织结构越大,应用系统就越详细,“微服务”的数量也随之增加,而这也对日常开发造成了极大的不便。

虽说 Kubernetes 降低了“微服务”应用在部署和运维阶段的复杂度,但我们可不要忽视了关键的开发阶段,这里正是“重灾区”!

开发者面临的难题

对于开发者来说,数量过多的服务不便开发者本地部署整个系统,而在云端调式在操作上更加繁琐,无论是镜像拉取对网络资源,还是通过日志查看断点信息的输出,都极大降低了生产效率。

此外,开发者还面临着如下的难题:

/ 开发者面临的难题

管理者面临的难题

云原生技术栈跨度大、架构设计紧贴业务需求,从而对开发人员的要求更高,随之而来企业招聘及用人成本也水涨船高。

管理者该如何管理开发人员的开发环境?如何让新入职的同事快速进行开发?

1.2 破局的Nocalhost——重新定义云原生开发环境

Nocalhost 的出现彻底颠覆了以往困难重重的开发模式。

我们可以把 Nocalhost 视作一个连通云端和本地 IDE 的桥梁,代码的更改可以实时从 IDE 同步到云端,避免镜像提交,推送或拉取等操作。

无须在本地部署整体环境,开发者可以通过 Nocalhost 直接开发和调试复杂框架下的远程微服务,大大提高了开发效率。

二、Nocalhost安装

Step 1:安装 IDE 插件

这里我们提供 Nocalhost 官方提供的 IDE 安装指南链接:

安装 Nocalhost | Nocalhost​nocalhost.dev/zh-CN/docs/installation/正在上传…重新上传取消

Step 2:查看 KubeConfig

kubectl config view --minify --raw --flatten

温馨提示:Nocalhost 官网写的这个命令是错的。

Step 2:添加集群信息

Goland 插件添加集群信息,点击添加,将命令查出来的信息,复制粘贴到下图信息栏中。

添加成功后会出现远程集群信息:

Step 3:配置服务

选择某一个服务,右键 Dev Config ,对该服务进行配置。

会提示是否通过浏览器辅助配置:

这里我们选择“是”,然后进入配置页面:

配置文件:

name: "user"
  serviceType: "deployment"
  containers:
    -
      name: "user"
      dev:
        gitUrl: ""
        image: "nocalhost-docker.pkg.coding.net/nocalhost/dev-images/golang:latest"
        shell: "bash"
        workDir: ""
        storageClass: ""
        resources:
          limits:
            memory: "2048Mi"
            cpu: "2"
          requests:
            memory: "512Mi"
            cpu: "0.5"
        persistentVolumeDirs: []
        command:
          run:
            - "./run.sh"
            - "user"
          debug:
            - "./debug.sh"
            - "user"
        debug:
          language: "go"
          remoteDebugPort: 9009
        hotReload: true
        sync:
          type: "send"
          mode: "pattern"
          filePattern:
            - "."
          ignoreFilePattern:
            - ".git"
          deleteProtection: true
        env: []
        portForward: []
        sidecarImage: ""

注意:command 中的 run 命令和 debug 命名执行的脚本,需要预先创建在源码文件夹中:

# debug.sh
#! /bin/sh
export GOPROXY=https://goproxy.cn
dlv --headless --log --listen :9009 --api-version 2 --accept-multiclient debug ./cmd/"$1"/main.go
 

# run.sh
#! /bin/sh
export GOPROXY=https://goproxy.cn
go run ./cmd/"$1"/main.go

其中,我们建议开启 hotReload,也就是热加载

Step 4:选择 DevMode(Duplicate)

这里要注意,构建完 DevMode 后,可以在 Terminal 信息中看到构建的容器,最好使用 ls 命令查看源码是否包含在内。(如果使用 ls 命令后,容器内什么文件都没有,就存在异常)

构建完毕后,选择服务,右键选择 Run 或者 debug:

会提示没有权限,记得给 run.sh 和 debug.sh 赋予权限:

至此,Nocalhost安装完毕~


版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。

公众号搜索神州数码云基地,后台回复云原生,加入云原生技术交流群!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐