概述
.NET(前称为 .NET Core)是一个开源开发平台,用来构建在 Linux 和 Windows 上运行的跨平台云应用和控制台应用。
.NET 又细分为三个不同的框架,允许 .NET 代码在不同位置执行——即 .NET Core、.NET Framework 和 Xamarin/Mono。.NET Core 是可以在 Windows、Linux 和 macOS 上的任何位置运行的跨平台框架。.NET Framework 是 .NET 的原始实现,支持在 Windows 上运行网站、服务、桌面应用等。而 Xamarin/Mono 是针对移动设备的 .NET,可在所有主流移动端操作系统(包括 iOS 和 Android)上运行应用。
在微软接受 Linux 作为关键平台之前,.NET 最初的代码并不开放,且仅适用于 Windows。
为什么要对 .NET 应用进行现代化?
尽管 .NET 现在已经开源,并且可以在多个平台上使用,但如果某个解决方案采用的是只能在 Windows 环境中运行的 .NET Framework,那就可能会出现问题。我们需要对 .NET Framework 做现代化改造,使其能够完美兼容 Linux 环境。
许多企业都意识到,大量传统工作负载、底层平台、技术和传统开发实践阻碍了业务敏捷和创新。这是因为传统系统是在云计算、云原生开发实践、Linux 容器和其他最新先进技术出现之前开发的。但是,这些传统系统中仍然有许多业务关键型工作负载,并且是无法轻易替换或停用的长期重大投资。
这常会使企业陷入两难处境,一方面又必须继续维护这些系统,一方面又要积极创新、满足新客户期望并把握新的机会。这些传统应用可能需要大量时间、预算和资源来维护,因此它们往往就会成为创新的重大阻碍。
在工作负载的现代化改造中,我们可以将工作负载迁移到现代平台,把单体式应用分解为更小、更易于维护的组件(如微服务),推行一些现代软件开发和部署实践,并进行新旧集成,从而实现让传统工作负载重拾敏捷的目的。
好处
把现有的 .NET 工作负载移到更现代的平台,归根结底要看发人员希望花费多少精力以及团队如何接受流程中的变化。考虑到这一点,对工作负载进行现代化改造有立竿见影的好处,例如:
- 更方便扩展:.NET 工作负载今后可以按需扩展。
- 更可靠:.NET 工作负载将在更稳定且更有弹性的环境中更加可靠地运行。
- 更安全:现有的云实践可以为 .NET 工作负载带来额外的安全防护。
- 成本更低:方便应用更多自动化,帮助企业降低成本。
如何对 .NET 应用进行现代化?
容器化和 Kubernetes 技术如今已经非常成熟,可以在任何服务器上对 .NET 进行容器化。根据业务需求,企业可以选择最适合自己的现代化策略。不同工作负载所需要的预算和时间可能有所不同。有时,有些工作负载可能更适合分阶段的方法,这样有利于收集用户反馈,争取管理层对现代化投资的支持,从而最终大功告成。
有三种途径可以对现有 .NET 应用进行现代化改造:
- 重新托管:在行业内称为"直接迁移",重新托管是指将本地应用迁移到云而不对其进行修改,也就是将本地应用移动到云基础架构就绪平台的过程。用这种迁移方法,当前的本地应用将迁移或重新托管到基础架构即服务(IaaS)平台。应用的构成几乎与之前一样,区别只在于现在应用会部署到云中的虚拟机(VM)上。这种方式主要用于为了特定的业务目标而迁移大规模应用,例如在短时间内发布产品或迁离本地数据中心。
- 更换平台:通过这种方式,我们可以使用现代技术(如容器和其他云托管服务),在不改变重要代码的前提下,对应用进行优化,使其在云中顺畅运行,从而获得各种好处。这种成熟度模型工具可以让企业或机构在 IaaS 或平台即服务(PaaS)上部署容器,同时使用与数据库、缓存即服务、监控和持续集成/持续部署(CI/CD)管道相关的其他云托管服务。将 .NET 应用的平台更换为 Windows 容器可提供容器技术优势,且无需更改 .NET 应用的核心基础架构。
- 重新架构:重新架构后,将使用 PaaS 服务把应用迁移到 PaaS 计算平台。实施云原生应用和微服务架构的话,就可以长期对应用进行敏捷开发,并根据需求实现轻松扩展。这种类型的现代化通常需要重新写代码,专门针对云进行架构。这种方法也可以带来单体式和本地应用环境中难以实现的优势。通过将单体式应用分解为较小的服务,每个服务都可以用于单一目标并部署为容器。采用基于微服务方法的话,就算有些组件使用的是 .NET 框架,而另一些组件使用的是 Java,但所有组件都可以在支持的通用平台——RHEL 和 OpenShift 容器平台上运行。
为什么选择红帽?
如果您通常使用 Windows 服务器来运行现有的实践、工具和流程,要想在 IT 现代化的世界中保持竞争优势,那么您的团队可能需要将 Linux、容器和 Kubernetes 加入"武器库"。但这个现代化的过程也可能会对您现有业务带来影响,所以它既令人兴奋又让人望而却步。
红帽深知,变革并非易事。我们的工作就是帮助客户迎面技术变革,采用正确的策略和解决方案来实现业务目标,并确保团队能够顺利适应环境、技术和流程的变化。
无论您选择哪种现代化策略,以及希望寻求什么样的效益,红帽都能量身提供适合您的产品和服务,例如微软 Azure 红帽 OpenShift(ARO)。