【为繁忙人士准备的Webinar简述】将现有的.NET应用迁移到Azure并现代化成云原生应用
大家好。我们是微软应用创新团队。
我们将通过“Webinar简要总结”向您介绍正在进行的概述,并介绍与其高度相容的学习工具(Microsoft Learn)的学习路径。
第二弹是以下网络研讨会的摘要。
顺便提一下:如果您报名参加网络研讨会,您将收到一封附有数字活动(会话)和幻灯片资料链接的邮件。
幻灯片资料中还包含了我们本次介绍的服务和功能的详细页面(Docs.com)的链接,所以如果您对某些内容感兴趣,请利用Docs.com或Microsoft Learn进行查询。
什么样的研讨会?
在本次网络研讨会中,我们以“将现有的.NET应用迁移到Azure并现代化为云原生应用”为题,对以下三个主题进行了介绍。
-
- Microsoft Azure で .NET アプリケーションを実行するためのプラットフォームとしてのサービス
-
- 移行と、移行のために開発が必要となった場合に使用するツール
- 既存のアプリケーションの状態に合わせたホスティングオプション
※ 本次网络研讨会的重点是介绍利用PaaS和FaaS技术最大限度地发挥云技术使用的优势,实现“现代化云应用”的方法,并重点介绍了迁移到Azure的本地应用程序。
作为在Azure平台上运行.NET应用程序的服务
首先,在Azure上能够托管.NET应用程序的所有平台服务主要有以下3个模式。
-
- サービスとしてのインフラストラクチャ:IaaS
-
- サービスとしてのプラットフォーム:PaaS
- サービスとしての関数:FaaS
基础架构即服务(Azure虚拟机)
这是一个在云上托管系统的简单服务。如果是在本地虚拟机上的系统,可以直接迁移,非常适合现有系统的”举起和移动”。但与此同时,必须自己定期管理从虚拟机到操作系统和中间件的管理,未能充分发挥云计算的优势。(在本次网络研讨会中,详细的迁移方法将被省略。)
PaaS(应用服务、Azure容器实例、Azure Kubernetes服务(AKS)等)
应用程序的运行环境。由云服务提供商提供,用户只需部署并使用应用程序,无需管理操作系统和中间件的安全补丁、更新等管理任务,将精力集中在核心业务上,这是云服务的一个优势。
Function as a Service (Azure Functions)
以事件驱动为主,根据触发的动作,进行按需运行的内容。与PaaS不同,该服务并非始终运行,因此收费仅针对实际运行的部分,当负载较高时,还可自动进行扩展,相比PaaS,管理更加简化。
由于不能直接将现有的基于本地服务器运行的 Web 应用程序转化为函数即服务(FaaS),所以需要重新构建。然而,如果用途和功能匹配的话,将会带来许多优势。
需要考虑迁移的事项除了应用程序外还有以下两个。
-
- データ
- ディスク
数据库
Azure 提供了各种应用场景的托管数据库。
– Azure SQL 数据库
– Azure Cosmos DB
– Azure PostgreSQL 数据库
– Azure MySQL 数据库
– Azure MariaDB 数据库
– Azure Redis 缓存
Cosmos DB实现了适用于常见NoSQL API的协议,如Mongo DB、Cassandra、Garmin、Azure Storage表,因此应用程序不仅可以使用自己熟悉的NoSQL客户端工具,而且也可以使用它们进行访问。
参考: 关于NoSQL数据库和关系型数据库的区别
只要完成数据迁移,就不需要构建系统和中间件来迁移DB系统,这样一来,系统维护就可以免费,我们可以专注于正常的使用!
储存
在云端的Web应用程序中,文件访问通常涉及使用云存储服务,包括文件存储位置。
Azure 存储服务 Azure Storage 是一种具有加密、备份、灾难恢复功能以及 REST API 的云端使用独特优势的服务,它提供了适合不同需求的数据存储选项,如 Blob 和存储表等。
当在使用 Blob或Azure Storage时,可以通过将Azure SDK添加到.NET应用程序项目中,以将其作为.NET对象来处理。
如果在应用程序逻辑中有特定情况下故意进行读写磁盘文件操作,或者需要访问网络共享文件夹而非虚拟机上的ASP.NET应用程序,那么目前发布的Azure Files是有用的。
除了应用程序本身之外,还需要考虑迁移的其他事项。
-
- 認証
- プラットフォームを含むアプリケーションの監視
验证
在一般的本地環境中,由Active Directory管理,因此存在与AD的互信,所以在用户访问控制方面,几乎没有不需要认证或Windows认证的问题。如果希望将应用程序迁移到Azure并继续保留相同的认证基础,则需要在Azure Active Directory中启用认证。
监视 shì)
如果您将ASP .NET应用程序托管在Windows服务器上的IIS上,访问日志将自动作为IIS的Web服务器日志被获取。如果您选择在Azure的PaaS上托管,即App Service,您需要启用Log Analytics。Log Analytics不仅仅获取Web服务器日志,还获取整个平台的遥测数据并保存为日志。您还可以通过添加Application Insights来进行更详细的监控,这适用于.NET以及Node.js、JAVA和Python应用程序。
应用洞察:应用性能监控服务。通过添加此服务,可以自动检测性能异常,并使用集成的分析工具诊断问题,帮助用户了解使用应用时的运行情况。它旨在持续改善性能和用户体验。
用于迁移和为了进行迁移而需要开发的工具。
要将现有的.NET应用程序迁移到Azure,需要使用最新版本的Visual Studio和Azure SDK。
在安装和配置Visual Studio时需要注意的要点
在安装选项中选择以下三个选项。
-
- ASP.NET
-
- Web 開発
- Azure 開発のワークロード
如果您已经安装了Visual Studio,可以启动Visual Studio安装程序并重新进行配置。这将用于将现有的ASP.NET应用程序部署到App Service。
如果不使用Visual Studio来配置应用程序,可以在Azure上预先创建App Service实例,并配置从GitHub或Azure的私有存储库中获取应用程序项目,然后通过将应用程序项目推送到目标存储库来进行部署。
如果需要更改应用程序中的文件访问部分以访问Azure存储Blob,或者添加Application Insights代理以进行对Azure资源的操作,则需要使用Visual Studio的Azure SDK for .NET。
推荐使用 Visual Studio,可以从获取 Azure SDK 和编辑源代码,到创建 Azure 的 App Service 实例并部署应用程序,一站式完成一致性的工作流程。
根据现有应用程序的状态选择适合的托管选项。
作为云平台推荐的PaaS,用于迁移.NET应用程序。这个PaaS服务有多种选择。
-
- App Serivice
- Windows コンテナー
以下是关于选择这两个特点以及作为.NET应用程序迁移目标的指南。此外,关于在Azure上使用这些托管选项进行发布的方法,我们在网络研讨会中将演示进行介绍。
Azure 应用服务
如果应用程序本身是一个没有依赖于Windows服务器或IIS的干净的ASP.NET Web应用程序,那么在这种情况下选择App Service是最佳选择。
优点:Azure提供了持续的维护和各种工具。
不具之處:並非所有應用程式都支援運行時(其中部分應用程式可能需要重新編寫)。
必要条件:访问服务迁移助手的准备检查清单并确认需要注意的事项。
Windows 容器
如果平台上存在无法通过App Service满足的依赖关系。
使用Windows容器可以将所有依赖项包含在Docker的Windows镜像中,这样问题就可以解决了。当然,在App Service中也是可以实现的,但如果想要更新应用程序并进行云端DevOps,选择Windows容器是必然的选择。
优点:.NET和C#几乎不需要进行任何代码重构(在App Service中也是如此。除非重新使用云资源,否则可以直接运行现有代码)。
缺点:需要具备 Docker 技能
必要条件是需要在开发环境中准备好Windows Docker或Docker Engine。
要将现有的.NET应用程序迁移到Windows容器,需要使用Docker Hub提供的Windows服务器的Docker映像(包括Windows Server Core和Windows Nano Server)。
如果你要运行使用.NET Framework的应用程序,则只有Windows Server Core一种选择。
由于Windows Server Core支持.NET Framework的3.5和4.x版本,因此只要使用这个版本的.NET Framework应用程序,则可以在Docker镜像上托管Windows Server Core。
有两种方法可以实现使用Visual Studio和创建Docker文件,然后使用Docker命令对其进行容器化,并将其推送到Azure。
最后
还准备了用于迁移评估的工具。
应用程序服务迁移助手
通过扫描HTTP端点来评估.NET构建的Web站点是否可以轻松迁移到Azure App Service。还可以使用Migrate to Azure Service一同进行评估!
此外,我推荐您尝试以下的 Microsoft Learn 学习路径来了解本次介绍的内容。请在有空的时候务必试一试!
-
- アプリケーションとインフラストラクチャの移行とモダン化
-
- ASP.NET アプリを Azure に移行する
-
- Visual Studio で Azure 関数を開発、テスト、デプロイする
Azure App Service を使ってコンテナー化された Web アプリをデプロイして実行する