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