云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_企业网站排名_限量秒杀

小七 141 0

怎样Azure.com在Azure上运行第2部分:技术和架构

当您是一家构建数百万人使用的云平台的公司时,您自己的云内容需要快速提供。Azure.com-Azure应用程序每天都在为数百万人提供服务。微软的文化一直是使用我们自己的工具来经营我们的业务。Azure.com作为Azure为敏捷web开发提供的便捷平台即服务(PaaS)选项的一个示例。我们相信Azure会运行Azure.com在全球网络中,99.99%的可用性,每个请求的往返时间(RTT)小于100毫秒。在我们分为两部分的系列文章的第二部分中,我们将分享我们的蓝图,以便您可以从我们的经验中学习到如何在行星级上建立网站,并推进您自己的网站转型。这篇文章将帮助您从技术角度了解组成Azure.com. 有关我们设计原则的详细信息,请阅读Azure.com在Azure上运行第1部分:设计原则和最佳实践。全球足迹的架构与Azure.com,我们的目标是在全球范围内以经济高效的方式运营一个世界级的网站。为此,我们目前运行了超过25个Azure服务。(请参阅中的服务Azure.com以下内容。)本博客探讨了主要服务的作用,比如azurefrontdoor,它将HTTP请求路由到web前端,以及azureappservice,一个用于创建和部署云应用程序的完全托管平台。下图显示了全局Azure.com建筑。在左边,网络服务提供了安全的端点和连接,让用户可以即时访问,无论他们在世界的哪个地方。在右边,开发人员使用azuredevops服务来运行一个连续集成(CI)和连续部署(CD)管道,该管道提供了零停机时间的更新和特性。在这两者之间,提供计算、存储、安全、监视等多种PaaS选项。Azure.com全球架构:对Azure服务和数据流的一个高级视图。全球主办,区域性交付这个Azure.com体系结构在全球托管,但在多个区域本地运行以实现高可用性。Azure应用服务主机Azure.com从最近的全球数据中心基础设施,以及其自动扩展功能确保Azure.com满足不断变化的需求。下图显示了应用程序内服务托管的区域架构的特写。我们使用部署槽来部署到开发、登台和生产环境。部署槽是具有自己主机名的实时应用程序。我们可以在插槽之间交换内容和配置,同时保持应用程序的可用性。Azure.com区域架构:应用服务在插槽中托管区域实例。下面看一下后面的关键PaaS组件Azure.comAzure.com是一个复杂的多层web应用程序。我们尽可能多地使用PaaS选项,因为托管服务节省了我们的时间。在基础设施和运营方面花费的时间更少,意味着有更多的时间来创造世界级的客户体验。该平台执行操作系统修补、容量调配和负载平衡,因此我们可以将精力集中在其他方面。Azure DNSazuredns支持对DNS记录的自助式快速编辑,具有100%可用性的全局名称服务器,以及通过Anycast寻址的快速DNS响应时间。我们对CNAME和ANAME记录类型使用azuredns别名。Azure前门服务Azure Front Door服务支持低延迟TCP拆分、HTTP/2多路复用和并发,以及基于性能的全局路由。我们看到RTT减少到每个请求不到100毫秒,因为客户端只需要连接到边缘节点,而不需要直接连接到源节点。为了业务连续性,azurefrontdoor服务支持后端运行状况探测(backend health probe),这是一种弹性模式,当不健康的区域行为不端时,它实际上会移除它们。此外,要启用备份站点,Azure.com使用基于优先级的流量路由。在我们的主服务后端离线的情况下,此方法使Azure前门服务支持环形故障转移。azurefrontdoor服务还充当反向代理,支持基于模式的URL重写或请求转发来处理动态流量变化。Web应用防火墙Web应用防火墙(WAF)通过在应用层提供负载削减坏机器人程序和防止OWASP十大攻击来帮助改善平台的安全态势。WAF迫使开发人员更加关注他们的数据负载,比如cookies、请求url、表单post参数和请求头。我们使用WAF自定义规则来阻止特定地理位置、ip、url和其他请求属性的通信。规则减轻了网络边缘的流量,使其无法到达源站。内容传送网络为了减少装载时间,Azure.com使用内容交付网络(CDN)对源站进行负载削减。CDN帮助我们降低带宽消耗,降低成本。CDN还通过在存在点(POP)边缘节点缓存静态资产和减少RTT延迟来提高性能。如果没有CDN,我们的源节点将不得不处理对静态资产的每个请求。CDN还支持DDoS保护,提高应用程序的安全性。我们启用CDN压缩和HTTP/2来优化静态有效负载的交付。使用CDN也是优化网络流量的一种可持续方法,因为它减少了跨网络的数据移动。Azure应用服务我们使用应用服务水平自动调整来处理突发流量。自动缩放功能易于使用,并且基于每个节点每秒请求数(RPS)的Azure监视器指标。通过使用弹性计算,我们还将Azure的开支减少了50%——这一好处直接减少了我们的碳消耗。Azure.com使用其他一些方便的应用程序服务功能:始终打开表示没有空闲超时。应用程序初始化提供自定义预热和验证。VIP交换蓝绿色部署模式支持零停机部署。为了减少网络延迟到边缘,我们在12个地理位置不同的数据中心运行我们的应用程序。这种做法支持一个或多个数据中心变暗时的地理冗余。为了提高应用程序的性能,我们使用应用程序服务DaaS-.NET profiler。此功能可识别性能较差的代码块或缓慢依赖项的节点瓶颈和热点。对于灾难恢复和改进的平均恢复时间(MTTR),我们使用插槽交换。如果我们的PPE测试没有捕捉到应用程序部署异常,我们可以快速回滚到上一个稳定版本。App服务也是PaaS服务,这意味着我们不必担心虚拟机(VM)基础设施、操作系统更新、应用程序框架以及与管理这些内容相关的停机时间。在选择我们的数据中心时,我们遵循成对区域的概念,以缓解任何滚动的基础设施更新,并确保改进的隔离和恢复能力。重要的是,你可以选择一个垂直的应用程序来调整它的大小。您选择的计划也会影响可持续能源的比例,这意味着以更高的利用率运行实例,以最大限度地提高碳效率。DaaS-.netprofiler:识别代码瓶颈并度量改进。在这个例子中,我们发现我们的HTML空白"minifier"已经饱和了我们的计算节点。禁用它之后,我们验证了响应时间,CPU使用率显著提高。Azure监视器Azure Monitor支持对Application Insights、日志分析和Azure Data Explorer数据源进行被动运行状况监视。我们依靠这些查询监视器警报,根据我们的遥测日志建立基于配置的健康模型,这样在客户告诉我们之前,我们就知道我们的应用程序何时出现了不良行为。例如,我们监控数据中心的CPU消耗,如下屏幕截图所示。如果我们看到我们的应用程序指标持续、高CPU使用率,Monitor可以触发一个通知给我们的响应团队,他们可以快速响应,对问题进行分类,并帮助改进MTTR。如果客户端浏览器行为异常或抛出控制台错误,比如Safari更改了特定的push-and-replace状态模式,我们也会收到主动通知。性能计数器:如果CPU峰值持续超过5分钟,我们会收到警报。应用程序洞察力Application Insights是Monitor的一个功能,用于客户端和服务器端应用程序性能管理(APM)遥测日志记录。它监视页面性能、异常、缓慢的依赖关系,并提供跨平台分析。客户通常在中断修复方案中使用Application Insights来改进MTTR,并快速地对失败的请求和应用程序异常进行分类。我们建议启用遥测采样,这样就不会耗尽数据卷存储配额。我们设置每日存储配额警报,以便在遥测饱和关闭我们的日志管道之前捕捉到它。applicationinsights还为跨应用程序域边界和依赖关系的分布式跟踪提供OpenTelemetry支持。支持从客户端或服务层到后端的所有数据跟踪功能。数据量容量警报:显示超过数据存储阈值的示例,这对于跟踪失控的遥测日志很有用。使用Azure DevOps开发一个大团队Azure.com,我们使用Azure DevOps服务来协调我们的工作。我们使用Azure wiki创建内部技术文档,使用Azure板跟踪工作项,使用Azure管道构建CI/CD工作流,并使用Azure构件管理应用程序包。对于软件配置管理和质量关卡,我们使用GitHub,它与Azure板配合得很好。作为构建过程的一部分,我们每天提交数百个请求,CI/CD管道每天都会向生产站点部署多个更新。拥有一个管理整个软件开发生命周期(SDLC)的工具可以简化工程团队和我们内部客户的学习曲线。去掌握什么