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