Virtual Studio 2015发布利器:通过IDE直接发布容器化ASP.NET 5 到云中

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

Docker容器化趋势目前已经进入了快速发展阶段,关于Docker容器数据中心级别大规模应用集群及编排管理,应用微服务化都是业界广泛讨论的议题;不过除了上述热点以外,对于容器化最为开发运维人员推崇的,莫过于DevOps开发测试场景的对应:开发,构建,运行,保证配置运行环境及打包代码转移运行的一致性!不过之前多数情况下,我们看到的Docker打包并非开发工具直接集成的,需要开发运维人员手工编写,现在已经开始逐渐过渡和改观,对.NET开发者而言Visual Studio 2015 Tools for Docker - August Preview目前在公开预览阶段,已经更新到了0.7 Beta版;目前通过这个工具开发者可以轻松的将开发的ASP.NET 5 Web或控制台应用代码构建并发布到运行在Azure公有云中的虚拟机容器中,在通过ASP.NET跨平台的前提下目前支持Linux或Windows两种内核虚拟机。当然本人设想的场景是发布到云中的测试环境,如果测试过程没有问题,之后就可以将同样的构建程序包和环境配置文件转交给运维人员进行生产部署。

这么令人兴奋的功能,还是让我们一起体验一下:

环境准备:


    • 企业版

    • 专业版

    • 社区版

(*目前只支持英文版本,这里要注意目前预览版还不支持多语言版,所以如果是中文版的VS 2015还是再耐心等等吧)

  • 预览阶段VS Tools for Docker还没有做好ASP.NET和Web工具依赖关系,本人就在测试中吃了这个亏,没有注意需要预装工具包,因此在VS 2015中无法选择在Azure上创建新的Docker虚拟机,参考了这篇文章才发现了问题所在。

扩展工具的主要功能:

  • 安装Docker 1.8.1 Windows命令行工具集,如果Windows本地没有安装的话VS 2015工具会帮助安装,借助Docker的工具VS 2015扩展工具才能实现对于Docker容器的管理和部署。

  • 自动生成Azure Docker虚拟机资源模板用于在Azure上创建内置Docker功能的Linux/Windows 虚拟机用于承载Web或控制台程序。

  • 在当前用户环境自动生成Docker TLS安全通信及管理证书用于远程管理Azure端托管的Docker虚拟机环境。

  • 打包应用程序并生成Dockerfile用于构建应用程序基础映像。

准备环境就绪以后,可以开始进行测试了;

1. 首先创建一个ASP.NET Web应用程序,

2. 接下来,选择ASP.NET预览版应用模板,此模板会通过NuGet下载项目所需引用的跨平台库DNX,打包配置工具NPM, Bower等,

(*注意此时不要勾选部署到Web App中)

3. 项目建好之后,我们就可以尝试发布了:)选择发布应用

4. 在扩展工具安装之后,我们可以此时看到Docker Container选项,当然这里我们要选择通过容器方式发布,选择它;

5. 接下来,如果我们在Azure上没有Docker虚拟机环境,我们可以选择创建新的Azure Docker虚拟机(这里可是坑了我很长时间,希望看了上面预装环境,大家不会碰到类似问题)

6. 这里可以根据实际Azure环境选择订阅,位置,映像文件(这里选择的是最新的Windows Server 2016 TP3的Windows内核容器环境),尺寸,虚拟机用户凭据等,注意如果之前没有在当前用户环境创建过证书文件,扩展工具内置的PowerShell脚本会检测到并帮助你创建用于Docker环境TLS管理的证书文件到该目录下,并且这样通过Docker工具或脚本连接资源时,就可以通过默认证书配置连接了。

(*注意,目前此功能只能支持国际版的Azure环境,对于国内Azure版本我们还需要耐心等待)

7. 我们选择完成之后,其实可以从当前Web工程中看到扩展工具为我们生成的构建Docker虚拟机资源组的配置文件*.json,及默认参数配置文件*.param.dev.json;另外还会生成证书文件创建及应用Docker虚拟机模板创建Docker虚拟机环境的脚本文件;

8. 开始创建虚拟机资源组,泡杯咖啡耐心等待,直到虚拟机创建成功等待我们部署我们的Web应用。

9. 我们可以通过PowerShell验证一下是否资源已经创建好了;

1
2
3
4
5
6
7
8
9
10
11
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. 接下来,我们可以在此虚拟机上部署我们的测试Web应用了,再次选择发布选项;此时如果Dockfile部分没有文件,没有关系,扩展工具会帮助我们创建用户创建基础Docker映像的Dockfile;点击Validate Connection确认此时已经可以连接到Azure上的Docker虚拟机环境;

11. 选择发布后,扩展工具会通过gulp/Grunt,DNU.CMD打包Web应用程序,并通过Dockfile和Docker命令行工具创建映像文件;之后通过映像文件创建容器并按照我们在上一步制定的映射端口映射容器到外部,测试中发现其实包括Azure外部的端点Endpoint映射也帮我们做好了,还真是事半功倍啊!

wKioL1Xr5CCzPKVTAAT0hW4BH-U955.jpg

wKiom1Xr4fqTdwOFAAPKLwGaG90176.jpg

12. 全部部署完成之后,我们可以点击output中的应用URL访问网站并验证是否ASP.NET应用已经部署成功,

wKiom1Xr4jjgD2O2AAU0Y9wAd2k162.jpg


13. 此时如果愿意,也可以在测试机上连接Azure上的Docker环境并查看容器运行时环境:


wKioL1Xr5OPCftEIAADG02zTvpc913.jpg

wKioL1Xr5PGjcXyTAAO_tDHdUbc776.jpg


行文至此,这个Docker集成工具就先到这里吧,希望对公有云,.NET跨平台以及容器应用有兴趣的朋友可以自行体验:)










本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1691910,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
IDE 开发工具 Windows
DevEco Studio IDE 创建项目时候配置环境
DevEco Studio IDE 创建项目时候配置环境
23 0
|
6月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
49 0
|
9月前
|
开发框架 人工智能 前端开发
Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
188 0
|
9月前
|
开发框架 .NET C#
Visual Studio Code调试和发布ASP.NET Core Web应用
Visual Studio Code调试和发布ASP.NET Core Web应用
111 0
|
11月前
|
IDE 编译器 开发工具
教你如何使用 Visual Studio IDE 正确的进行 C++ 桌面开发
教你如何使用 Visual Studio IDE 正确的进行 C++ 桌面开发
|
IDE 开发工具 C语言
使用Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法
使用Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法
|
IDE 开发工具 C语言
Visual Studio 2017 IDE的安装与最基本使用
Visual Studio 2017 IDE的安装与最基本使用
Visual Studio 2017 IDE的安装与最基本使用
|
IDE 编译器 开发工具
IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程
IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程
IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程
|
IDE 开发工具 内存技术
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 解决编译后显示RAM占用率100%的问题
上一篇文章中,我们一同学习了“如何开启编程后打印FLASH以及RAM占用信息”的功能,但是在实际开发中,尽管我们的程序并未使用到全部的RAM空间,但仍存在IDE中该打印信息提示RAM占用达到100%的情况
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 解决编译后显示RAM占用率100%的问题
|
IDE 开发工具 芯片
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息
在嵌入式开发中,我们有时需要在编译结束后查看目标芯片FLASH及RAM区使用占比情况,而大部分IDE是默认关闭该功能的,此时我们可以通过以下步骤来手动来开启
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息