扫码阅读
手机扫码阅读

Nocalhost就是好,云原生开发没烦恼~

251 2023-09-07

Cloud Native

ESG服务BU云原生交付中心、云基地

在云原生上的尝试、调研与分享

本期作者

王凯

一名默默学习的程序员

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

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

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


#1 什么是Nocalhost

云原生时代的开发难题

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

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

开发者面临的难题

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

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

/ 开发者面临的难题

管理者面临的难题

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

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

破局的Nocalhost

重新定义云原生开发环境

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

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

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

接下来

我们就开始 Nocalhost的安装

#2 Nocalhost安装

Step 1:安装 IDE 插件

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

https://nocalhost.dev/zh-CN/docs/installation/

Step 2: 查看 KubeConfig

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

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

Step 3: 添加集群信息

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

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

Step 4:配置服务

选择某一个服务,右键 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/shexport GOPROXY=https://goproxy.cndlv --headless --log --listen :9009 --api-version 2 --accept-multiclient debug ./cmd/"$1"/main.go  # run.sh#! /bin/shexport GOPROXY=https://goproxy.cngo run ./cmd/"$1"/main.go

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

Step 5: 选择 DevMode(Duplicate)

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

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

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

至此,Nocalhost安装完毕 ~

原文链接: http://mp.weixin.qq.com/s?__biz=Mzg5MzUyOTgwMQ==&mid=2247504463&idx=1&sn=131a55714783df34f65e25e5b44a6b63&chksm=c02fe9e9f75860ff99b894459cb889c73b3b6b3e9651971aed375b11cbe20ce5fdca04cb2695#rd