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