一切福田,不離方寸,從心而覓,感無不通。

将 ASP.NET MVC 应用程序迁移到 Windows 容器

在 Windows 容器中运行现有的 .NET Framework 应用程序不需要对应用程序进行任何更改。 若要在 Windows 容器中运行应用程序,请创建包含应用程序的 Docker 映像,然后启动容器。 本主题介绍了如何获取现有的 ASP.NET MVC 应用程序,并在 Windows 容器中进行部署。 从现有的 ASP.NET MVC 应用程序入手,然后使用 Visual Studio 生成已发布的资产。 使用 Docker 创建包含并运行应用程序的映像。 转到在 Windows 容器中运行的网站,验证应用程序是否正常运行。 本文可确保基本了解 Docker。 若要了解 Docker,请参阅 Docker 概述。 在容器中运行的应用程序是一个随机回答问题的简单网站。 此应用程序是一款不具备身份验证或数据库存储的基本 MVC 应用程序,让你可以专心处理将 Web 层移到容器中。 后续主题将演示如何在容器化应用程序中移动和管理永久性存储。 移动应用程序涉及以下步骤: 创建发布任务以生成映像资产。 生成将运行应用程序的 Docker 映像。 启动用于运行映像的 Docker 容器。 使用浏览器验证应用程序。 完成的应用程序位于 GitHub 上。 系统必备 开发计算机必须运行 Windows 10 周年更新(或更高版本)或 Windows Server 2016(或更高版本)。 用于 Windows 的 Docker – 稳定版 1.13.0 或 1.12 beta 版本 26(或更高版本) Visual Studio 2017。 重要 如果使用的是 Windows Server 2016,请按容器主机部署 – Windows Server 中的说明操作。 安装并启动 Docker 后,右键单击托盘图标,然后选择“切换到 Windows 容器”。 必须先这样做,才能在 Windows 上运行 Docker 映像。 此命令需要几秒钟执行: 发布脚本 将需要加载到 Docker 映像中的所有资产都汇集到一处。 可以使用 […]

龙生   08 Jun 2018
View Details

大话微服务架构之微服务框架微软ServiceFabric正式开源(三)

选择315这天分享一个好框架-ServiceFabric,它于昨天正式开源了! 微软的 Azure Service Fabric 的官方博客在2017.3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的 Service Fabric 开源的情况以及当前的情况,当时开源了 Service Fabric的.NET SDK 部分,社区一直在期盼着 Service Fabric 的正式开源,经过了一年漫长的等待,2018年3月14日微软终于开源了 Service Fabric ,而且是以 MIT 许可下开放源代码,在官方博客宣布 https://blogs.msdn.microsoft.com/azureservicefabric/2018/03/14/service-fabric-is-going-open-source。 目前微软在 Github 上的开源地址是 https://github.com/Microsoft/service-fabric,目前的代码构建适用于 Linux 的 Service Fabric ,运行基本测试,有问题可以在上面提交 issue 和 PR 了,Windows 构建环境以及完整的 CI 环境还没有迁移过来。Windows 内部为 Service Fabric 开发了将近十年的内部服务,其中大部分时间都是微软内部平台,比如 Office365,Azure Stack 平台等,这意味着我们有近十年的内部微软工具可以在迁移之前完成迁移和流程细化,逐步全部开源,以后全部开发都在开源模式下进行开发工作。 微软去年漫长的一年时间里也开放了非常多的代码,包括包括 Reliable Services,Reliable Actors 和 ASP.NET Core 集成库,Azure 基础架构服务以及 Azure SQL DB,Azure Cosmos DB 和 Cortana 等大型解决方案都在使用 Service Fabric 构建。 Service Fabric 会带来如下好处: 支持创建无状态和有状态的微服务,通过云平台来伸缩他们,以应对高复杂度、低延迟、数据密集的情况 通过应用程序级别的感知和洞察,为微服务带来编排和自动化的优势 解决分布式系统诸如状态管理这样的难点,为开发人员提供应用程序生命周期管理的能力以便随着业务的增长无需重构系统架构 相关工具会集成到 Visual Studio 中,也会提供相应命令行工具,以便开发人员能够快速和轻易地上手 同时支持.NET和Java,这个特性特别适合目前国内原来很多投资于 .NET 平台。 那么接下来,我们主要来详细看下Service Fabric是什么?有哪些特性? […]

龙生   08 Jun 2018
View Details

Windows 容器

什么是容器 容器是一种将应用程序包装到其自身隔离空间内的方法。 位于容器中的应用不了解该容器外存在的所有其他应用程序或进程。 应用程序成功运行所需的所有依赖项也存在于此容器内。 无论容器移动到何处,应用程序都将始终得到满足,因为应用程序与其运行所需的一切都已绑定在一起。 这就好像是一个厨房。 我们打包所有的电器和家具、锅碗瓢盆、洗洁精和毛巾。 这便是我们的容器 我们现在可以带着这个容器,将它放在任何喜欢的入住公寓中,厨房还会是这个厨房。 我们所需做的全部工作就是为它接通水电,然后我们便可以立即开始烹饪(因为我们拥有所有需要的器具!) 容器在很大程度上就像是这个厨房。 可以有不同类型的房间以及许多相同类型的房间。 重要的一点是容器与其所需的一切内容打包在一起。 在此处观看简短概述:基于 Windows 的容器:使用企业级控制的现代应用开发。 容器基础知识 容器是独立的、资源受控制的和可移植的运行时环境,在主机或虚拟机上运行。 在容器中运行的应用程序或进程与所有需要的依赖项和配置文件打包在一起;在它看来,容器之外似乎没有任何其他进程在运行。 容器的主机为容器预配一组资源,且容器只会使用这些资源。 在容器看来,除了已经为其提供的资源之外,不存在其他资源,因此它不能接触到可能已为相邻容器预配的资源。 在你开始创建和使用 Windows 容器时,以下关键概念将会很有用。 容器主机:使用 Windows 容器功能配置的物理或虚拟计算机系统。 容器主机将运行一个或多个 Windows 容器。 容器映像:在对容器文件系统或注册表进行修改时(如软件安装),将在沙盒中捕获这些修改。 在许多情况下,你可能希望捕获此状态,以便可以创建继承这些更改的新容器。 这就是映像的本质:一旦容器停止,你便可以放弃该沙盒,或者可以将其转换为新的容器映像。 例如,让我们想象你已从 Windows Server Core 操作系统映像部署一个容器。 然后你将 MySQL 安装到此容器中。 从此容器创建新映像将充当该容器的可部署版本。 此映像将只包含所做的更改 (MySQL),但是将充当容器操作系统映像之上的一个层。 沙盒:容器启动后,将在此“沙盒”层中捕获所有的写入操作,如文件系统修改、注册表修改或软件安装。 容器操作系统映像:从映像部署容器。 容器操作系统映像是可能组成容器的许多映像层中的第一层。 此映像提供操作系统环境。 容器操作系统映像是不可变的。 也就是说,不能对其进行修改。 容器存储库:每次创建容器映像时,容器映像及其依赖项都会存储在本地存储库中。 这些映像可以在容器主机上重复使用多次。 容器映像还可以存储在公共或私有注册表(如 DockerHub)中,以便可以在许多不同的容器主机上使用它们。 对于熟悉虚拟机的人员而言,容器可能具有令人难以置信的相似性。 容器在操作系统上运行、具有文件系统,并且可以通过网络访问,就像它是物理或虚拟计算机系统一样。 话虽如此,但容器背后的技术和概念与虚拟机有很大不同。 Microsoft Azure 专家 Mark Russinovich 有一篇精彩的博客文章详述了这些差异。 Windows 容器类型 Windows 容器包括两个不同的容器类型或运行时。 Windows Server 容器 – 通过进程和命名空间隔离技术提供应用程序隔离。 Windows Server 容器与容器主机和该主机上运行的所有容器共享内核。 这些容器不提供敌对安全边界,不应该用于隔离不受信任的代码。 由于共享内核空间,这些容器要求具有相同的内核版本和配置。 Hyper-V 隔离 – 通过在高度优化的虚拟机中运行每个容器,在由 Windows Server 容器提供的隔离上扩展。 在此配置中,容器主机的内核不与相同主机上的其他容器共享。 这些容器旨在托管敌对多租户,并且具有与虚拟机相同的安全保证。 由于这些容器与主机或主机上的其他容器不共享内核,它们可运行(与受支持的版本)采用不同版本和配置的内核 – 例如 Windows […]

龙生   08 Jun 2018
View Details