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