從Java到物聯(lián)網(wǎng),微軟智能云全力支持開源創(chuàng)新
今天,“微軟愛開源”已經(jīng)不是新聞。
從 Windows 10 操作系統(tǒng)原生支持 Ubuntu 到 PowerShell 和 .Net Core 開源,從 SQL Server 推出 Linux 版本,到可以面向不同操作系統(tǒng)、框架、語言、設(shè)備編程的 Visual Studio 開發(fā)工具。微軟正在以“支持、整合、貢獻(xiàn)、生態(tài)”策略為指引,全力以赴地加強(qiáng)在開源世界中的投入和貢獻(xiàn)。
作為微軟三大遠(yuǎn)見的核心,微軟智能云 Azure 從底層基礎(chǔ)設(shè)施、容器、數(shù)據(jù)庫和中間件,乃至平臺(tái)框架、開發(fā)運(yùn)維、應(yīng)用程序等各個(gè)層次全面支持開源,打造了一個(gè)全面開放、靈活智能的云計(jì)算平臺(tái)。從全球到中國,Azure 已經(jīng)加入了對(duì) Red Hat Enterprise Linux、CentOS、SUSE Linux、Ubuntu Linux、Kubernetes、 Cloud Foundry、FreeBSD、MySQL、PostgreSQL、Hadoop、Hive、Spark、Mesos 等開源技術(shù)的官方支持。同時(shí),在開發(fā)項(xiàng)目上,微軟也加入了對(duì)各大開源語言與框架的支持,如 Java、Python、Go、Ruby 等,都與 .NET 及 C# 有同樣充足的專業(yè)團(tuán)隊(duì)維護(hù)。這些努力,旨在為全球用戶提供更多、更豐富的應(yīng)用選擇,不管用戶偏好使用 Windows Server、 Linux 操作系統(tǒng)或是各種開源工具,都能在 Azure 上順利運(yùn)行,并且獲得完整的知識(shí)產(chǎn)權(quán)保護(hù)及技術(shù)支持。在中國運(yùn)行的 Azure 上,更有超過 60% 虛擬機(jī)運(yùn)行各種開源應(yīng)用。
為 Java 開發(fā)者打造***的云端開發(fā)體驗(yàn)
微軟愛開源,也愛 Java。
通過在 Visual Studio 開發(fā)工具和微軟智能云 Azure 上的一系列努力,微軟正在從 DevOps 開發(fā)運(yùn)維的各個(gè)角度,為 Java 開發(fā)者創(chuàng)造***的開發(fā)體驗(yàn)。
首先,微軟在開源跨平臺(tái)代碼編輯器 Visual Studio Code 上提供了一系列工具來支持 Java,例如 Red Hat 支持 Java 語言插件,目前已經(jīng)有超過 300 萬次的下載量。在 GitHub 上,微軟工程師也在持續(xù)不斷地貢獻(xiàn)代碼到支持 Java 語言的插件,在過去一年中就陸續(xù)推出了 Java 調(diào)試器、Java Test Runner 、Maven Explorer、Tomcat、CheckStyle 等項(xiàng)目。
面向云計(jì)算時(shí)代的大勢(shì)所趨,微軟也在努力為 Java 開發(fā)者打造更好的上云工具。微軟提供的 Java SDK 開發(fā)包,允許開發(fā)者通過 Java 使用和管理微軟 Azure 平臺(tái)上的資源。Maven 插件項(xiàng)目讓 Java 應(yīng)用可以直接通過 Maven 插件部署到 App Service 和 Azure Function 等 Azure 服務(wù)上。目前微軟已經(jīng)面向 Visual Studio Code、Eclipse、IntelliJ 等開發(fā)工具,提供了 Azure App Service 插件,最近還在 Visual Studio Code 中加入了針對(duì) Azure Functions 的插件。
針對(duì)當(dāng)前***的 Java Web 框架 Spring,微軟專門推出了一系列的 Spring Starters,方便開發(fā)者更輕松地將他們的 Spring 應(yīng)用與 Azure 服務(wù)中的服務(wù)總線、存儲(chǔ)、Azure Active Directory、Azure Key Vault、Azure CosmosDB/Document DB 數(shù)據(jù)庫服務(wù)提供 Spring Data 支持。
為了進(jìn)一步改善開發(fā)者在 Azure 上應(yīng)用 Java 編程的便利性,在接下來的幾個(gè)月中,微軟將發(fā)布更多針對(duì)針對(duì) Spring、Gradle 工具的新功能,還將在 Visual Studio Code 中發(fā)布 Kubernetes 插件,讓用戶更輕松地部署 Java 應(yīng)用到 Kubernetes 微服務(wù)平臺(tái)并在本地調(diào)試。
從云到端的完整物聯(lián)網(wǎng)開發(fā)解決方案
面向物聯(lián)網(wǎng)應(yīng)用,微軟智能云 Azure 提供了完善的 IaaS, PaaS 和 SaaS 云端服務(wù)和邊緣智能解決方案,廣泛涵蓋了從設(shè)備管理、數(shù)據(jù)分析、人工智能到業(yè)務(wù)展現(xiàn)的各個(gè)層次的需求。無論是初次接觸物聯(lián)網(wǎng),還是經(jīng)驗(yàn)豐富的專業(yè)用戶,都能找到合適的工具和技術(shù),打造端到端的完整開發(fā)體驗(yàn)。
Azure IoT Edge:將云智能擴(kuò)展到邊緣設(shè)備。Azure IoT Edge 可實(shí)現(xiàn)混合云和物聯(lián)網(wǎng)解決方案,在跨平臺(tái)物聯(lián)網(wǎng)設(shè)備上直接無縫部署和運(yùn)行人工智能、Azure 服務(wù)和自定義業(yè)務(wù)邏輯?;?Visual Studio Code 編輯器,微軟為開發(fā)者提供了支持多語言和多服務(wù)的無縫開發(fā)體驗(yàn),目前下載量已接近 2 萬次。
AzureIOT 輕松診斷解決方案:端到端的物聯(lián)網(wǎng)診斷。只要在設(shè)備中集成 Azure IoT 設(shè)備 SDK,即可以獲得物聯(lián)網(wǎng)解決方案中端到端的診斷功能,讓開發(fā)者可以方便地診斷已連接設(shè)備和丟失的數(shù)據(jù)包、了解跨 Azure 云服務(wù)跟蹤設(shè)備消息、使用分析工具獲取設(shè)備端到云端的所有事件等。
Azure IoT 騰云之路與在線樹莓派模擬器。微軟準(zhǔn)備了上百篇新手教程,幫助開發(fā)者在幾分鐘內(nèi)將自己的設(shè)備連接至 Azure 智能云。這些教程囊括了 500 多種市面上主流的物聯(lián)網(wǎng)開發(fā)板,包括C, Python, Node, Java, C#等主流開發(fā)語言。此外還有進(jìn)階教程,幫助開發(fā)者將已連上 Azure 的設(shè)備結(jié)合 Azure 智能云的其它功能,做進(jìn)一步的設(shè)備管理、人工智能數(shù)據(jù)處理,數(shù)據(jù)可視化等功能。開發(fā)者沒有物理設(shè)備也沒關(guān)系,微軟提供了在線的樹莓派模擬器,幫助開發(fā)者跨出物聯(lián)網(wǎng)開發(fā)的***步。
使用 Visual Studio 和 Visual Studio Code 管理物聯(lián)網(wǎng)服務(wù)和設(shè)備。為了給開發(fā)者提供無縫的開發(fā)體驗(yàn),微軟在***的開發(fā)工具 Visual Studio 和 Visual Studio Code 中提供了連接 Azure IoT 的插件,目前已經(jīng)有超過 8 萬用戶下載使用。
使用 Azure IoT Devkit 物聯(lián)網(wǎng)開發(fā)套件進(jìn)行快速物聯(lián)網(wǎng)項(xiàng)目開發(fā)。在去年 9 月的微軟 Ignite 大會(huì)上推出的 Azure IoT DevKit 開發(fā)套件,在一塊信用卡大小的開發(fā)板上集成了物聯(lián)網(wǎng)開發(fā)和評(píng)估所需的常見的傳感器、屏幕與安全芯片,用以幫助物聯(lián)網(wǎng)開發(fā)者迅速上手,而無需在硬件選型與連接上花費(fèi)時(shí)間精力。依托 Visual Studio Code,用戶可以使用 Arduino 代碼對(duì)設(shè)備端進(jìn)行開發(fā),并方便地連接到 Azure IoT 和其它豐富的 Azure 服務(wù)。目前此開發(fā)套件已經(jīng)成為微軟各項(xiàng)物聯(lián)網(wǎng)培訓(xùn)和會(huì)議上所使用的***開發(fā)套件。
Arduino 擴(kuò)展。Visual Studio Code 構(gòu)建了 Arduino 擴(kuò)展, 以滿足來自 Arduino 開發(fā)者和社區(qū)長期以來對(duì)代碼提示、項(xiàng)目創(chuàng)建、代碼片段、例程集成等功能的需求,還提供了 Arduino IDE 中缺失的硬件調(diào)試。自 2017 年 4 月***發(fā)布以來, 這項(xiàng)功能在 Visual Studio Code 市場上的下載量已超過 13 萬次,成為很多 Arduino 物聯(lián)網(wǎng)開發(fā)者***的開發(fā)工具。
Azure 長遠(yuǎn)規(guī)劃:在云端為開源工具提供一等支持
越來越多的開發(fā)者希望使用成熟的開源工具來構(gòu)建和操作大規(guī)模的云應(yīng)用,因此微軟的長期目標(biāo)是在 Azure 智能云平臺(tái)上為主流的開源工具提供一等支持。為此,微軟也在持續(xù)、積極地貢獻(xiàn)代碼到開源社區(qū)項(xiàng)目中,目前微軟智能云 Azure 正重點(diǎn)支持的項(xiàng)目包括 Kubernetes、Jenkins、Ansible、Terraform 等。
Kubernetes(K8S)是用于自動(dòng)部署、擴(kuò)展和管理容器化(containerized)應(yīng)用程序的開源系統(tǒng),也是目前主流的微服務(wù)與容器架構(gòu)工具。隨著 K8S 的項(xiàng)目發(fā)起人 Brenden Burns 與主要貢獻(xiàn)者 Gabe Monroy 相繼加入微軟,K8S 更成為微軟容器服務(wù)(Azure Kubernetes Service, AKS)的重要元素。微軟除了將 K8S 提供托管服務(wù)版本的 AKS 外,更宣示將在開源方面持續(xù)貢獻(xiàn)該項(xiàng)目,以及發(fā)展更豐富的開發(fā)、運(yùn)維相關(guān)工具(包含 Helm、Brigade、Draft 等)與源代碼,同時(shí)也與 Visual Studio Code 進(jìn)行深度集成。
Jenkins 是一個(gè)非常受歡迎的開源自動(dòng)化服務(wù)器,主要用于設(shè)置軟件項(xiàng)目持續(xù)集成和交付 (CI/CD)。Azure 鏡像市場已經(jīng)提供了 Jenkins 解決方案模板,幫助用戶使用 Azure 資源托管 Jenkins 部署或擴(kuò)展現(xiàn)有的 Jenkins 配置,其***功能不但允許用戶在虛擬機(jī)上運(yùn)行 Jenkins Agent,還能在 Azure 容器實(shí)例上運(yùn)行 Jenkins Agent。
另一個(gè)開源自動(dòng)化產(chǎn)品Ansible主要用于自動(dòng)執(zhí)行云預(yù)配、配置管理和應(yīng)用程序部署。 使用 Ansible 可預(yù)配虛擬機(jī)、容器和網(wǎng)絡(luò),以及完成云基礎(chǔ)結(jié)構(gòu)。 一方面,微軟直接貢獻(xiàn)代碼到 GitHub 上的 Ansible 開源項(xiàng)目,讓它能更好預(yù)配 Azure 的資源;同時(shí)也在 Visual Studio Code 里發(fā)布了 Ansible 插件,為 Ansible Playbook 的開發(fā)提供了很好的代碼智能提示、自動(dòng)補(bǔ)全和本地、容器、遠(yuǎn)端 SSH、云端執(zhí)行的支持。
Hashicorp Terraform 是一種用于預(yù)配和管理云基礎(chǔ)結(jié)構(gòu)的開源工具,用于編寫描述云資源拓?fù)涞呐渲梦募械幕A(chǔ)結(jié)構(gòu),例如虛擬機(jī)、存儲(chǔ)帳戶和網(wǎng)絡(luò)接口。在 Terraform 的 Registry 里里可以找到諸多 Azure 的模塊,其中一部分由微軟開發(fā),另一部分則直接由社區(qū)的愛好者們貢獻(xiàn)。
類似這樣由微軟開發(fā)團(tuán)隊(duì)與開源社區(qū)共同努力打造的開源項(xiàng)目不勝枚舉。目前微軟有超過 6000 位工程師投入開源項(xiàng)目,9700 多個(gè)開源組件被采用,發(fā)布開源項(xiàng)目超過 3000 個(gè)。微軟還在持續(xù)不斷地將過去閉源的項(xiàng)目逐漸開源,包含 Service Fabric、Windows Container、Service Broker 等,并不斷與廣大開發(fā)者社群一起貢獻(xiàn)更多開源項(xiàng)目。
繼 2016 年在 “章魚貓報(bào)告”中上榜 GitHub 貢獻(xiàn)***的組織之后,微軟 Visual Studio Code 在 2017 年成為貢獻(xiàn)者最多的項(xiàng)目,一方面證明了開源社區(qū)對(duì) Visual Studio Code 的喜愛,同時(shí)也證明了微軟實(shí)實(shí)在在地兌現(xiàn)了自己對(duì)于開源世界的承諾。