真正支持所有.NET工作负载的平台:Pivotal Cloud Foundry

.NET开发人员应该很高兴看到最近.NET不断呈现的复兴趋势。Microsoft最终选择拥抱开源软件。现在,您可以在Linux服务器上运行.NET Core工作负载。Windows 2016中还提供了对容器的支持。这开启了一个全新时代。

许多企业还有成千上万的Windows服务器,全部运行着IIS并托管了大量的.NET应用。因此,这些可喜的变化对于向前发展起到了很好的作用,但有些问题还需要解决。能否将.NET工作负载迁移到云中?如何管理所有这些Windows计算机?应该在何处运行.NET Framework应用?

选择一个平台来运行.NET工作负载

如果您问上述这些问题,就表明您已经了解到云应用平台的价值。其他益处暂且不说,在一个平台上运行所有应用无疑能够提高开发人员的工作效率。因为平台可以帮助完成管理基础架构和其他基础功能方面的大部分繁琐工作。

因此,您需要一个这样的平台。目前,市场上有很多选择:您可能尝试过Kubernetes,或者,管理层可能倾向于使用原生公有云服务。

但是,面对的是.NET应用。您打算重构一切来使用.NET Core吗?如果没有这种打算,那么您需要注册表、Global Assembly Cache和文件系统等。您还需要一个Windows主机。

这样一来,所有当前版本的Kubernetes都被排除在外。(至少现在是这样。Kubernetes迟早会提供对Windows的全面支持,但目前尚未推出。要做到这一点,还要一番努力。)那么,公有云可行吗?只要您想继续和虚拟机打交道就没问题。所有的公有云提供商只提供基于Kubernetes的容器服务。因此,如果您想在公有云上运行.NET Framework应用,就需要回头重新开始管理Windows主机(并支付费用)。

对基于容器的Windows工作负载,只有一个平台可以全面满足您的需求,它就是:Pivotal Cloud Foundry。

唯一支持.NET Framework的云原生平台

Pivotal始终坚信,Windows用户和.NET开发人员应该得到与Linux和Java用户同样的一流待遇。正因如此,我们设立了Steeltoe项目,该项目让我们在2017年荣获了Microsoft Azure的“年度最佳合作伙伴”奖。它还促使我们打造了首个在生产环境中支持Windows容器的多云平台。

我们支持.NET Framework工作负载已经有一段时间了。有一些客户已经成功在生产环境中运行数百个.NET Framework应用。

现在,随着Windows 2016中引入容器,使用体验更加完善。以下是可以在PCF上实现而其他平台不支持的操作:

运行.NET Framework和.NET Core工作负载。您可以放心地运行.NET Core应用。还可以推送ASP.NET Web Forms或MVC应用。甚至可以部署WCF服务或控制台应用。完全不用担心.NET工作负载的类型,让平台决定该怎么做!

使用平台构建的Windows容器。PAS for Windows(属于PCF产品系列)在后台运行原生Windows容器。此外,您也可以放心大胆地自行构建容器。只需编写代码并推送即可。平台将为您构建OCI兼容的容器,而且提供必要的安全功能,比如文件系统和网络隔离,以及磁盘、CPU和内存使用限制。更重要的是,所有应用都在一个没有特权的容器用户下运行。您甚至可以通过SSH直接访问运行中的容器,执行某些故障排除。(像魔法一样神奇有没有?!)

Windows事件日志流式处理。无需再使用RDP访问服务器和启动Event Viewer。借助PAS for Windows,您只需为Windows Event Logs配置一个syslog端点,然后使用Splunk或DataDog等工具即可查看、筛选和分析日志。

Visual Studio集成和.NET Framework应用的远程调试。PCF支持Microsoft的适用于Visual Studio的Cloud Foundry插件,这样一来,您可以针对在PAS for Windows中运行的应用执行Visual Studio远程调试。

简化的Windows基础架构管理。运营工作也可以获得益处。通常,在Windows服务器环境中实施不可变基础架构的理念是很有挑战性的。所幸,PCF由BOSH提供支持,这意味着自动构建的强化Windows服务器实例能够在发生故障时实现自愈。这也意味着在您需要修补时,支持对新基础镜像进行零停机部署。如果这些听起来太过不可思议,您想有一些基本保障,别担心,您仍旧能够通过RDP或SSH访问服务器、查找并修复问题。

这一切都是可能的,因为PCF为您运行Windows主机,同时提供与Linux工作负载相同的抽象。这是Kubernetes目前无法做到的。

在PCF上使用.NET开发微服务

现在,有了这个平台可以支持所有.NET工作负载,您可能还想在新的.NET开发工作中利用现代的应用架构(如微服务)。在这种情况下,PCF也会给您带来一些其他平台没有的优势:

Steeltoe与Apps Manager集成。Steeltoe是一组开源库,这些开源库属于.NET Foundation的组成部分。这些库旨在帮助.NET开发人员构建云原生应用和微服务。Steeltoe提供端点来公布有用信息,如健康状态、最近的HTTP请求和线程转储。PCF利用这些端点,让您在Apps Manager中更好地掌握运行中的应用的状况。此外,Steeltoe还将Spring Cloud和NetflixOSS等受欢迎的项目扩展到了.NET环境。这意味着它能够以可移植的方式支持常见的微服务组件,如服务发现、配置服务器和断路器,而不需要像其他解决方案那样必须使用特定于服务的代码库。

PCF Metrics提供可观察性。PCF Metrics能够全面展现应用的性能。指标、日志和事件都以一种直观且上下文相关的方式聚合在一起。它可以分析容器指标,并与应用日志相关联。作为PAS中内置的组件,PCF Metrics能够处理平台上运行的任何.NET应用。当您在复杂的微服务交互网络中进行调试时,它会更有帮助。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809G077KL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励