Nocalhost —— 讓云原生開(kāi)發(fā)回歸原始而又簡(jiǎn)單-ESG跨境

Nocalhost —— 讓云原生開(kāi)發(fā)回歸原始而又簡(jiǎn)單

來(lái)源網(wǎng)絡(luò)
來(lái)源網(wǎng)絡(luò)
2022-04-30
點(diǎn)贊icon 0
查看icon 812

Nocalhost —— 讓云原生開(kāi)發(fā)回歸原始而又簡(jiǎn)單NoHost——讓云原生開(kāi)發(fā)回歸原始簡(jiǎn)單。本文由R&D編碼Nocalhost總監(jiān)王偉在騰訊云CIF工程效率峰會(huì)上分享。大家好,歡迎來(lái)到CIF大會(huì)。今天和大家分享的是:解決Kubernetes應(yīng)用開(kāi)發(fā)的困境。首先,我想簡(jiǎn)單介紹一下我自己。我是騰訊云編碼DevOps的王......

Nocalhost —— 讓云原生開(kāi)發(fā)回歸原始而又簡(jiǎn)單




NoHost——讓云原生開(kāi)發(fā)回歸原始簡(jiǎn)單。

本文由R&D編碼Nocalhost總監(jiān)王偉在騰訊云CIF工程效率峰會(huì)上分享。

大家好,歡迎來(lái)到CIF大會(huì)。今天和大家分享的是:解決Kubernetes應(yīng)用開(kāi)發(fā)的困境。首先,我想簡(jiǎn)單介紹一下我自己。我是騰訊云編碼DevOps的王偉。我現(xiàn)在是Nocalhost項(xiàng)目的研發(fā)主管,也是CNCF大使。事不宜遲,言歸正傳。

這個(gè)分享主要分為五個(gè)方面:

1.第一,K8s環(huán)境下的發(fā)展困境;

2.以及主流的云原生開(kāi)發(fā)方式;

3.接下來(lái),實(shí)現(xiàn)容器應(yīng)用和熱加載的原理;

4.開(kāi)發(fā)和調(diào)試演示,其中一個(gè)演示將用于演示;

5.最后,開(kāi)源共建與展望。

首先第一部分:K8s環(huán)境下的發(fā)展困境。說(shuō)到云原生開(kāi)發(fā),就不得不從Docker說(shuō)起。當(dāng)微服務(wù)越來(lái)越多,運(yùn)行環(huán)境越來(lái)越復(fù)雜的時(shí)候,Docker image為我們提供了一個(gè)很好的解決方案。但是當(dāng)鏡像和容器越來(lái)越多的時(shí)候,服務(wù)的布局就成了一個(gè)難題。這時(shí)候出現(xiàn)了很多方案,比如K8s,Docker Swarm等等。當(dāng)然,K8s幾乎已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn),成為容器布局的首選方案,但是這個(gè)事實(shí)上的標(biāo)準(zhǔn)提供的能力是面向操作的。例如,我們可以通過(guò)活躍度和就緒度來(lái)定義服務(wù)的自動(dòng)恢復(fù)機(jī)制,通過(guò)資源來(lái)定義資源使用情況。這些定義實(shí)際上給開(kāi)發(fā)者增加了很大的額外負(fù)擔(dān),也造成了開(kāi)發(fā)和調(diào)試之間的兩難。

另外,云原生技術(shù)棧跨度非常大,對(duì)開(kāi)發(fā)者提出了更高的要求,這也要求團(tuán)隊(duì)設(shè)計(jì)出更加符合業(yè)務(wù)需求的云原生架構(gòu)。所以總體來(lái)說(shuō),對(duì)于企業(yè)來(lái)說(shuō),招聘和用工的成本也更高。

下圖是CNCF云原生應(yīng)用開(kāi)發(fā)全景圖。我們會(huì)發(fā)現(xiàn),云原生開(kāi)發(fā)工具這個(gè)環(huán)節(jié)還是缺失的。云原生開(kāi)發(fā)這么難,那么主流的開(kāi)發(fā)方式是什么或者我們現(xiàn)在怎么解決問(wèn)題

經(jīng)過(guò)總結(jié),目前有四種云原生開(kāi)發(fā)方式:

1.全手工流程。例如,手動(dòng)構(gòu)建和推快遞鏡像,修改鏡像版本,等待時(shí)間表生效。每次我們看到編碼效果時(shí),我們都稱(chēng)之為編碼的反饋回路。這種開(kāi)發(fā)方式編碼的反饋循環(huán)大概需要十分鐘,是一個(gè)非常漫長(zhǎng)的過(guò)程。

2.全自動(dòng)流程,也就是手動(dòng)環(huán)節(jié)變成了自動(dòng)。這種方法顯然會(huì)更快,但它的反饋回路只縮短到五分鐘左右。

3.第三種是對(duì)云原生比較了解的團(tuán)隊(duì)經(jīng)常使用的方案,即以網(wǎng)真為工具進(jìn)行開(kāi)發(fā)。網(wǎng)真主要是連接本地和集群網(wǎng)絡(luò),讓開(kāi)發(fā)者在本地開(kāi)發(fā)。這種開(kāi)發(fā)方式將編碼的反饋循環(huán)減少到了10秒,但是由于開(kāi)發(fā)服務(wù)是以源代碼的形式在本地運(yùn)行的,這種方式有一定的局限性,后面我會(huì)深入講解。

4.第四種是使用Nocalhost,直接在容器中開(kāi)發(fā)。這樣就可以擺脫臨場(chǎng)感在某些場(chǎng)景下的局限性。

接下來(lái),我們來(lái)詳細(xì)說(shuō)說(shuō)以網(wǎng)真為代表的網(wǎng)絡(luò)接入方案的使用限制。首先,它最大的局限性是本地環(huán)境與工作負(fù)載的運(yùn)行環(huán)境差異較大,導(dǎo)致業(yè)務(wù)源代碼很難在本地運(yùn)行。例如,業(yè)務(wù)聲明安裝配置映射、機(jī)密、卷等。在K8s Manifest中,很難在本地重建。其次,還有環(huán)境的差異,跨平臺(tái)的差異,比如Linux和Windows之間的差異,以及某些場(chǎng)景下的網(wǎng)絡(luò)限制。

說(shuō)了這么多,相信大家都能明白,在K8s環(huán)境下開(kāi)發(fā)最大的問(wèn)題就是每次查看代碼都需要重構(gòu)圖像,導(dǎo)致漫長(zhǎng)而無(wú)效的等待。有沒(méi)有不需要重建鏡像的解決方案答案是肯定的。如果我們可以在容器中實(shí)現(xiàn)進(jìn)程或應(yīng)用程序的熱加載,并且每次編碼后都能實(shí)時(shí)生效,那我們就不需要重新構(gòu)建映像了嗎

接下來(lái),我們將繼續(xù)討論該方法的實(shí)現(xiàn)原理和方案。先說(shuō)Dockerfile。Dockerfile定義了容器的啟動(dòng)命令。一般來(lái)說(shuō),這是業(yè)務(wù)流程的啟動(dòng)模式。比如運(yùn)行一個(gè)可執(zhí)行文件,如果我們進(jìn)入容器執(zhí)行PS命令,會(huì)發(fā)現(xiàn)這個(gè)進(jìn)程對(duì)應(yīng)的是容器,也就是PID = 1的進(jìn)程。我們以圍棋應(yīng)用為例。如果這個(gè)PID = 1的進(jìn)程換成在源代碼中運(yùn)行,go run main.go,能否實(shí)現(xiàn)應(yīng)用熱加載修改完代碼后,我們只需要重新運(yùn)行這個(gè)命令就可以看到代碼效果了

我們的思路沒(méi)有錯(cuò),但是要實(shí)現(xiàn)這個(gè)方案,還需要三個(gè)條件。首先是容器的源代碼從哪里來(lái)除了腳本語(yǔ)言,一般的業(yè)務(wù)容器沒(méi)有源代碼;二是以Go應(yīng)用為例。編譯環(huán)境從何而來(lái)我們知道,一般情況下構(gòu)建的業(yè)務(wù)容器會(huì)因?yàn)榇鎯?chǔ)大小而保持最小的可運(yùn)行環(huán)境;第三,如果PID = 1的進(jìn)程被替換,如何停止容器崩潰

我們來(lái)分別看一下如何解決這些問(wèn)題。首先,源代碼問(wèn)題可以通過(guò)從本地同步到容器來(lái)解決。第二是編譯環(huán)境。我們可以通過(guò)用帶有編譯環(huán)境的開(kāi)發(fā)映像替換正在運(yùn)行的業(yè)務(wù)映像來(lái)提供編譯環(huán)境。第三,我們可以把PID = 1的進(jìn)程換成阻塞的進(jìn)程,這三個(gè)問(wèn)題就解決了。我們實(shí)現(xiàn)這些方案的時(shí)候,容器已經(jīng)有基礎(chǔ)帶熱加載了,Nocalhost的原理就是基于上面的方案。接下來(lái),我將使用一個(gè)演示程序來(lái)演示應(yīng)用程序的熱加載和一鍵調(diào)試的效果。

Nocalhost為VSCode和JetBrains提供了全方位的插件,一旦安裝就可以立即使用。接下來(lái),我將以Golang's為例,演示演示項(xiàng)目Booking for的開(kāi)發(fā)。

容器應(yīng)用的實(shí)時(shí)熱加載和一鍵調(diào)試演示到此結(jié)束。有興趣的同學(xué)可以根據(jù)Nocalhost(nocalhost.dev)官網(wǎng)的快速入門(mén)說(shuō)明試一試。

通過(guò)演示,相信你已經(jīng)了解了Nocalhost帶來(lái)的全新云原生開(kāi)發(fā)體驗(yàn)。最后一部分,我會(huì)和大家分享開(kāi)源共建的前景。目前Nocalhost是一個(gè)完全開(kāi)源的項(xiàng)目,代碼托管在GitHub上,擁有900+star。這也是一個(gè)CNCF景觀項(xiàng)目,它包括在云原生全景。也歡迎您的關(guān)注和貢獻(xiàn)。

關(guān)于展望,在這次分享中,我介紹了兩種開(kāi)發(fā)方式,Telepresence和Nocalhost。他們實(shí)際上有不同的解決問(wèn)題的想法。可以根據(jù)自己的業(yè)務(wù)情況選擇一種方式使用。此外,Nocalhost提供了開(kāi)發(fā)環(huán)境和開(kāi)發(fā)過(guò)程的完整管理功能。對(duì)于想要統(tǒng)一管理開(kāi)發(fā)環(huán)境的團(tuán)隊(duì),可以安裝Nocalhost Server來(lái)集中管理開(kāi)發(fā)集群、應(yīng)用和開(kāi)發(fā)環(huán)境。當(dāng)然,服務(wù)器也是開(kāi)源免費(fèi)的。在這里,我提供一些服務(wù)器的截圖。有興趣的同學(xué)可以按照官方文檔安裝使用。

我的分享到這里。


文章推薦
Lazada常見(jiàn)開(kāi)店術(shù)語(yǔ),lazada店鋪流量大不出單怎么回事,lazada新開(kāi)的店鋪要怎么有流量
惠州到加拿大FBA注意事項(xiàng),深圳到加拿大fba
lazada賣(mài)家工具——seller picks,lazada賣(mài)家注冊(cè),lazada賣(mài)家中心網(wǎng)址
惠州敏感貨物品寄國(guó)際快遞注意事項(xiàng),惠州國(guó)際快遞關(guān)稅


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國(guó)平臺(tái)交流群
加入
韓國(guó)平臺(tái)交流群
掃碼進(jìn)群
歐洲多平臺(tái)交流群
加入
歐洲多平臺(tái)交流群
掃碼進(jìn)群
美國(guó)賣(mài)家交流群
加入
美國(guó)賣(mài)家交流群
掃碼進(jìn)群
ESG跨境專(zhuān)屬福利分享群
加入
ESG跨境專(zhuān)屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長(zhǎng)交流群
加入
亞馬遜跨境增長(zhǎng)交流群
掃碼進(jìn)群
亞馬遜跨境增長(zhǎng)交流群
加入
亞馬遜跨境增長(zhǎng)交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣(mài)家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣(mài)家交流群
掃碼進(jìn)群
2025跨境電商營(yíng)銷(xiāo)日歷
《2024年全球消費(fèi)趨勢(shì)白皮書(shū)——美國(guó)篇》
《2024TikTok出海達(dá)人營(yíng)銷(xiāo)白皮書(shū)》
《Coupang自注冊(cè)指南》
《eMAG知識(shí)百科》
《TikTok官方運(yùn)營(yíng)干貨合集》
《韓國(guó)節(jié)日營(yíng)銷(xiāo)指南》
《開(kāi)店大全-全球合集》
《TikTok綜合運(yùn)營(yíng)手冊(cè)》
《TikTok短視頻運(yùn)營(yíng)手冊(cè)》
通過(guò)ESG入駐平臺(tái),您將解鎖
綠色通道,更高的入駐成功率
專(zhuān)業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營(yíng)實(shí)操指導(dǎo)
運(yùn)營(yíng)提效資源福利
平臺(tái)官方專(zhuān)屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問(wèn)

平臺(tái)顧問(wèn)

平臺(tái)顧問(wèn) 平臺(tái)顧問(wèn)

微信掃一掃
馬上聯(lián)系在線顧問(wèn)

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營(yíng)干貨 關(guān)閉
進(jìn)行中
進(jìn)行中
2025跨境電商營(yíng)銷(xiāo)日歷
包括傳統(tǒng)中、外重要節(jié)日及重點(diǎn)電商營(yíng)銷(xiāo)節(jié)點(diǎn)還對(duì)營(yíng)銷(xiāo)關(guān)鍵市場(chǎng)、選品輔以說(shuō)明,讓你的365天安排的明明白白!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
【平臺(tái)干貨】eMAG知識(shí)百科
涵蓋從開(kāi)店到大賣(mài)6個(gè)板塊:開(kāi)店、運(yùn)營(yíng)、廣告、選品、上架、物流
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
TikTok運(yùn)營(yíng)必備干貨包
包含8個(gè)TikTok最新運(yùn)營(yíng)指南(市場(chǎng)趨勢(shì)、運(yùn)營(yíng)手冊(cè)、節(jié)日攻略等),官方出品,專(zhuān)業(yè)全面!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國(guó)coupang平臺(tái)自注冊(cè)指南
韓國(guó)Coupang電商平臺(tái)從注冊(cè)準(zhǔn)備、提交申請(qǐng)到完成注冊(cè),開(kāi)店全流程詳細(xì)指引。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——全球合集
涵括全球100+個(gè)電商平臺(tái)的核心信息,包括平臺(tái)精煉簡(jiǎn)介、競(jìng)爭(zhēng)優(yōu)勢(shì)、熱銷(xiāo)品類(lèi)、入駐要求以及入駐須知等關(guān)鍵內(nèi)容。
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國(guó)電商節(jié)日營(yíng)銷(xiāo)指南
10+韓國(guó)電商重要營(yíng)銷(xiāo)節(jié)點(diǎn)詳細(xì)解讀;2024各節(jié)日熱度選品助力引爆訂單增長(zhǎng);8大節(jié)日營(yíng)銷(xiāo)技巧輕松撬動(dòng)大促流量密碼。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺(tái)詳解——?dú)W洲篇
涵蓋20+歐洲電商平臺(tái),詳細(xì)解讀優(yōu)勢(shì)、入駐條件、熱銷(xiāo)品等
立即領(lǐng)取