原文:[Azure Active Directory’s gateway is on .NET Core 3.1!]
Azure Active Directory 的网关服务是一个反向代理,它为构成 Azure AD 的数百个服务提供前置服务。如果你使用过 office.com 、outlook.com 、azure.com 或 xbox.live.com 等服务,那么你已经使用了 Azure AD 的网关。网关为 Azure AD 中的服务提供了 TLS 终止、自动故障切换 /重试、地理位置临近度路由、节流和 tarpitting 等功能。该网关存在于全球超过 53 个 Azure 数据中心中,每天服务于约 115 亿次请求。一直以来,Azure AD 的网关都运行在 .NET Framework 4.6.2 上,直到 2020 年 9 月,我们把它迁移到了 .NET Core 3.1 上。
网关的执行规模导致计算资源的大量消耗,而计算资源的消耗又要花费大量的金钱。寻找降低服务执行成本的方法一直是我们团队的一个关键目标。而 .NET Core 对性能的大量改进引起了我们的注意,尤其是 TechEmpower 将 ASP.NET Core 列为全球最快的 Web 框架之一。我们在 .NET Core 上的对网关原型运行了基准测试,测试结果让人很容易做出决定:我们必须移植到 .NET Core 上。
绝对是的。在 Azure AD 网关这个案例中,我们能够削减 50% 的 CPU 成本。 这个网关曾经在 IIS 上运行并采用 .NET Framework 4.6.2 。如今,它运行在 .NET Core 3.1 的 IIS 上。 下图显示,与 .NET Framework 4.6.2 相比,我们在 .NET Core 3.1 上的 CPU 使用量减少了一半(有效地将我们的吞吐量提高了一倍)。 由于吞吐量的提升,使得我们能够将集群规模从 4 万个核心减少到约 2 万个核心(减少 50%),如图二。
(图一)

移植到 .NET Core 后,我们的服务吞吐量增加了一倍,这是一个伟大的决定,并且我们的 .NET Core 之旅不会停止。对于未来,我们正在考虑:
|  |      1netnr      2021-01-19 08:35:39 +08:00 via Android 支持 | 
|      2Keyes      2021-01-19 08:52:36 +08:00 via iPhone 然后迁移到 go 又提升了三倍 233333 5.0 貌似不是 lts 版本 | 
|      4Rwing OP  2 | 
|      5Rwing OP 5.0 不是 lts,今年 11 月发布的 6.0 才是 lts | 
|  |      6kaka6      2021-01-19 08:57:31 +08:00 .NET 最近几年确实进步很快 说到 Azure 我就心有余悸 之前开个测试,绑定信用卡,然后测试时间用完没有停,一直被扣费 很不习惯用这国外后收费机制,一不小心就破产 造成现在看到 Azure,心就慌 | 
|      8Rwing OP  1 勘误:每天服务于约 115 亿次请求 --> 1150 亿次请求 翻译时秀逗了 | 
|      10Keyes      2021-01-19 09:21:59 +08:00 via iPhone | 
|  |      11sagaxu      2021-01-19 09:24:46 +08:00 via Android  1 上海有很多用.net 的公司,15 到 20k 不大加班,但因为是传统行业,招人特别难,年轻人只想去 996 互联网公司。因为不是互联网,就算再多公司在用,也会被无视,得出国内.net 用的少的结论。 | 
|  |      12fiveelementgid      2021-01-19 09:56:16 +08:00 via Android | 
|  |      13fiveelementgid      2021-01-19 09:57:46 +08:00 via Android  1 @Keyes 我们的 Go 真的是太厉害啦(逃 🐶 | 
|  |      16yejinmo      2021-01-19 10:28:12 +08:00 在本站看到 .Net 相关的文章就倍感亲切 何时才能没有这种心态啊 | 
|      19Keyes      2021-01-19 11:15:32 +08:00 | 
|  |      24coosir      2021-01-19 11:54:06 +08:00 哦,我选 Go 真不知道哪来那么多优越感,每种语言都是多面的,决定其成败的因素也非常多。 | 
|  |      25whitehack      2021-01-19 11:54:07 +08:00 dotnet 确认不输 go | 
|      27charlie21      2021-01-19 12:08:06 +08:00 是锦上添花,而非雪中送炭,锦上添个大红花 | 
|  |      28love      2021-01-19 12:23:32 +08:00 不知道为什么,看到 .net 国内起了十几年都起不来倍感舒心~希望能一直保持 | 
|  |      29PopRain      2021-01-19 12:41:32 +08:00 @SWALLOWW 上海传统物流企业招人, 简历 wisdom (at) sina  <dot> com  , 就不放公司邮箱了 | 
|      30Keyes      2021-01-19 13:04:47 +08:00 via iPhone 转眼间 .net 竟然变成稀缺品种 hhh | 
|  |      31huobazi      2021-01-19 13:16:12 +08:00 .net 比  go 和 node 性能强多了 | 
|  |      38Ley      2021-01-19 14:45:07 +08:00 via Android 5.0 确实还不错,自己的 web 小工具升到了 5.0,性能数据上明显比 3 时代又提升了 | 
|      39exonuclease      2021-01-19 16:50:06 +08:00 @Keyes 啊这 泛型加上了吗 | 
|      40exonuclease      2021-01-19 16:53:33 +08:00 @aheadlead 活捉同事一只 我在你楼上 | 
|      4240EaE5uJO3Xt1VVa      2021-01-19 17:00:02 +08:00 .NET Core 不火才好,没人进来,没人卷 | 
|  |      45encro      2021-01-19 17:50:40 +08:00 | 
|      46stevefan1999      2021-01-19 19:56:55 +08:00 @Keyes 遷移到 go 會被 gc 卡到實際性能提升只有 1.5x 遷移到 rust 應該才能 3 倍 | 
|      47crclz      2021-01-19 20:34:40 +08:00  1 虽然 go 面对 C# Java 显得缺胳膊少腿,但是 go 的低劣的拥护者比 golang 恶心一万倍。 | 
|  |      48zengyiqun      2021-01-19 22:21:57 +08:00 .net 5 按之前的说法是过度版本,6 后会整合 framework 才是完全体,要慎重啊 | 
|      49leeg810312      2021-01-19 22:36:42 +08:00 via Android .net 5 是个重大更新版本,但还不是 lts,不过非关键业务系统还是可以用的 | 
|      50bthulu      2021-01-20 08:47:39 +08:00 outlook.com, office.com 这些网站不是性能超垃圾的吗, 半天都打不开, 也好意思拿来吹 | 
|  |      51ragnaroks      2021-01-20 09:05:42 +08:00 @bthulu facebook.com : 你在黑我 PHP ? | 
|      53INCerry      2021-01-20 13:37:37 +08:00 @bthulu  google.com 你在黑我 go ? |