繁体   English   中英

最小化Azure中的停机时间

[英]Minimize downtime in Azure

今天,我们的Azure应用程序正在经历非常严重的计划外停机,而现在正要花费9个小时。 我们已向Azure支持人员报告,操作团队正在积极尝试解决此问题,我对此并不怀疑。 我们设法使我们的应用程序在我们拥有的另一个“测试”托管服务上运行,并重定向了CNAME以指向实例,以便我们的客户满意,但“主要”托管服务仍然不可用。

我本人的“空中手指”本能是,问题与我们的数据中心(西欧)内的网络有关,实际上,当天晚些时候,该区域的服务仪表板已经变成红色,并带有相应的信息。 (我们的应用程序在门户中显示为“健康”,但无法通过cloudapp.net URL访问。此外,我们应用程序中的线程正在将sql连接异常记录到我们的存储帐户中,因为它无法联系数据库)

但是,非常奇怪的是,我上面提到的“测试”实例也位于同一数据中心,并且与数据库联系没有问题,并且其外部端点完全可用。

我想问一下社区,是否有什么我可以做得更好的方法来避免停机? 我遵守有关每个角色至少有两个角色实例的指导,但是我仍然很生气。 我应该搬到一个更可靠的数据中心吗? 我应该将我的应用程序部署到多个数据中心吗? 我如何管理我的SQL-Azure数据库位于同一数据中心的事实?

任何建设性的指导将不胜感激-作为一名技术人员,我从未有过更沮丧的一天无法采取任何措施来解决此问题。

今天,欧洲数据中心因SQL Azure发生了故障。 我们的一些客户受到打击,不得不搬到另一个数据中心。

如果您正在运行无法关闭的任务关键型应用程序,那么我会将其部署到多个区域。 DNS解析现在显然是Azure中的薄弱环节,但是可以解决(如果您仅运行网站,则可以使用Response.Redirects或类似方法非常简单地完成)

现在,Microsoft提供了一个数据同步服务,该服务将同步多个SQL Azure数据库。 在这里检查。 这样,您可以在不同区域中建立镜像站点,并使它们与SQL Azure透视图同步

另外,最好使用第三方监视服务,该服务将在外部检测已部署实例的问题。 如果您选择的话,当某些实例变为“无响应”时, AzureWatch可以通知甚至部署新节点

希望这可以帮助

我可以根据我们的经验提供一些指导:

  1. 在多个数据中心中托管您的应用程序,并带有Sql Azure数据库。 您可以将每个应用程序连接到其数据中心特定的Sql Server。 您还可以在特定于数据中心的Windows Azure计算机上缓存任何外部资产(图像/ JS / CSS),或利用Azure Blog Storage。 注意:将产生额外费用。
  2. 在主Sql Azure数据库和另一个数据中心中的实例之间设置单向SQL复制。 如果要进行双向复制,请查看MSDN站点以获取指导。
  3. 利用Azure Traffic Manager将流量路由到距离用户最近的数据中心。 它具有地理检测功能,这也将改善应用程序的延迟。 因此,您可以将地图http://myapp.com重定向到数据中心的内部URL,欧洲的用户应自动重定向到欧洲数据中心,反之亦然。 注意:在撰写本文时,尚无法自动检测并故障转移到数据中心。 一旦检测到故障转移且故障转移已完成,将涉及手动步骤(即,您将对Windows Azure和Sql Azure实例进行故障转移)。 如果要进行微级故障转移,则建议将所有配置都放在服务配置文件中并加密值,以便您可以编辑连接字符串以将实例X连接到数据库Y。
  4. 你们都准备好了。 我将创建或安装本地应用程序以检测站点的可用性。 更好的解决方案是创建一个页面,通过编写诊断页面或Web服务来检查应用程序特定组件的可用性,然后从本地计算机对其进行轮询。

高温超导

在部署到Azure时,您对SQL Server的设置没有太多控制。 MS已经对其进行了设置,以使其高度可用。

话虽如此,MS在过去几天似乎一直在与SQL Azure发生问题。 有人告诉我们,它仅影响“少数用户” 某一时刻, 服务仪表板有5个受问题影响的数据中心。 我在其中一个数据中心中有3个数据库,每次都关闭了两次,每次大约一个小时,但是在另一个受影响的数据中心中的一个数据库却没有中断。

如果数据库连接对您的应用程序至关重要,则在Azure环境中确保避免MS尚未针对其解决的问题(此最新技术问题,地震,流星撞击)的唯一方法是将sql数据共存在另一个数据中心。 目前,最实用的方法是使用synch框架 可以复制SQL Azure数据库 ,但这仅在数据中心内有效。 将数据放在其他位置时,如果主数据库不可用,则可以将应用程序指向新数据库。

尽管在纸面上看起来不错,但这可能并没有帮助您解决最新的问题,因为它确实影响了多个数据中心。 如果您只是定期制作数据库副本,那可能足以使您顺利完成工作。 或不。

(我会在服务器故障时发布此答案,但找不到问题)

这只是有关编程/体系结构的问题,但是您艾米也想在webmasters.stackexchange.com上提问

在得出任何结论之前,您需要找出根本原因。

然而。 我猜两件事之一是问题

  • 对于测试系统和生产系统,ISP连接有所不同。 他们要么使用不同的ISP,要么使用同一ISP的不同线路。 当我在一家托管公司工作时,我们确保IP连接至少经过两个不同的ISPS,它们不共享光纤到我们的房屋(并且在可能的情况下,他们到建筑物的物理路径不同-反铲的归巢能力有一条关键的纤维可以挖掘

  • 您的数据中心在某些共享生产基础架构上存在问题。 这些可能是边缘路由器,防火墙,负载平衡器,入侵检测系统,流量整形器等。这些通常也通常仅安装在生产系统上。 这里的防御措施包括了解体系结构并确保提供程序具有(经过测试!)DR计划,以便在事情成对发生时恢复某些服务。 我在这里看到的Neatest黑客正在说服一个IPS(入侵防御系统),说它自己的管理服务器是恶意的。 因此,您根本无法重新配置它。

只是一个想法-您的DC没有托管任何Wikileaks镜像或Paypal / Mastercard / Amazon(目前谁正在接受Wikileaks支持者的DDOS)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM