# [翻译]Azure 网关迁移至 .NET Core 3.1 性能提升一倍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Rwing
V2EX    程序员

# [翻译]Azure 网关迁移至 .NET Core 3.1 性能提升一倍

  Rwing 2021-01-19 08:19:03 +08:00 5147 次点击
这是一个创建于 1730 天前的主题,其中的信息可能已经有所发展或是发生改变。

原文:[Azure Active Directory’s gateway is on .NET Core 3.1!]

Azure Active Directory 的网关服务是一个反向代理,它为构成 Azure AD 的数百个服务提供前置服务。如果你使用过 office.comoutlook.comazure.comxbox.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 的动机

网关的执行规模导致计算资源的大量消耗,而计算资源的消耗又要花费大量的金钱。寻找降低服务执行成本的方法一直是我们团队的一个关键目标。而 .NET Core 对性能的大量改进引起了我们的注意,尤其是 TechEmpower 将 ASP.NET Core 列为全球最快的 Web 框架之一。我们在 .NET Core 上的对网关原型运行了基准测试,测试结果让人很容易做出决定:我们必须移植到 .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 之旅不会停止。对于未来,我们正在考虑:

  • 升级到 .NET 5.0 以进一步提高性能。
  • 移植到 Kestrel,以便我们能够在 TLS 层拦截连接,以获得更好的弹性。
  • 在我们自己的反向代理中使用 YARP 的组件和最佳实践,同时也做出回馈。
第 1 条附言    2021-01-19 09:17:57 +08:00
勘误:每天服务于约 115 亿次请求 --> 1150 亿次请求

翻译时秀逗了
53 条回复    2021-01-20 13:37:37 +08:00
netnr
    1
netnr  
   2021-01-19 08:35:39 +08:00 via Android
支持
Keyes
    2
Keyes  
   2021-01-19 08:52:36 +08:00 via iPhone
然后迁移到 go 又提升了三倍 233333

5.0 貌似不是 lts 版本
encro
    3
encro  
   2021-01-19 08:56:32 +08:00
@Keyes

当然是 lts 的
Rwing
    5
Rwing  
OP
   2021-01-19 08:56:51 +08:00
5.0 不是 lts,今年 11 月发布的 6.0 才是 lts
kaka6
    6
kaka6  
   2021-01-19 08:57:31 +08:00
.NET 最近几年确实进步很快
说到 Azure 我就心有余悸
之前开个测试,绑定信用卡,然后测试时间用完没有停,一直被扣费
很不习惯用这国外后收费机制,一不小心就破产
造成现在看到 Azure,心就慌
WildCat
    7
WildCat  
   2021-01-19 09:02:59 +08:00
@kaka6 可以设置好 budget 啊
Rwing
    8
Rwing  
OP
   2021-01-19 09:07:23 +08:00   1
勘误:每天服务于约 115 亿次请求 --> 1150 亿次请求

翻译时秀逗了
iceneet
    9
iceneet  
   2021-01-19 09:08:57 +08:00
可惜国内.net 岗位太少了 要不然 我也想玩玩.net
Keyes
    10
Keyes  
   2021-01-19 09:21:59 +08:00 via iPhone
@Rwing 115B,玩了 eve 才记住 b
是十亿的,百百百,哈哈哈哈哈

以前在公司里推.net 推不动,一人之力太单薄了
    11
sagaxu  
   2021-01-19 09:24:46 +08:00 via Android   1
上海有很多用.net 的公司,15 到 20k 不大加班,但因为是传统行业,招人特别难,年轻人只想去 996 互联网公司。因为不是互联网,就算再多公司在用,也会被无视,得出国内.net 用的少的结论。
sagaxu
fiveelementgid
    12
fiveelementgid  
   2021-01-19 09:56:16 +08:00 via Android
fiveelementgid
    13
fiveelementgid  
   2021-01-19 09:57:46 +08:00 via Android   1
@Keyes 我们的 Go 真的是太厉害啦(逃
LokiSharp
    14
LokiSharp  
   2021-01-19 10:24:07 +08:00   1
@Keyes #2 Go 这种生态差,语法奇葩,性能一般,亲爹爱理不理的语言就算了吧
Rwing
    15
Rwing  
OP
   2021-01-19 10:28:06 +08:00
@LokiSharp 不要攻击不要攻击,各语言都有各自的领域
yejinmo
    16
yejinmo  
   2021-01-19 10:28:12 +08:00
在本站看到 .Net 相关的文章就倍感亲切
何时才能没有这种心态啊
dqzcwxb
    17
dqzcwxb  
   2021-01-19 10:34:25 +08:00
@LokiSharp #14 兄弟,保重
LokiSharp
    18
LokiSharp  
   2021-01-19 10:36:14 +08:00   1
@Rwing #15 我没有攻击,我纯粹被 Go 恶心到了。
Keyes
    19
Keyes  
   2021-01-19 11:15:32 +08:00
@LokiSharp 我是 C#死忠粉,不过公司推不起来都觉得写类麻烦,go 语法其实还可以的,主要是前公司研发领导在推

另求个亲爹爱理不理的出处
aheadlead
    20
aheadlead  
   2021-01-19 11:18:03 +08:00
@iceneet #9 敝司招.net 考虑吗 苏州北京
LokiSharp
    21
LokiSharp  
   2021-01-19 11:27:19 +08:00
@Keyes #19 Go 社区提的意见,开发团队基本不管,只管满足 Google 自己内部需求。
SWALLOWW
    22
SWALLOWW  
   2021-01-19 11:34:44 +08:00
@aheadlead 求推荐,四年.NET 桌面端
aheadlead
    23
aheadlead  
   2021-01-19 11:45:24 +08:00
@SWALLOWW #21 请联系 yulwei (at) microsoft <dot> com
coosir
    24
coosir  
   2021-01-19 11:54:06 +08:00
哦,我选 Go
真不知道哪来那么多优越感,每种语言都是多面的,决定其成败的因素也非常多。
whitehack
    25
whitehack  
   2021-01-19 11:54:07 +08:00
dotnet 确认不输 go
Rwing
    26
Rwing  
OP
   2021-01-19 11:54:55 +08:00
@SWALLOWW 上海申通正在找 winform 的人才
charlie21
    27
charlie21  
   2021-01-19 12:08:06 +08:00
是锦上添花,而非雪中送炭,锦上添个大红花
love
    28
love  
   2021-01-19 12:23:32 +08:00
不知道为什么,看到 .net 国内起了十几年都起不来倍感舒心~希望能一直保持
PopRain
    29
PopRain  
   2021-01-19 12:41:32 +08:00
@SWALLOWW 上海传统物流企业招人, 简历 wisdom (at) sina <dot> com , 就不放公司邮箱了
Keyes
    30
Keyes  
   2021-01-19 13:04:47 +08:00 via iPhone
转眼间 .net 竟然变成稀缺品种 hhh
huobazi
    31
huobazi  
   2021-01-19 13:16:12 +08:00
.net 比 go 和 node 性能强多了
bigbunny
    32
bigbunny  
   2021-01-19 13:27:48 +08:00
@aheadlead 同程?哈哈
INCerry
    33
INCerry  
   2021-01-19 13:30:13 +08:00
@BigBunny 同程也有 人家那个是 microsoft
bigbunny
    34
bigbunny  
   2021-01-19 14:25:27 +08:00
@INCerry 酱紫 打扰了打扰了
SWALLOWW
    35
SWALLOWW  
   2021-01-19 14:32:32 +08:00
@Rwing
@PopRain

不好意思,请问有北京的岗位吗,或者可以远程吗
SWALLOWW
    36
SWALLOWW  
   2021-01-19 14:33:05 +08:00
@aheadlead
对算法没信心,刷刷算法再去贵司面试
aheadlead
    37
aheadlead  
   2021-01-19 14:36:14 +08:00
@SWALLOWW #35 没事 您先和我取得联系 我给您简单介绍一下情况如何?
Ley
    38
Ley  
   2021-01-19 14:45:07 +08:00 via Android
5.0 确实还不错,自己的 web 小工具升到了 5.0,性能数据上明显比 3 时代又提升了
exonuclease
    39
exonuclease  
   2021-01-19 16:50:06 +08:00
@Keyes 啊这 泛型加上了吗
exonuclease
    40
exonuclease  
   2021-01-19 16:53:33 +08:00
@aheadlead 活捉同事一只 我在你楼上
Itoktsnhc
    41
Itoktsnhc  
   2021-01-19 16:57:16 +08:00
ms 卡学历嘛 @aheadlead
40EaE5uJO3Xt1VVa
    42
40EaE5uJO3Xt1VVa  
   2021-01-19 17:00:02 +08:00
.NET Core 不火才好,没人进来,没人卷
aheadlead
    43
aheadlead  
   2021-01-19 17:06:33 +08:00
@Itoktsnhc #40 先联系我~
sunnycase
    44
sunnycase  
   2021-01-19 17:18:40 +08:00
@Keyes 迁移到 go 只会 OOM 吧
encro
    45
encro  
   2021-01-19 17:50:40 +08:00
@fiveelementgid

谢谢,居然不是 lts 的。
用了几个月才发现。
难怪 vs 还好多 bug 。
stevefan1999
    46
stevefan1999  
   2021-01-19 19:56:55 +08:00
@Keyes 移到 go 被 gc 卡到性能提升只有 1.5x
移到 rust 才能 3 倍
crclz
    47
crclz  
   2021-01-19 20:34:40 +08:00   1
虽然 go 面对 C# Java 显得缺胳膊少腿,但是 go 的低劣的拥护者比 golang 恶心一万倍。
zengyiqun div class="fr">     48
zengyiqun  
   2021-01-19 22:21:57 +08:00
.net 5 按之前的说法是过度版本,6 后会整合 framework 才是完全体,要慎重啊
leeg810312
    49
leeg810312  
   2021-01-19 22:36:42 +08:00 via Android
.net 5 是个重大更新版本,但还不是 lts,不过非关键业务系统还是可以用的
bthulu
    50
bthulu  
   2021-01-20 08:47:39 +08:00
outlook.com, office.com 这些网站不是性能超垃圾的吗, 半天都打不开, 也好意思拿来吹
ragnaroks
    51
ragnaroks  
   2021-01-20 09:05:42 +08:00
@bthulu facebook.com : 你在黑我 PHP ?
pkoukk
    52
pkoukk  
   2021-01-20 09:41:43 +08:00
@bthulu 你可以说响应速度慢,但不能说人家性能垃圾。
至于为什么响应速度慢,有个词叫合规,了解一下
INCerry
    53
INCerry  
   2021-01-20 13:37:37 +08:00
@bthulu google.com 你在黑我 go ?
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2955 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 27ms UTC 13:47 PVG 21:47 LAX 06:47 JFK 09:47
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86