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

Nocalhost —— 讓云原生開發(fā)回歸原始而又簡單

來源網(wǎng)絡
來源網(wǎng)絡
2022-04-30
點贊icon 0
查看icon 792

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

Nocalhost —— 讓云原生開發(fā)回歸原始而又簡單




NoHost——讓云原生開發(fā)回歸原始簡單。

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

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

這個分享主要分為五個方面:

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

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

3.接下來,實現(xiàn)容器應用和熱加載的原理;

4.開發(fā)和調試演示,其中一個演示將用于演示;

5.最后,開源共建與展望。

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

另外,云原生技術??缍确浅4?,對開發(fā)者提出了更高的要求,這也要求團隊設計出更加符合業(yè)務需求的云原生架構。所以總體來說,對于企業(yè)來說,招聘和用工的成本也更高。

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

經過總結,目前有四種云原生開發(fā)方式:

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

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

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

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

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

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

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

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

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

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

容器應用的實時熱加載和一鍵調試演示到此結束。有興趣的同學可以根據(jù)Nocalhost(nocalhost.dev)官網(wǎng)的快速入門說明試一試。

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

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

我的分享到這里。


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


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

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進群
美國賣家交流群
加入
美國賣家交流群
掃碼進群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進群
《TikTok官方運營干貨合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
《TikTok直播運營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經理服務
運營實操指導
運營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

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

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部