天天看点

微软发布ChatGPT 版必应 用的是 .NET 技术

作者:opendotnet

微软在今天在Redmond 线下举办媒体一场活动,发布了新版的微软必应,在桌面上推出了测试版,移动版也即将推出。微软首席执行官纳德拉称Al-powered搜索为公司自云15年以来最大的事情。

微软发布ChatGPT 版必应 用的是 .NET 技术

2023年1月初,微软已经在讨论将OpenAI的技术纳入Word、PowerPoint、Outlook和其他应用程序,这样用户就可以用简单的提示自动生成文本,2023年1月下旬,微软宣布即将会把ChatGPT加入Azure云服务。新版微软必应+Chatgpt的测试版会推出,在面对谷歌刚刚宣布发布Bard聊天机器人的时刻,这场发布会就更容易引人注目。

微软的大量云服务,包括必应搜索,他们的技术栈都是.NET , 都是用2014宣布开源的跨平台的 .NET ,必应早在2018年就从.NET Framework升级到.NET Core 2.1, 具体参见 https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-core-2-1/。.NET Core为Bing 带来了的显著性能改进。

微软发布ChatGPT 版必应 用的是 .NET 技术

下面将汇总一下微软的开发博客——这些博客均涉及微软将产品和服务迁移到.NET 6的成果。博客按时间由近及远排序。

《Microsoft Teams’ Infrastructure and Azure Communication Services’ Journey to .NET 6》: https://devblogs.microsoft.com/dotnet/microsoft-teams-infrastructure-and-azure-communication-services-journey-to-dotnet-6/

微软发布ChatGPT 版必应 用的是 .NET 技术

迁移到 .NET Core 是由多种因素驱动的:

  1. 成本降低:Azure 计算成本平均节省 29%。
  2. 性能提升:性能提升30-50%,包括P99 CPU利用率和P99服务时延。
  3. 服务和网络现代化:访问框架中的最新功能,例如轻量级应用程序内存占用,支持Linux上的容器,更好的异常处理,从而在恶劣的条件下获得更好的可靠性以及最新的安全修复。
  4. 提高工程满意度和生产力

《Microsoft Commerce’s .NET 6 Migration Journey》:https://devblogs.microsoft.com/dotnet/microsoft-commerce-dotnet-6-migration-journey/

一个特别重要的例子是,一个服务从 .NET Framework 迁移到 .NET Core 3.1,同时尽可能多地保留其他相同内容(尽管此更改也包括对 .NET Core 的依赖项更新,以及在迁移其代码时所做的小改进)。下图显示了服务延迟提高了约 78%,并且在最初部署后(使用相同的负载、环境和硬件运行)显著提高了稳定性!

微软发布ChatGPT 版必应 用的是 .NET 技术

随着我们更复杂的服务迁移到 Kubernetes 中,我们的迁移需要的不仅仅是 .NET:

  • 从Windows 到Linux
  • .NET 框架到 .NET Core(3.1,在某些情况下为 5.0,现在是 6.0)
  • 平台转向容器和Kubernetes(远离虚拟机)
  • 更换构建和发布系统,以利用最新的安全性和合规性改进并支持容器化应用程序。
  • 随着我们在迁移时利用平台和 .NET 中的增强和改进,以及我们的合作伙伴对依赖项执行了相同的操作,还有更多功能。虽然这些好处并不完全归功于我们的 .NET Core 迁移,但它们是通过迁移实现的,我们非常感谢 .NET 团队在迁移过程中提供的所有帮助和支持!

《Microsoft Teams Assignments Service’s Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/microsoft-teams-assignments-service-dotnet-6-journey/

微软发布ChatGPT 版必应 用的是 .NET 技术

在迁移后,我们确实看到了一些 CPU 和延迟的改进,但最一致的改进是内存消耗(进程\专用字节)的减少。随着我们继续调整我们的代码库,我们对此迁移解锁的更有针对性的优化感到非常兴奋!例如,我们可以利用它来减少更多代码路径中的分配,因为大多数 BCL API 现在都支持它作为 的替代方法。此外,我们现在可以访问 .NET 6 (https://docs.microsoft.com/en-us/dotnet/core/runtime-config/) 中的大量新配置选项,并期待调整和调整运行时以更好地适应我们的所有工作负载。

《OneService Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/one-service-journey-to-dotnet-6/

微软发布ChatGPT 版必应 用的是 .NET 技术

在两年多的时间里,我们将大量 .NET Framework 4.7.2 应用、库和测试项目转换为 .NET 6,验证了功能和性能等效性(或更好),现在几乎完全在生产中的 .NET 6 上运行。该项目取得了重大成功,有助于降低运营成本并改善开发人员体验。

突出:

  • 基础设施成本降低 29%。
  • 迁移服务的 CPU 平均提高 30%。
  • 主 API 的 P95 延迟提高了 8-27%。
  • 减少了技术债务,现在可以轻松地升级到年度 .NET 版本。
  • 更快乐、更高效的团队。

《Exchange Online Journey to .NET Core》:https://devblogs.microsoft.com/dotnet/exchange-online-journey-to-net-core/

出于三个原因,我们之所以有动力迁移到 .NET Core。首先,我们非常需要提高性能和成本效益。任何基于云的供应商都知道,每一次低效率都会花费真金白银。第二,知道 .NET Framework 不再积极开发,我们希望迁移到一个为未来开辟道路的现代框架。第三,可能更重要的是它很酷,有光泽和新鲜。

微软发布ChatGPT 版必应 用的是 .NET 技术
微软发布ChatGPT 版必应 用的是 .NET 技术

《The Azure Cosmos DB Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/the-azure-cosmos-db-journey-to-net-6/

微软发布ChatGPT 版必应 用的是 .NET 技术

Azure Cosmos DB's API网关是一种低延迟的 Azure 服务。它以多种方式利用 .NET 来实现其性能和延迟要求。多年来,每次 .NET 升级都产生了许多好处,既包括新的 API,这些 API 提供了更好的方法来管理性能,并改进了框架中的现有 API 和运行时行为。我们正在积极与 .NET 团队合作,采用 .NET 7,并期待在即将发布的 .NET 版本中推出更多影响深远的性能功能。

《Microsoft Graph’s Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/microsoft-graph-dotnet-6-journey/

四年前,该服务在 IIS 上运行,在 .NET Framework 4.6.2 上 ASP.NET。目前,该服务在 HTTP 上运行.sys.NET 6 上 ASP.NET 核心,在 .NET Core 3.1 和 .NET 5 上暂时停止。每次升级时,我们都观察到 CPU 利用率有所提高,尤其是在 .NET Core 3.1 和最近的 .NET 6 中。

  1. 从 .NET 框架到 .NET Core 3.1,我们观察到在相同的流量下 CPU 减少了 30%。
  2. 从 .NET Core 3.1 到 .NET 5,我们没有观察到要报告的有意义的差异。
  3. 从 .NET 5 到 .NET 6,我们观察到在相同的流量下,CPU 又减少了 10%。

CPU 利用率的大幅降低转化为更好的延迟、吞吐量和有意义的计算容量成本节约,从而有效地帮助我们实现目标。

微软发布ChatGPT 版必应 用的是 .NET 技术

《Azure Active Directory’s gateway is on .NET 6.0!》:https://devblogs.microsoft.com/dotnet/azure-active-directorys-gateway-is-on-net-6-0/

Azure 活动目录的网关服务是一个反向代理,用于处理构成 Azure 活动目录 (Azure AD) 的数百个服务。如果使用了 office.com、outlook.com、portal.azure.com 或 xbox.live.com 等服务,则表示你已使用 Azure AD 的网关。网关提供 TLS 终止、自动故障转移/重试、异地邻近路由、限制和向 Azure AD 中的服务分段等功能。该网关存在于全球 54 个 Azure 数据中心,每天为大约 1850 亿个请求提供服务。直到最近,Azure AD 的网关还在 .NET 5.0 上运行。截至 2021 年 9 月,它已在 .NET 6.0 上运行。

微软发布ChatGPT 版必应 用的是 .NET 技术

这些博客都在强烈凸显着.NET的进步:

  • 更低的CPU消耗
  • 更低的内存占用
  • 更低的响应延迟
  • 更高的吞吐量
  • 更完善的脚手架
  • 更强大的测试和监控工具
  • ……

之后类似的博客还会发布在:Developer Stories - .NET Blog (microsoft.com) :https://devblogs.microsoft.com/dotnet/category/developer-stories/ , 有兴趣的读者可以加入收藏夹持续关注。