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

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

  •  
  •   Rwing 2021 年 1 月 19 日 5336 次点击
    这是一个创建于 1842 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文:[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 年 1 月 19 日
    勘误:每天服务于约 115 亿次请求 --> 1150 亿次请求

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

    5.0 貌似不是 lts 版本
    encro
        3
    encro  
       2021 年 1 月 19 日
    @Keyes

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

    翻译时秀逗了
    iceneet
        9
    iceneet  
       2021 年 1 月 19 日
    可惜国内.net 岗位太少了 要不然 我也想玩玩.net
    Keyes
        10
    Keyes  
       2021 年 1 月 19 日 via iPhone
    @Rwing 115B,玩了 eve 才记住 b
    是十亿的,百百百,哈哈哈哈哈

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

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

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

    谢谢,居然不是 lts 的。
    用了几个月才发现。
    难怪 vs 还好多 bug 。
    stevefan1999
        46
    stevefan1999  
       2021 年 1 月 19 日
    @Keyes 移到 go 被 gc 卡到性能提升只有 1.5x
    移到 rust 才能 3 倍
    crclz
        47
    crclz  
       2021 年 1 月 19 日   1
    虽然 go 面对 C# Java 显得缺胳膊少腿,但是 go 的低劣的拥护者比 golang 恶心一万倍。
    zengyiqun
        48
    zengyiqun  
       2021 年 1 月 19 日
    .net 5 按之前的说法是过度版本,6 后会整合 framework 才是完全体,要慎重啊
    leeg810312
        49
    leeg810312  
       2021 年 1 月 19 日 via Android
    .net 5 是个重大更新版本,但还不是 lts,不过非关键业务系统还是可以用的
    bthulu
        50
    bthulu  
       2021 年 1 月 20 日
    outlook.com, office.com 这些网站不是性能超垃圾的吗, 半天都打不开, 也好意思拿来吹
    ragnaroks
        51
    ragnaroks  
       2021 年 1 月 20 日
    @bthulu facebook.com : 你在黑我 PHP ?
    pkoukk
        52
    pkoukk  
       2021 年 1 月 20 日
    @bthulu 你可以说响应速度慢,但不能说人家性能垃圾。
    至于为什么响应速度慢,有个词叫合规,了解一下
    INCerry
        53
    INCerry  
       2021 年 1 月 20 日
    @bthulu google.com 你在黑我 go ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3334 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 05:30 PVG 13:30 LAX 21:30 JFK 00:30
    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