揭秘微软6万工程师DevOps成功转型的技术「武器」
在微軟,通過其自身數年的 DevOps 轉型, 6 萬名工程師實現了更好的軟件平臺創(chuàng)新和快速迭代。微軟有龐大的技術產品矩陣,同時也具有每天發(fā)布的能力,其中,微軟研發(fā)云是支撐整個開發(fā)過程與運維最重要的基礎平臺。微軟研發(fā)云包括了全球六萬名軟件工程師每天使用的 Visual Studio Team Service(VSTS),以及一系列虛擬實驗室、監(jiān)控、 部署、移動應用測試等云服務。在開發(fā)與運維團隊之間,微軟研發(fā)云提供的順暢對接使其具有了端到端開發(fā)管理能力,實現了持續(xù)交付、持續(xù)監(jiān)控、持續(xù)學習與進化。
12 月 20 日(周三),微軟云思塾 - 微軟研發(fā)云專場北京站活動迎來了微軟的四位技術專家——微軟公司大中華區(qū)云開發(fā)平臺高級產品經理胡德民、微軟中國 DevOps 技術專家莊俊乾、微軟中國特約移動開發(fā)技術顧問周岳、微軟公司大中華區(qū)首席開發(fā)技術社區(qū)總監(jiān)徐磊共同布道微軟 DevOps 大規(guī)模轉型的成功秘訣以及微軟研發(fā)云端到端的技術能力。如需下載本次演講 PPT,請在 InfoQ 公眾號對話框中回復「微軟 devops」,就能獲取相應的下載鏈接。
過去在工程師團隊中有三個角色:項目經理,開發(fā)人員和測試人員,從組織和團隊的角度來說,開發(fā)和測試是完全區(qū)分開的。過去的微軟像是一個盒裝軟件,Windows、Office 火的滿天飛,軟件迭代速度三年一版。然而這一切都不適用于如今架構和軟件更新迅猛發(fā)展的時代,DevOps 成為一項必須。
對于微軟而言,微軟 DevOps 帶來的最大價值之一就是「不承認傳統(tǒng),只尊重創(chuàng)新」。很多 IT、互聯(lián)網公司想做卻不敢做的一件事是:不敢把包袱丟掉。原因之一就是舊有的包袱丟掉了,新的技術卻無法跟上腳步。而微軟這些年做的最重要的就是創(chuàng)新。
微軟 DevOps 里程碑事件
微軟 DevOps 中的關鍵一步是 VSTS(Visual Studio Team Services),現在每天有 43000 位來自不同工程師團隊的內部用戶使用它,并且這個數量在急劇增長,微軟非常希望 VSTS 能成為支持工程師團隊實踐的默認工具。在 VSTS 團隊中,Canary 發(fā)布被稱為部署環(huán)。團隊自動化了構建和測試過程,并自動部署到內部或早期的 feedback 賬戶或開發(fā)者的物理設備中(也叫 dogfooding)。這樣能夠控制軟件的發(fā)布,并獲得早期的反饋和實驗。VSTS 團隊就采用了部署環(huán)的方式,服務的更新被分解為 4 個部署環(huán),分布在 Microsoft Azure 不同區(qū)域的 12 個擴展單元里。
另外,隨著 AI 時代的全面到來,很多開發(fā)者在使用微軟工具(Visual Studio)的同時會疑問怎么和 AI 平臺及工具結合,怎么用 Visual Studio 寫 Azure 的東西。于是,胡德民也全面地講述了微軟的人工智能技術棧。
傳統(tǒng)企業(yè)面臨 DevOps 轉型會遇到各樣的挑戰(zhàn),例如程序員質量不統(tǒng)一、承擔風險能力較低、系統(tǒng)類型太多且沒有固定套路、程序架構需要重新調整等。微軟自己的親身實踐證明了 DevOps 的全面轉型幫助提高了編碼效率,質量和產量,將開發(fā)者們從繁瑣的工作中解脫出來,鼓勵了最佳的工程實踐,從而形成了更好的工程師團隊。
查看胡德民完整版演講視頻,更多干貨
class="video_iframe" frameborder="0" scrolling="no" allowfullscreen="" data-ratio="1.7647058823529411" data-w="480" data-vidtype="2" data-src="http://v.qq.com/iframe/player.html?vid=j0522tz1x8p&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=j0522tz1x8p&width=654&height=367.875&auto=0"/>
在實際的開發(fā)生命周期管理中其實存在諸多問題,傳統(tǒng)意義上,每個工具都有自己的一套標準,從而導致了脆弱的集成、維護和管理成本高、不兼容的應用變成接口、多個平臺之間來回切換的不便捷與效率低。此外,在團隊項目之間實現測試用例和測試計劃的共享,是很多用戶關注的問題,尤其在開發(fā)產品 + 服務的團隊中。
TFS 定位為企業(yè)級的研發(fā)協(xié)作管理平臺和 DevOps 平臺,通過平臺優(yōu)化軟件研發(fā)流程,支持管理制度落地、讓開發(fā)資產統(tǒng)一管理,支持多種主流研發(fā)模式。值得一提的是,Wiki 是 TFS 2018 新增的一個功能。每個團隊項目都可以在 TFS 系統(tǒng)中創(chuàng)建和維護自己的知識庫(Wiki)。這個功能的上線,在很大程度了彌補了之前版本依賴 SharePoint 實現知識庫的缺陷,這也是這個版本不在支持 SharePoint 集成的一個重要原因。
Visual Studio TFS 提供開發(fā)團隊運營所需的工具和靈活性。通過與可配置看板結合使用的拖放式積壓工作管理, 可以優(yōu)化和可視化有助于項目的每個團隊的重要工作。現成的 Scrum 也將支持計劃沖刺、管理團隊能力并使用任務板和燃盡圖跟蹤進度。
此外,莊俊乾還上手演示了如何在微軟研發(fā)云之中,完成從需求規(guī)劃、功能分解、廣告牌管理、Bug 管理、自動化測試與構建、運維監(jiān)控一直到用戶反饋的收集,并解釋了當前 DevOps 推動過程中的各種難點與痛點,以及如何從微軟研發(fā)云的功能中發(fā)掘對這些問題的解答。
查看莊俊乾完整版演講視頻,更多干貨
class="video_iframe" frameborder="0" scrolling="no" allowfullscreen="" data-ratio="1.7647058823529411" data-w="480" data-vidtype="2" data-src="http://v.qq.com/iframe/player.html?vid=f0522a4l77k&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=f0522a4l77k&width=654&height=367.875&auto=0"/>
在應用高效開發(fā)的過程中,要避免 iOS 版本、Android 版本甚至 Windows 版本的重復性開發(fā),增加代碼共享、避免用不同的編程語言不同的開發(fā)環(huán)境來編不同的 APP 是自然的思路。微軟提供了三套解決方案來增加代碼共享。
C++。微軟的 Office 產品全部是基于 C++ 的代碼共享。
針對 JavaScript 的 Apache Cordova 架構,在 Visual Studio 2015 里做了很多支持它的開發(fā)工具。
收購了 Xamarin 提供給所有 Visual Studio 開發(fā)人員使用,沒有任何新增費用,包括在 Mac 上提供這項支持,此外還將 Xamarin 的運行時全部開源。
基于 Xamarin,開發(fā)人員可以用 C# 編程語言構建完全原生的 iOS 和 Android 的 APP——用 Apache Cordova 可能還會擔心性能問題,但 Xamarin 編的完全是原生的 APP,沒有任何性能和執(zhí)行的問題,而且 Xamarin 還可以極大的支持代碼共享在 iOS 和 Android 上。
在演講中,周岳演示了如何運用 Visual Studio 進行 iOS 與 Android 的原生應用開發(fā),并在微軟研發(fā)云中,進行一致性的變更管理、代碼管理、構建與發(fā)布,其后又介紹了 Hockey Apps 支持測試版本發(fā)布的強大功能及結合實體手機硬件的云端自動化測試環(huán)境。
查看周岳完整版演講視頻,更多干貨
class="video_iframe" frameborder="0" scrolling="no" allowfullscreen="" data-ratio="1.7647058823529411" data-w="480" data-vidtype="2" data-src="http://v.qq.com/iframe/player.html?vid=u052283qptr&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=u052283qptr&width=654&height=367.875&auto=0"/>
微軟之前就成功而及時地與 Docker 達成了深度合作。根據 InfoQ 此前的報道,「微軟曾經在這個領域做了三件看起來非常具有前瞻性的事情,一是與 Docker 合作催生 Windows 容器,包括 Windows Server Core 和 Windows Nano Server 兩種形式;二是著力優(yōu)化 Windows 作為 Docker 宿主的能力和體驗,使得 Linux 容器能夠通過 Docker for Windows 穩(wěn)定輕快地運行于開發(fā)人員 Windows 上;三是不失時機地推出了 Azure 容器服務(Azure Container Service),使得基于容器的大規(guī)模應用程序能夠順利地在微軟云中部署生根。」
徐磊在演講中重點講述了他們的一項開發(fā)——DevOps 實驗室,目的是強調實操能力建設(具體參見:https://docs.devopshub.cn/#!index.md)。
DevOps 實驗室技術架構如下:前端瀏覽器中的每一項服務,包括 SSH 遠程、RDP 遠程及 VNC 遠程等全部對應到相應的容器,這使得在每一個應用部署過程中實際就是管理著一個 Docker 集群。其自動化能力是通過 TFS 里所提供的 CI/CD 及 TFS git 來實現。其中,開發(fā)人員將符合基礎設施及代碼的模板放到庫里,通過 TFS 流水線對其進行調度,接著在云里創(chuàng)建一個獨立環(huán)境,相當于每個人在云里都有獨立子網,然后再在子網中安裝、配置所有的環(huán)境。
DevOps 實驗室在持續(xù)交付實踐主要集中在三項:一是 TFS 精益看板、二是 TFS 持續(xù)集成、三是 TFS 持續(xù)部署。包括自動完成 docker 鏡像生成,推送至私有鏡像倉庫 (Harbor) ,自動生成部署配置文件 docker-compose-template.yml ,流水線統(tǒng)一控制的環(huán)境配置管理等。
此外,徐磊還重點基于 Asp.net Core、 Python、Node JS、Java 做了示例程序,幫助參會者理解如何完成一條完整的開發(fā),測試到自動化發(fā)布流水線的建立,將應用發(fā)布到一個 Docker Swarm 的容器調度平臺中。
查看徐磊完整版演講視頻及更多干貨,請復制本鏈接到瀏覽器中查看:
https://v.qq.com/x/page/d0522k2wqam.html
原文地址:https://mp.weixin.qq.com/s/_maa3hPl4aCwaqAur52hfA#rd
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的揭秘微软6万工程师DevOps成功转型的技术「武器」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 ASP.NET Core, Ent
- 下一篇: 角落的开发工具集之Vs(Visual S