Azure Kubernetes服務(wù)是如何讓開發(fā)者更有效率的,kubernetes微服務(wù)實(shí)戰(zhàn)Azure Kubernetes服務(wù)如何讓開發(fā)者更高效?容器簡化了應(yīng)用程序的部署、擴(kuò)展和操作。Kubernetes是一個(gè)安排和管理容器的平臺(tái),它集成了虛擬環(huán)境中不斷增加的應(yīng)用程序所需的組件?,F(xiàn)代的應(yīng)用程序開發(fā)方法已經(jīng)接近貪婪的胃......
容器簡化了應(yīng)用程序的部署、擴(kuò)展和操作。Kubernetes是一個(gè)安排和管理容器的平臺(tái),它集成了虛擬環(huán)境中不斷增加的應(yīng)用程序所需的組件?,F(xiàn)代的應(yīng)用程序開發(fā)方法已經(jīng)接近貪婪的胃口,在構(gòu)建容器和Kubernetes技術(shù)的開源社區(qū)中已經(jīng)建立了一個(gè)強(qiáng)制性的功能。
Kubernetes生態(tài)系統(tǒng)仍然為在生產(chǎn)中有效運(yùn)行復(fù)雜的容器化應(yīng)用程序提供關(guān)鍵技術(shù)。但對(duì)于現(xiàn)在將使用容器的主流開發(fā)者來說,問題不是他們的應(yīng)用是否應(yīng)該在Kubernetes上運(yùn)行,而是如何在Kubernetes上更有效地運(yùn)行。
有了強(qiáng)大的Kubernetes核心,現(xiàn)在是容器和Kubernetes發(fā)展的下一個(gè)階段。今天,開發(fā)者的經(jīng)驗(yàn)將變得至關(guān)重要。這是Azure Kubernetes服務(wù)(AKS)架構(gòu)師的核心信念。從構(gòu)建和測試容器映像到調(diào)試和部署到生產(chǎn)線,AKS讓開發(fā)人員的體驗(yàn)更加輕松。
微軟的新AKS開發(fā)者工具反映了這種對(duì)開發(fā)者體驗(yàn)的重視?;赩isual Studio的開發(fā)工具簡化了Kubernetes的開發(fā)工作流程。該工具為運(yùn)行在Kubernetes上和基于復(fù)雜微服務(wù)的應(yīng)用提供了更簡單的開發(fā)環(huán)境、生產(chǎn)前測試、迭代開發(fā)和快速調(diào)試。
“在分布式系統(tǒng)時(shí)代,對(duì)于開發(fā)者來說并不容易。要讓主流開發(fā)者能夠使用容器和容器編排,構(gòu)建分布式應(yīng)用,我們還有很長的路要走?!蔽④汚zure容器團(tuán)隊(duì)項(xiàng)目經(jīng)理Gabe Monroy說。“業(yè)界一直專注于API和有原則的分層架構(gòu)——這很好,我們需要這些——但并沒有那么關(guān)注應(yīng)用開發(fā)者的體驗(yàn)。如何才能讓這個(gè)新世界的軟件開發(fā)過程感覺和以前一樣?
Kubernetes讓開發(fā)者面臨從構(gòu)建到部署的一系列挑戰(zhàn)。
不熟悉Kubernetes的開發(fā)者面臨著很高的進(jìn)入門檻。充分利用容器可能意味著數(shù)小時(shí)的研究。首先,他們學(xué)習(xí)如何編寫Dockerfile,manifest和Helm diagram,使用Draft進(jìn)行本地開發(fā)。然后他們一步一步的研究如何測試代碼,構(gòu)建到鏡像中,鏈接到Brigade的持續(xù)集成工作流中,安全的部署到集群中,這需要?jiǎng)?chuàng)建審計(jì)日志,不能有任何意外的部署。
但是開發(fā)人員還需要設(shè)置他們的開發(fā)環(huán)境來處理容器,以便它們看起來、感覺起來和行為起來都像生產(chǎn)環(huán)境。它還必須與支持應(yīng)用程序的所有其他微服務(wù)、容器和外部依賴項(xiàng)集成,這意味著在本地存根或模擬服務(wù)以匹配服務(wù)。在一個(gè)大型項(xiàng)目中,每個(gè)開發(fā)人員都必須花時(shí)間去做,即使他們可能只處理其中的一小部分。
此外,他們希望在自己的環(huán)境中使用熟悉且豐富的開發(fā)人員工具,使用日志以便能夠?yàn)閷?shí)時(shí)服務(wù)進(jìn)行調(diào)試,并直接從IDE進(jìn)行斷點(diǎn)和快速部署,以便能夠測試更改后的代碼。
“你一定聽說過這樣一個(gè)行業(yè)梗。Kubernetes對(duì)開發(fā)者來說還是太難了?!泵闪_伊說?!拔覀円恢抡J(rèn)為這是下一代基礎(chǔ)設(shè)施——沒有人可以使用它,這很棒!”這是一種嚴(yán)肅的玩笑。
微軟的Kubernetes開發(fā)工具
一次又一次,微軟改變了不同領(lǐng)域開發(fā)者的體驗(yàn),從Excel和Access到Logic Apps,現(xiàn)在又是新的Azure Dev Spaces服務(wù),用于快速開發(fā)AKS。
微軟的目標(biāo)是支持現(xiàn)在使用容器的主流開發(fā)者。出于這個(gè)原因,該公司正在從其開發(fā)人員工具的歷史和從Helm、Brigade和Draft等開源工具的創(chuàng)建中獲得的知識(shí)中學(xué)習(xí)。微軟也是Kubernetes上游項(xiàng)目的主要貢獻(xiàn)者——Kubernetes的聯(lián)合創(chuàng)始人Brendan Burns領(lǐng)導(dǎo)著微軟容器集團(tuán)——微軟是云原生計(jì)算基金會(huì)(CNCF)的成員。
“微軟作為一家以開發(fā)者為導(dǎo)向的公司的基因已經(jīng)被激活,你將看到微軟開發(fā)部門的全部力量將在CNCF世界釋放出來,”蒙羅伊說。
在Akdev Spaces中調(diào)試微服務(wù)只需要5分鐘。
在Kubernetes集群中,Dev Spaces為項(xiàng)目中的每個(gè)開發(fā)者建立了一個(gè)獨(dú)立的沙盒空間。他們可以直接從熟悉的ide中使用這個(gè)空間,比如Visual Studio和Visual Studio代碼(Windows、Mac或Linux),或者命令行。它們運(yùn)行在線云Kubernetes集群上,使得開發(fā)環(huán)境就像生產(chǎn)環(huán)境一樣,擁有app所需的所有依賴庫、微服務(wù)和交互服務(wù)。沒有權(quán)限或技能來設(shè)置這些服務(wù)的開發(fā)人員仍然可以測試這些在云中運(yùn)行的服務(wù)。但它們直接進(jìn)入代碼所在的容器,獨(dú)立調(diào)試迭代;不會(huì)影響其團(tuán)隊(duì)中的開發(fā)者。
使用名稱空間隔離和多租戶控制為Kubernetes集群設(shè)置隔離通常非常復(fù)雜;這只是開發(fā)空間中Azure訪問模塊附帶的功能。但是因?yàn)锳KS是一個(gè)完整的Kubernetes,所以Dev Spaces是使用原生Kubernetes概念實(shí)現(xiàn)的現(xiàn)有AKS集群的附加組件。你可以使用其他Azure服務(wù)或第三方工具。如果你想用Azure Key Vault或者Hashicorp Vault來注入秘密,不需要在代碼中存儲(chǔ)就可以生效。
但是與Visual Studio集成的好處是,除了容器和云服務(wù)的所有功能之外,開發(fā)人員還可以獲得熟悉的工具和工作流的生產(chǎn)力。他們可以調(diào)試代碼,從創(chuàng)建新項(xiàng)目到設(shè)置斷點(diǎn),然后單擊F5,就像他們?cè)谧约旱南到y(tǒng)上運(yùn)行代碼一樣。就像編寫任何其他類型的應(yīng)用程序一樣,他們可以獲得IntelliSense和新的IntelliCode AI支持來編寫代碼,甚至是Visual Studio Live Share的協(xié)作編輯。但是因?yàn)樗鼈冞\(yùn)行在AKS上,所以它們還可以看到容器運(yùn)行的健康狀態(tài),并搜索生產(chǎn)日志以確定哪里出錯(cuò)了。一旦發(fā)現(xiàn)錯(cuò)誤,他們可以修復(fù)它們,然后按F5鍵將這些更改直接發(fā)國際快遞AKS并運(yùn)行它們。
“隨著世界已經(jīng)接受了這些復(fù)雜的微服務(wù)環(huán)境,開發(fā)人員現(xiàn)在很難去環(huán)境中提高工作效率?!泵闪_伊指出。
當(dāng)一個(gè)應(yīng)用程序可以包含數(shù)百個(gè)微服務(wù),并且每個(gè)微服務(wù)都有自己的數(shù)據(jù)存儲(chǔ)安排時(shí),修復(fù)一個(gè)服務(wù)中的錯(cuò)誤就像大海撈針。對(duì)于開發(fā)人員來說,在筆記本電腦上設(shè)置一百個(gè)服務(wù)或者模擬它們和所有的備份存儲(chǔ)是非常耗時(shí)的。只需設(shè)置他們的環(huán)境,以便他們可以找到并修復(fù)整個(gè)應(yīng)用程序,而以前這需要一天的時(shí)間。現(xiàn)在,可能需要幾周時(shí)間來準(zhǔn)備處理復(fù)雜的分布式應(yīng)用程序,如果開發(fā)人員能夠正確設(shè)置的話?!癉ev Spaces提供了用Azure賬號(hào)操作的功能,你可以在五分鐘內(nèi)修復(fù)錯(cuò)誤,”Monroy說。
在幕后,Dev Spaces同步代碼中的更改,開發(fā)人員直接在本地工作到容器中。對(duì)于大多數(shù)更改,在更新時(shí)不需要重新構(gòu)建和重新部署容器映像。這意味著開發(fā)人員不會(huì)在等待查看更改是否修復(fù)錯(cuò)誤時(shí)丟失編碼過程。對(duì)于Node.js開發(fā)者來說,每次檢測到文件變化,nodemon都會(huì)自動(dòng)為他們重啟節(jié)點(diǎn)服務(wù),只需要刷新瀏覽器就可以查看他們的新代碼,會(huì)感覺很熟悉,效率也很高。
Monroy解釋說,Dev Spaces使用服務(wù)網(wǎng)格路由允許開發(fā)人員調(diào)試非常復(fù)雜的分布式應(yīng)用程序。通過向URL添加前綴,您可以指示服務(wù)網(wǎng)格將流量路由到正在開發(fā)的容器
“現(xiàn)有的開源生態(tài)系統(tǒng)中沒有智能代碼同步或流量路由,”蒙羅伊指出?!叭绻阍贕KE上有一個(gè)應(yīng)用程序,在GKE上使用Draft,那么你可以將相同的應(yīng)用程序帶到Azure,通過更快的迭代循環(huán)集成空間和流量路由,獲得更好的開發(fā)空間體驗(yàn)?!?/p>
Visual Studio、Dev Spaces和AKS之間的緊密集成意味著,在Azure上使用Kubernetes的開發(fā)人員在開始使用云原生工具時(shí),不會(huì)失去本地開發(fā)的生產(chǎn)力。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部