年迈程序员基于Cloud IDE开发APISIX项目的故事

2022-12-23

67

原文作者:马大帅


很多朋友听过老马讲云原生,但可能不知道其实老马是程序员出身呢。回想当年,在大学时就已经是CSDN上VC的版主啦。后来一路Delphi,Java, Python走来,走着走着就从开发做到咨询、解决方案然后创业行云… 虽然还是每周和同事们讨论技术架构、产品方案,但确实对于今天流行的Golang, Node.js什么的已经有点”力不从心”了。也总想找个机会学习研究一下,但又总觉得环境搭建好复杂啊,我这台15年的笔记本还能不能承受Goland + VS CODE一缸子IDE之重呢,另外我也实在不想因为“小试牛刀”在笔记本又装了一堆ETCD, MySQL什么的… 当然这些都是给“懒惰”找了个借口,但如果“开发环境变得唾手可得”,我也可以随时上来练练手,哈哈。


行云自18年开始做TitanIDE产品,虽然公司内部已经“狗粮 ”很久了,也有大量的客户朋友在TitanIDE上进行着各类开发,无奈本人最多写的还是各种Hello World,直到受到APISIX和阿里云的邀请,在线上Meetup上讲讲Cloud IDE … 因为疫情也很久没有线下Meetup了,我想是时候拿出点本人的硬功夫了,即然是受APISIX和阿里云的邀请,我想在阿里云上把TitanIDE跑起来,然后现场演示后端、前端、测试多角色协同开发APISIX项目,岂不是妙哉?


原以为准备工作要很复杂,没想到出奇的容易,一方面得益于APISIX-Dashboard这个项目代码确实准备的对开发者比较友好,二是自然我们TitanIDE功能强大、方便使用  是不是老马卖瓜,请往下看。


第一步,为了演示TitanIDE优秀的使用体验,也是便于下载Github代码,我在阿里云日本东京站申请了一台云主机,规格16G内存,如果您想免费下载TitanIDE自己体验,也没有太重的开发场景,8GB也是够的。TitanIDE安装很快,不到10分钟吧,就能用了。


基于Cloud IDE开发APISIX项目


然后到APISIX-Dashboard的开发文档上学习一下:https://apisix.apache.org/docs/dashboard/develop/


发现他由Golang 的后端服务和Node.js的前端所构成,我就到TitanIDE的模板库里,找到了GoLand 开发模板和Node.js 开发模板,顺带手的也下载了Postman模板,也是几分钟就在TitanIDE里安装好了。


基于Cloud IDE开发APISIX项目


为了演示效果,我创建了一个崭新的开发工空间,专门为APISIX三类开发者:后端、前端、测试协同开发使用,然后又在这个开发空间里,通过刚才安装的开发模板,创建了后端开发项目(Goland)、前端开发项目(VS CODE)、测试项目(Postman):


基于Cloud IDE开发APISIX项目


我先从后端的Golang开始,把代码导入(https://github.com/apache/apisix-dashboard.git),再看看文档,哦 还需要一个ETCD存数据呢,怎么办?


原来TitanIDE产品设计早就考虑到了这一点:其实这个运行起来的Goland工作区是在K8s的一个POD,而我们之前创建的开发空间apisix-dashboard-t3是对应K8s一个Namespace,那我只需要在同一Namespace里安装etcd 就行了!更赞的是,只要切到Goland的Terminal,直接就可以使用helm命令安装etcd:

helm repo add etcd-repo https://charts.bitnami.com/bitnami

helm install etcd etcd-repo/etcd


安装好后,在IDE右下角服务列表中会看到etcd 的服务名和端口,再把它配置到代码目录 conf/conf.yaml 即可:


基于Cloud IDE开发APISIX项目


此时就可以跟着文档 make api-run 把服务跑起来了!


基于Cloud IDE开发APISIX项目


右侧端口列表可以看到 9000号已经出来了,点开访问一下,浏览器提示404,这是正常现现,因为后端是没有页面的:


基于Cloud IDE开发APISIX项目


但API是否正常可以工作呢?这时候测试人员该登场了,进入测试人员开发环境Postman,之前在本地Postman使用的配置也可以导出后,利用TitanIDE的文件上传功能上传到个人或是共享目录,然后在TitanIDE上Postman中导入这些配置:


基于Cloud IDE开发APISIX项目


跑一跑看看效果,从APISIX后台上成功登录拿到Token并用Token成功获得Route列表:


基于Cloud IDE开发APISIX项目


这一步说明后台服务功能正常了,那后面就是把前端跑起来了。


前端开发人员进入基于VS CODE的前端模板,模板中已经内置了对Node.js 开发的支持,导入代码后,跟着文档先修改一下后端服务地址存放的 .env 文件:


基于Cloud IDE开发APISIX项目


然后就可以在Terminal里yarn install 和 yarn start 了,等一会后会发现8000端口已经开放了:


基于Cloud IDE开发APISIX项目


这时访问8000端口,会出现如下情况:


基于Cloud IDE开发APISIX项目


这是因为APISIX-Dashboard 前端在子路径模式下不能正常工作:

http://hongxi.titanide.cn/app/apisix-dashboard-t3/apisix-dashboard-web/8000/


在TitanIDE 8000端口上设置一下,改为子域名方式访问即可:


基于Cloud IDE开发APISIX项目


访问路径改为:

http://8000-apisix-dashboard-web-apisix-dashboard-t3.hongxi.titanide.cn/


之后一切正常了:

基于Cloud IDE开发APISIX项目


到这里我的准备工作顺利完成了,在12月17日的交流,我用了大约15分钟从头演示了一遍,过程中还遇到电脑掉电的小插曲,恰恰是因为采用了Cloud IDE,我电脑开机后又接回到云上开发环境,代码都留在那儿,完全不必担心代码没有保存而丢失。后来Meetup现场有朋友问到代码虽然没在本地存,但如果拷贝出来,也会导致丢失怎么办呢?这也是TitanIDE产品核心功能点,包括防止代码拷贝、屏幕水印、双因素等等安全功能,并且是可以按开发者账号来分别设置开关的。还有朋友迫不及待的想要安装到自己的私有云里——没有问题,甚至我们有些用户是先用自己电脑上虚拟机试用过后才申请云资源的。


这次使用TitanIDE来搭建了一个APISIX-Dashboard的开发环境,还算不上是真正参与到开发里来,但有了这个环境 我就可以随时点开,学习一下Go和Node的代码,改改试试,对我这位年迈程序员来说,也是个学习的好思路。如果大伙想试试,随时可以免费下载TitanIDE来体验。


TitanIDE免费下载地址>>



技术交流
我们建了一个云原生技术交流群,其中有来自Oracle、Citrix、华为、腾讯等国内外云计算专家,立即扫码,拉你进群。目前已有1000+开发者加入我们......
云原生厂商 云原生技术服务商
在云原生时代,行云创新致力于通过赋能开发者,实现企业快速迭代与交付,大幅提升创新效率。
免费试用