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