云原生集成開(kāi)發(fā)環(huán)境——TitanIDE
通過(guò)網(wǎng)頁(yè)在任何地方更安全、更高效地編碼2022-12-23
711
原文作者:馬大帥
很多朋友聽(tīng)過(guò)老馬講云原生,但可能不知道其實(shí)老馬是程序員出身呢。回想當(dāng)年,在大學(xué)時(shí)就已經(jīng)是CSDN上VC的版主啦。后來(lái)一路Delphi,Java, Python走來(lái),走著走著就從開(kāi)發(fā)做到咨詢、解決方案然后創(chuàng)業(yè)行云… 雖然還是每周和同事們討論技術(shù)架構(gòu)、產(chǎn)品方案,但確實(shí)對(duì)于今天流行的Golang, Node.js什么的已經(jīng)有點(diǎn)”力不從心”了。也總想找個(gè)機(jī)會(huì)學(xué)習(xí)研究一下,但又總覺(jué)得環(huán)境搭建好復(fù)雜啊,我這臺(tái)15年的筆記本還能不能承受Goland + VS CODE一缸子IDE之重呢,另外我也實(shí)在不想因?yàn)椤靶≡嚺5丁痹诠P記本又裝了一堆ETCD, MySQL什么的… 當(dāng)然這些都是給“懶惰”找了個(gè)借口,但如果“開(kāi)發(fā)環(huán)境變得唾手可得”,我也可以隨時(shí)上來(lái)練練手,哈哈。
行云自18年開(kāi)始做TitanIDE產(chǎn)品,雖然公司內(nèi)部已經(jīng)“狗糧 ”很久了,也有大量的客戶朋友在TitanIDE上進(jìn)行著各類開(kāi)發(fā),無(wú)奈本人最多寫的還是各種Hello World,直到受到APISIX和阿里云的邀請(qǐng),在線上Meetup上講講Cloud IDE … 因?yàn)橐咔橐埠芫脹](méi)有線下Meetup了,我想是時(shí)候拿出點(diǎn)本人的硬功夫了,即然是受APISIX和阿里云的邀請(qǐng),我想在阿里云上把TitanIDE跑起來(lái),然后現(xiàn)場(chǎng)演示后端、前端、測(cè)試多角色協(xié)同開(kāi)發(fā)APISIX項(xiàng)目,豈不是妙哉?
原以為準(zhǔn)備工作要很復(fù)雜,沒(méi)想到出奇的容易,一方面得益于APISIX-Dashboard這個(gè)項(xiàng)目代碼確實(shí)準(zhǔn)備的對(duì)開(kāi)發(fā)者比較友好,二是自然我們TitanIDE功能強(qiáng)大、方便使用 是不是老馬賣瓜,請(qǐng)往下看。
第一步,為了演示TitanIDE優(yōu)秀的使用體驗(yàn),也是便于下載Github代碼,我在阿里云日本東京站申請(qǐng)了一臺(tái)云主機(jī),規(guī)格16G內(nèi)存,如果您想免費(fèi)下載TitanIDE自己體驗(yàn),也沒(méi)有太重的開(kāi)發(fā)場(chǎng)景,8GB也是夠的。TitanIDE安裝很快,不到10分鐘吧,就能用了。
然后到APISIX-Dashboard的開(kāi)發(fā)文檔上學(xué)習(xí)一下:https://apisix.apache.org/docs/dashboard/develop/
發(fā)現(xiàn)他由Golang 的后端服務(wù)和Node.js的前端所構(gòu)成,我就到TitanIDE的模板庫(kù)里,找到了GoLand 開(kāi)發(fā)模板和Node.js 開(kāi)發(fā)模板,順帶手的也下載了Postman模板,也是幾分鐘就在TitanIDE里安裝好了。
為了演示效果,我創(chuàng)建了一個(gè)嶄新的開(kāi)發(fā)工空間,專門為APISIX三類開(kāi)發(fā)者:后端、前端、測(cè)試協(xié)同開(kāi)發(fā)使用,然后又在這個(gè)開(kāi)發(fā)空間里,通過(guò)剛才安裝的開(kāi)發(fā)模板,創(chuàng)建了后端開(kāi)發(fā)項(xiàng)目(Goland)、前端開(kāi)發(fā)項(xiàng)目(VS CODE)、測(cè)試項(xiàng)目(Postman):
我先從后端的Golang開(kāi)始,把代碼導(dǎo)入(https://github.com/apache/apisix-dashboard.git),再看看文檔,哦 還需要一個(gè)ETCD存數(shù)據(jù)呢,怎么辦?
原來(lái)TitanIDE產(chǎn)品設(shè)計(jì)早就考慮到了這一點(diǎn):其實(shí)這個(gè)運(yùn)行起來(lái)的Goland工作區(qū)是在K8s的一個(gè)POD,而我們之前創(chuàng)建的開(kāi)發(fā)空間apisix-dashboard-t3是對(duì)應(yīng)K8s一個(gè)Namespace,那我只需要在同一Namespace里安裝etcd 就行了!更贊的是,只要切到Goland的Terminal,直接就可以使用helm命令安裝etcd:
helm repo add etcd-repo https://charts.bitnami.com/bitnami
helm install etcd etcd-repo/etcd
安裝好后,在IDE右下角服務(wù)列表中會(huì)看到etcd 的服務(wù)名和端口,再把它配置到代碼目錄 conf/conf.yaml 即可:
此時(shí)就可以跟著文檔 make api-run 把服務(wù)跑起來(lái)了!
右側(cè)端口列表可以看到 9000號(hào)已經(jīng)出來(lái)了,點(diǎn)開(kāi)訪問(wèn)一下,瀏覽器提示404,這是正常現(xiàn)現(xiàn),因?yàn)楹蠖耸菦](méi)有頁(yè)面的:
但API是否正常可以工作呢?這時(shí)候測(cè)試人員該登場(chǎng)了,進(jìn)入測(cè)試人員開(kāi)發(fā)環(huán)境Postman,之前在本地Postman使用的配置也可以導(dǎo)出后,利用TitanIDE的文件上傳功能上傳到個(gè)人或是共享目錄,然后在TitanIDE上Postman中導(dǎo)入這些配置:
跑一跑看看效果,從APISIX后臺(tái)上成功登錄拿到Token并用Token成功獲得Route列表:
這一步說(shuō)明后臺(tái)服務(wù)功能正常了,那后面就是把前端跑起來(lái)了。
前端開(kāi)發(fā)人員進(jìn)入基于VS CODE的前端模板,模板中已經(jīng)內(nèi)置了對(duì)Node.js 開(kāi)發(fā)的支持,導(dǎo)入代碼后,跟著文檔先修改一下后端服務(wù)地址存放的 .env 文件:
然后就可以在Terminal里yarn install 和 yarn start 了,等一會(huì)后會(huì)發(fā)現(xiàn)8000端口已經(jīng)開(kāi)放了:
這時(shí)訪問(wèn)8000端口,會(huì)出現(xiàn)如下情況:
這是因?yàn)锳PISIX-Dashboard 前端在子路徑模式下不能正常工作:
http://hongxi.titanide.cn/app/apisix-dashboard-t3/apisix-dashboard-web/8000/
在TitanIDE 8000端口上設(shè)置一下,改為子域名方式訪問(wèn)即可:
訪問(wèn)路徑改為:
http://8000-apisix-dashboard-web-apisix-dashboard-t3.hongxi.titanide.cn/
之后一切正常了:
到這里我的準(zhǔn)備工作順利完成了,在12月17日的交流,我用了大約15分鐘從頭演示了一遍,過(guò)程中還遇到電腦掉電的小插曲,恰恰是因?yàn)椴捎昧薈loud IDE,我電腦開(kāi)機(jī)后又接回到云上開(kāi)發(fā)環(huán)境,代碼都留在那兒,完全不必?fù)?dān)心代碼沒(méi)有保存而丟失。后來(lái)Meetup現(xiàn)場(chǎng)有朋友問(wèn)到代碼雖然沒(méi)在本地存,但如果拷貝出來(lái),也會(huì)導(dǎo)致丟失怎么辦呢?這也是TitanIDE產(chǎn)品核心功能點(diǎn),包括防止代碼拷貝、屏幕水印、雙因素等等安全功能,并且是可以按開(kāi)發(fā)者賬號(hào)來(lái)分別設(shè)置開(kāi)關(guān)的。還有朋友迫不及待的想要安裝到自己的私有云里——沒(méi)有問(wèn)題,甚至我們有些用戶是先用自己電腦上虛擬機(jī)試用過(guò)后才申請(qǐng)?jiān)瀑Y源的。
這次使用TitanIDE來(lái)搭建了一個(gè)APISIX-Dashboard的開(kāi)發(fā)環(huán)境,還算不上是真正參與到開(kāi)發(fā)里來(lái),但有了這個(gè)環(huán)境 我就可以隨時(shí)點(diǎn)開(kāi),學(xué)習(xí)一下Go和Node的代碼,改改試試,對(duì)我這位年邁程序員來(lái)說(shuō),也是個(gè)學(xué)習(xí)的好思路。如果大伙想試試,隨時(shí)可以免費(fèi)下載TitanIDE來(lái)體驗(yàn)。