暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

神州数码云基地 2022-06-14
696



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/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 5:选择 DevMode(Duplicate) 


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



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



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





        至此,Nocalhost安装完毕~


        扫描下方二维码,

        加入群聊,更多云原生的故事等你来解锁!




         #更多精彩内容 





        文章转载自神州数码云基地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论