溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

發(fā)布時(shí)間:2020-06-29 00:12:16 來源:網(wǎng)絡(luò) 閱讀:8245 作者:翟老貓 欄目:編程語言

Docker容器化趨勢目前已經(jīng)進(jìn)入了快速發(fā)展階段,關(guān)于Docker容器數(shù)據(jù)中心級別大規(guī)模應(yīng)用集群及編排管理,應(yīng)用微服務(wù)化都是業(yè)界廣泛討論的議題;不過除了上述熱點(diǎn)以外,對于容器化最為開發(fā)運(yùn)維人員推崇的,莫過于DevOps開發(fā)測試場景的對應(yīng):開發(fā),構(gòu)建,運(yùn)行,保證配置運(yùn)行環(huán)境及打包代碼轉(zhuǎn)移運(yùn)行的一致性!不過之前多數(shù)情況下,我們看到的Docker打包并非開發(fā)工具直接集成的,需要開發(fā)運(yùn)維人員手工編寫,現(xiàn)在已經(jīng)開始逐漸過渡和改觀,對.NET開發(fā)者而言Visual Studio 2015 Tools for Docker - August Preview目前在公開預(yù)覽階段,已經(jīng)更新到了0.7 Beta版;目前通過這個(gè)工具開發(fā)者可以輕松的將開發(fā)的ASP.NET 5 Web或控制臺應(yīng)用代碼構(gòu)建并發(fā)布到運(yùn)行在Azure公有云中的虛擬機(jī)容器中,在通過ASP.NET跨平臺的前提下目前支持Linux或Windows兩種內(nèi)核虛擬機(jī)。當(dāng)然本人設(shè)想的場景是發(fā)布到云中的測試環(huán)境,如果測試過程沒有問題,之后就可以將同樣的構(gòu)建程序包和環(huán)境配置文件轉(zhuǎn)交給運(yùn)維人員進(jìn)行生產(chǎn)部署。

這么令人興奮的功能,還是讓我們一起體驗(yàn)一下:

環(huán)境準(zhǔn)備:

  • 首先顧名思義擴(kuò)展程序是支持VS 2015的,因此要體驗(yàn)這個(gè)功能沒有升級的還是快快升級一下https://www.visualstudio.com/downloads/download-visual-studio-vs, 目前支持三個(gè)版本:


    • 企業(yè)版

    • 專業(yè)版

    • 社區(qū)版

(*目前只支持英文版本,這里要注意目前預(yù)覽版還不支持多語言版,所以如果是中文版的VS 2015還是再耐心等等吧)

  • 預(yù)覽階段VS Tools for Docker還沒有做好ASP.NET和Web工具依賴關(guān)系,本人就在測試中吃了這個(gè)虧,沒有注意需要預(yù)裝工具包,因此在VS 2015中無法選擇在Azure上創(chuàng)建新的Docker虛擬機(jī),參考了這篇文章才發(fā)現(xiàn)了問題所在。

擴(kuò)展工具的主要功能:

  • 安裝Docker 1.8.1 Windows命令行工具集,如果Windows本地沒有安裝的話VS 2015工具會(huì)幫助安裝,借助Docker的工具VS 2015擴(kuò)展工具才能實(shí)現(xiàn)對于Docker容器的管理和部署。

  • 自動(dòng)生成Azure Docker虛擬機(jī)資源模板用于在Azure上創(chuàng)建內(nèi)置Docker功能的Linux/Windows 虛擬機(jī)用于承載Web或控制臺程序。

  • 在當(dāng)前用戶環(huán)境自動(dòng)生成Docker TLS安全通信及管理證書用于遠(yuǎn)程管理Azure端托管的Docker虛擬機(jī)環(huán)境。

  • 打包應(yīng)用程序并生成Dockerfile用于構(gòu)建應(yīng)用程序基礎(chǔ)映像。

準(zhǔn)備環(huán)境就緒以后,可以開始進(jìn)行測試了;

1. 首先創(chuàng)建一個(gè)ASP.NET Web應(yīng)用程序,

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

2. 接下來,選擇ASP.NET預(yù)覽版應(yīng)用模板,此模板會(huì)通過NuGet下載項(xiàng)目所需引用的跨平臺庫DNX,打包配置工具NPM, Bower等,

(*注意此時(shí)不要勾選部署到Web App中)

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

3. 項(xiàng)目建好之后,我們就可以嘗試發(fā)布了:)選擇發(fā)布應(yīng)用

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

4. 在擴(kuò)展工具安裝之后,我們可以此時(shí)看到Docker Container選項(xiàng),當(dāng)然這里我們要選擇通過容器方式發(fā)布,選擇它;

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

5. 接下來,如果我們在Azure上沒有Docker虛擬機(jī)環(huán)境,我們可以選擇創(chuàng)建新的Azure Docker虛擬機(jī)(這里可是坑了我很長時(shí)間,希望看了上面預(yù)裝環(huán)境,大家不會(huì)碰到類似問題)

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

6. 這里可以根據(jù)實(shí)際Azure環(huán)境選擇訂閱,位置,映像文件(這里選擇的是最新的Windows Server 2016 TP3的Windows內(nèi)核容器環(huán)境),尺寸,虛擬機(jī)用戶憑據(jù)等,注意如果之前沒有在當(dāng)前用戶環(huán)境創(chuàng)建過證書文件,擴(kuò)展工具內(nèi)置的PowerShell腳本會(huì)檢測到并幫助你創(chuàng)建用于Docker環(huán)境TLS管理的證書文件到該目錄下,并且這樣通過Docker工具或腳本連接資源時(shí),就可以通過默認(rèn)證書配置連接了。

(*注意,目前此功能只能支持國際版的Azure環(huán)境,對于國內(nèi)Azure版本我們還需要耐心等待)

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

7. 我們選擇完成之后,其實(shí)可以從當(dāng)前Web工程中看到擴(kuò)展工具為我們生成的構(gòu)建Docker虛擬機(jī)資源組的配置文件*.json,及默認(rèn)參數(shù)配置文件*.param.dev.json;另外還會(huì)生成證書文件創(chuàng)建及應(yīng)用Docker虛擬機(jī)模板創(chuàng)建Docker虛擬機(jī)環(huán)境的腳本文件;

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

8. 開始創(chuàng)建虛擬機(jī)資源組,泡杯咖啡耐心等待,直到虛擬機(jī)創(chuàng)建成功等待我們部署我們的Web應(yīng)用。

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

9. 我們可以通過PowerShell驗(yàn)證一下是否資源已經(jīng)創(chuàng)建好了;

Switch-AzureMode -Name AzureResourceManager
Get-AzureResource -Name DemoAsp5Net -OutputObjectFormat New
Name              : demoasp5net
ResourceId        : /subscriptions/3cf430da-bda2-4739-b6c8-44092933335b/resourceGroups/demoasp5net/providers/Microsoft.
                    Compute/virtualMachines/demoasp5net
ResourceName      : demoasp5net
ResourceType      : Microsoft.Compute/virtualMachines
ResourceGroupName : demoasp5net
Location          : westus
SubscriptionId    : 3cf430da-bda2-4739-b6c8-44092933335b
Tags              : {System.Collections.Hashtable}

10. 接下來,我們可以在此虛擬機(jī)上部署我們的測試Web應(yīng)用了,再次選擇發(fā)布選項(xiàng);此時(shí)如果Dockfile部分沒有文件,沒有關(guān)系,擴(kuò)展工具會(huì)幫助我們創(chuàng)建用戶創(chuàng)建基礎(chǔ)Docker映像的Dockfile;點(diǎn)擊Validate Connection確認(rèn)此時(shí)已經(jīng)可以連接到Azure上的Docker虛擬機(jī)環(huán)境;

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

11. 選擇發(fā)布后,擴(kuò)展工具會(huì)通過gulp/Grunt,DNU.CMD打包Web應(yīng)用程序,并通過Dockfile和Docker命令行工具創(chuàng)建映像文件;之后通過映像文件創(chuàng)建容器并按照我們在上一步制定的映射端口映射容器到外部,測試中發(fā)現(xiàn)其實(shí)包括Azure外部的端點(diǎn)Endpoint映射也幫我們做好了,還真是事半功倍??!

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

12. 全部部署完成之后,我們可以點(diǎn)擊output中的應(yīng)用URL訪問網(wǎng)站并驗(yàn)證是否ASP.NET應(yīng)用已經(jīng)部署成功,

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中


13. 此時(shí)如果愿意,也可以在測試機(jī)上連接Azure上的Docker環(huán)境并查看容器運(yùn)行時(shí)環(huán)境:


Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中

Virtual Studio 2015發(fā)布利器:通過IDE直接發(fā)布容器化ASP.NET 5 到云中


行文至此,這個(gè)Docker集成工具就先到這里吧,希望對公有云,.NET跨平臺以及容器應(yīng)用有興趣的朋友可以自行體驗(yàn):)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI