當前位置:
首頁 > 最新 > 微軟Azure PaaS發展之路

微軟Azure PaaS發展之路

嘉賓|Steven Lian

編輯|張嬋

微軟作為全球老牌 IT 巨頭,也是 PaaS 供應商的領導者,其 PaaS 之路是怎麼一步步發展起來的?

雲計算通常包括 IaaS, SaaS 和 PaaS 三個層面,相較於已成氣候的 IaaS 和 SaaS,最近幾年雲計算領域的集中發力點在 PaaS 層面。微軟作為全球老牌 IT 巨頭,也是 PaaS 供應商的領導者。微軟的 PaaS 之路是怎麼一步步發展起來的?對此我們專訪了微軟 Azure 資深架構師 Steven,來了解微軟 Azure PaaS 的發展之路。

微軟早期 PaaS 服務

Azure 是微軟基於雲計算的操作系統,自 2008 年開始發展,2010 年正式推出,主要目標是為開發者提供一個平台,幫助開發可運行在雲伺服器、數據中心、Web 和 PC 上的應用程序,使雲計算的開發者能使用微軟全球數據中心的儲存、計算能力和網路基礎服務。

Azure 平台上現已包括 30 余種服務,早期的 PaaS 服務包括:

Azure Cloud Service:提供了抽象化的運算資源給雲端應用程序使用,開發人員可以部署雲端應用程序到 Azure Cloud Service,以獲取所需的執行環境與運算能力 ;

Azure Service Fabric:2016 年正式 GA 發布,是基於微軟資源管理框架與基礎建設發展出的新型服務,提供標準的操作系統映像,開發人員可使用 Azure Service Fabric SDK 開發微服務應用程序,可視為下一代的 Azure Cloud Service。

隨著容器技術的快速發展,微軟也提供了重要的容器服務。

ACS:微軟雲端容器服務

2016 年,微軟推出了 Azure Container Service (ACS)。ACS 是一個容器託管環境,可用於容器的部署和管理,支持 Docker Swarm, kubernetes, DC/OS 等多種容器編排工具。雖然有了 ACS 全託管服務,但有些高級用戶可能還希望做一些深度定製化的操作,獲得完全的容器集群控制以保證足夠的靈活性(比如自定義 master 上的組件服務等)。這時用戶可以使用開源的 acs-engine 來創建和管理自己的集群。acs-engine 是 ACS 的核心部分,提供了部署和管理 Kubernetes,DC/OS 和 Docker Swarm 集群的命令行工具。它通過將容器集群描述文件轉化為一組 ARM(Azure Resource Manager)模板來建立容器集群。

Steven 介紹道,如果用戶想要深度定製化自己的集群,比如加上虛擬網路的支持或一些高級組件,參數調整等等,就可以使用微軟提供的 acs-engine 創建和管理自己的 ARM 部署模版,添加需要的腳本,參數,組件等定製化配置,然後使用微軟提供的命令行工具實現自動化的部署。

微軟與 Kubernetes

2015 年 CNCF 基金會成立,微軟加入其中成為其鉑金會員,開始參與其中的項目向 Kubernetes 貢獻代碼。微軟在 CNCF 里的貢獻包括:

Draft,Azure 團隊的第一款開源容器管理工具,工具簡化了所有在 Kubernetes 集群上運行的應用程序的開發工作,使用戶能快速地進行容器化。

Helm, 目前是 Kubernetes 服務編排領域的唯一開源子項目,做為 Kubernetes 應用的一個包管理工具,通過軟體打包的形式,支持發布的版本管理和控制,很大程度上簡化了 Kubernetes 應用部署和管理的複雜性。

除此之外還有 OMS (Operations Management Suite) 等監控項目。OMS 是不開源的,可以用於監控 Kubernetes, 進行日誌分析管理。

除了技術貢獻,微軟也對 Kubernetes 技術進行了人才投入,請了很多業界大牛來負責微軟整個平台的容器產品,包括原 Deis 公司的創始人兼 CTO Gabe Monroy,以及谷歌的前首席架構師 Brendan Burns。Gabe Monroy 是 Docker 和 Kubernetes 的早期貢獻者,在容器技術方面有著豐富的經驗;而 Brendan Burns 則是 Kubernetes 的首席工程師,Kubernetes 容器編排的主要創始人之一。

AKS:主打 Kubernetes 的容器服務

2017 年是 Kubernetes 快速發展的一年,Kubernetes 作為開源容器編排標準正在日益崛起。微軟也看到,每年基於 Azure 的部署 Kubernetes 的需求量差不多以 300% 的速度在增長,所以就在 Kubernetes 的基礎上新出了一個獨立於 ACS 的服務,在 2017 年初推出了 Azure Kubernetes Service (AKS)。

AKS 是一個託管的 Kubernetes 服務 (目前還在預覽階段),可進行健康監控和維護,支持自動升級和自動故障修復。AKS 消除了用戶管理和維護 Kubernetes 集群的負擔,使用 AKS 時集群管理本身是免費的,Azure 只收取容器底層的虛擬機費用。

另外,微軟把 AKS 容器服務和自己的容器註冊表服務(Azure Container Registry,私有容器鏡像倉庫,類似於 Docker Hub),還有其他的 PaaS 服務做了無縫整合,用戶可以把自己構建的容器放在容器註冊表裡面,然後來做灰度測試和 CI/CD,做完之後通過命令行直接發布到生產環境。

Steven 說 AKS 使用起來非常簡單。比如在 Mac 上,AKS 提供 Azure Command Line 的工具,只需三五行的命令就可以快速部署一個 Kubernetes 集群,並且在本機上進行管理。創建、伸縮、升級集群都可以在本機上進行,非常符合開發者的使用習慣。

Steven 介紹到,不管是 ACS 還是 AKS,微軟在 Azure 平台上提供基於開源產品服務的一個最基本原則就是要保證這些服務和開源產品 100% 兼容。這也就意味著用戶不需要重新學就可以把原來使用的工具,方法直接應用到微軟提供的容器服務上面,微軟只不過是把一些瑣碎的工作做了自動化,在內部做了一些安全還有性能的優化,加固了整個容器平台。

隨著技術的不斷演進,Serverless(無伺服器)架構現在被越來越多的提及。Serverless 與 PaaS 的概念在某些方面有很多相似的地方,但這兩者之間有一些微妙的差別:PaaS 託管的是整個應用,而 Serverless 關注應用的某個碎片化的邏輯代碼,從資源使用率和成本控制來說更具優勢。針對 Serverless,微軟 Azure 又推出了 Azure Functions。

Azure Functions:微軟 Serverless 平台

2016 年底,微軟正式發布了 Azure Functions。Azure Functions 為開發人員提供了一個事件驅動的無伺服器計算平台,可以實現按需縮放,允許開發人員在不用接觸與管理伺服器的情況下,編寫小型的處理程式以處理雲端上的訊息或事件。

與傳統的 PaaS 相比,使用 Azure Functions 無需關心運行時版本的問題。因為 Serverless 做發布的時候可以做定義或處理,能在非常短的時間內發布到雲端,之後的事情都由後台進程來幫助做處理。

此外,serverless 本身傾向於把服務封裝成無狀態的,其運行方式是按需運行,僅在設定的事件觸發器上有事件產生時才運行,運行也是受調度平台的控制。

Azure Functions 現在已經和微軟的一些容器服務還有物聯網的邊緣計算相結合了。未來 Azure Functions 會應用在包括實時響應在內的更廣泛的服務處理中,也將支持更多的開發語言。現在 Azure Functions 能支持 Java,C#,Node.js,以後 Python,Ruby 等語言可能也會得到支持。

Azure PaaS 服務的未來

基於 Kubernetes 的 PaaS 在 Azure 內部受到高度重視,有社區大牛的掌舵,我們相信 Azure 將打造一流的 PaaS 服務。在對未來的看法上,Steven 認為,容器化將是未來的主流,而微軟的 Azure 將在 PaaS 的配套服務上投入更多精力。

Steven 說,你看過去幾十年基礎架構的演變,從大型機到小型機,到 X86 架構,然後是虛擬化,容器化到 Serverless 計算,成本越來越低,部署速度越來越快,scalability 也越來越強。現在很多大型企業的應用,包括 Azure 自身的一些服務,都已經轉向了容器化,也就是 Docker+Kubernetes 組合,這是未來的一個大趨勢,會用得越來越廣泛。

「現在可能 70% 的應用還在 VM 上面,已經有約 30% 慢慢轉向了容器化的方式在容器裡面運行。隨著時間的推移,慢慢這個數據可能會變成 70% 以上都是容器化的 Docker+Kubernetes 的方式,30% 是在 VM 裡面。」Steven 說道。雖然現在也有物理機,但是現在 VM 已經變成了主流;在未來,VM 也會使用,但是容器化將是主流。

在轉向容器化的過程中,Kubernetes 作為容器編排事實標準,未來在它之上做的更多的事情就是把現在它所涉及到的存儲,網路,服務的交互,發現,架構等各個方面做到高效的統一,減少不同版本不同語言之間的異構化差異,讓部署變得更容易。有了一整套規範之後,就可以開發更規範的插件,大家就能更容易地切入到這個方向上來。例如微軟自己也為 Azure 上的容器服務開發了針對 Kubernetes 和 Docker Swarm 的網路插件,讓用戶在使用 Azure 容器服務時可以利用到 Azure SDN 功能簡化容器網路管理。

當所有的規範都形成後,開發人員上手的難度降下來,就會如 Steven 上面所說,70% 以上的應用都會容器化。

在未來,微軟會一直和開源產品保持一致,跟開源社區保持緊密合作,在 Azure 上面為這種趨勢提供最好的技術架構平台。現在微軟大部分的服務都已經轉向了微服務的架構。微軟選擇 Kubernetes 作為長期的容器平台發展方式,構建了很多周邊的項目,比如 ACR,Draft,Helm,FaaS,在 AKS 上提供這樣的服務給用戶使用,這樣用戶就不用擔心被鎖定,也不用擔心靈活性和開放性。

嘉賓介紹

連冠華(Steven Lian),現任微軟 Azure 資深架構師,主要負責為製造業、汽車、金融及互聯網等行業大客戶提供大規模雲應用、分散式計算、車聯網、開源 DevOps、人工智慧及大數據等架構設計和諮詢服務。作為國內最早的 Azure 架構師之一,連冠華擁有超過 15 年開源技術棧 Linux/Java/Python 研發經驗,以及多年的雲計算諮詢、開發和實施經驗。連冠華在加入微軟之前曾先後任職於惠普及 VMware 等公司,並擔任研發部門經理、雲架構師等職位。

活動推薦

隨著 AI、Big Data、Cloud 的逐漸成熟,FAAS、CAAS 等技術的興起,以及被運維業務的多樣化和複雜化,很多傳統的運維技術和解決方案已經不能滿足當前運維所需,AIOps 智能運維、大數據運維、ChatOps、SRE、Chaos Engineering、微服務與容器運維等新技術和方嚮應運而生,它們一方面把最前沿的技術結合到運維中來,一方面在人員角色、領域範圍、文化等方面又有了很多擴展,讓傳統運維有了翻天覆地的變化。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高效開發運維 的精彩文章:

實戰應用:藉助Kubernetes不停機從Heroku遷移至AWS
2018年DevOps的新趨勢

TAG:高效開發運維 |