中国领先的IT技术网站
|
|

在PaaS上编写故障切换算法时应避免的三大陷阱

云服务停运事件可能让人惴惴不安。想在这种情况下获得控制权,一个办法就是在PaaS上编写自定义的故障切换算法,确保可以避免这些可能会发生的不幸事故。

作者:布加迪编译来源:51CTO|2014-12-31 09:24

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


云服务停运事件果真发生时,通常会激活故障切换机制,以便从运行不畅的服务器切换到正常运行的服务器。那样,云服务在故障切换过程中可以正常运行,不会带来任何破坏或干扰。

不过,故障切换算法并不总是丝毫没有任何问题。比如说,算法并不总是事先告诉你有没有足够的资源让算法运行。一旦计算资源在故障切换过程中耗尽,最终结果就是云服务停运(比如亚马逊服务停运)。

在停运期间,平台即服务(PaaS)开发人员和软件即服务(SaaS)用户大声喊着无法按时完成工作。为了迫切希望让云服务尽快恢复正常,他们会不断打电话给信息即服务(IaaS)提供商的技术支持部门。最终,IaaS提供商解决问题。

编写故障切换算法时要留意的问题

如果你遇到了云服务停运事件,对IaaS提供商的故障切换算法又不满意,那你可以决定编写自定义的故障切换算法。你需要在不同的场景下测试算法,确保算法运行起来无误。一旦所有测试返回了正面的结果,你应该征得IaaS提供商的同意:要是提供商的故障切换算法失效,可以在下一轮云服务停运时在生产环境中激活算法。

你在编写故障切换算法时,需要避免以下三大陷阱。

1. 闰年日期

上一个闰年日期是2012年2月29日。有人忘了检查微软Azure中颁发安全证书的那台服务器是否能识别这个日期。一旦时钟滴答滴答地报出那个日期的头几分钟,一个虚拟机无法启动。管理员想找到并解决这个问题并非易事。

下一个闰年是2016年2月29日,所以你有的是大把时间来避免同样的不幸事故。你应该在PaaS上测试几种闰年识别算法;这可以帮助你确保安全证书会识别闰年日期。

2. 不稳定的数值算法

你发现自己编写的一种数值算法不稳定,可惜发现得太晚。该算法引起了耗费计算机资源的无限循环。由于可供使用的资源越来越少,云服务性能越来越低下。等到一点资源都没剩下时,云服务就停止运行。

下面这个简单的场景可以帮助你更清楚地了解数值算法会如何变得不稳定。

为了解2的平方根,你先让算法从1.4这个初始近似值开始处理。你设定了一个很小的值,算法应该会向该值收敛。达到这个值后,算法给出近似的答案:1.41421(正如预期)。这时候,算法停止运行;它很稳定,因为它释放了资源,供其他计算任务使用。

你在新算法中建立略有不同的逻辑。你从1.42、而不是1.4这个初始近似值开始处理。你发现,结果并不向预期的值收敛――它与第一个数值算法得到的近似答案偏差很大。

答案越来越长。该算法继续陷入无限循环,不断消耗资源。等到一点资源都没剩下时,算法才停止运行,这表明它不稳定。

为了避免这个陷阱,你需要事先做好功课,确定该算法能不能向预期的值收敛。

3. 虚拟机管理程序失效

所有PaaS(无论开源还是闭源)都位于在IaaS下面的虚拟机之上。所有虚拟机的创建和运行由虚拟机管理程序统一负责。物理服务器能托管运行多少个虚拟机,取决于物理服务器的能力/容量。

一旦虚拟机管理程序失效,所有虚拟机停止运行。导致失效的一个根源是,IaaS基础设施专业公司无法确定一台物理服务器能托管运行多少个虚拟机。提供商未能精确核实服务器的能力/容量。他试图添加超出这台物理服务器资源极限范围的虚拟机。如果极限范围是顶多2个虚拟机,提供商又添加一个虚拟机,那么物理服务器托管的所有虚拟机就会停止运行。

为了避免这个陷阱,你需要弄清楚一台物理服务器能托管运行多少个新的虚拟机。将弄清楚的结果与IaaS提供商或IaaS基础设施专业公司对比一下。确保你备份了所有虚拟机,这是一项日常任务。

结束语

别一味依赖IaaS提供商的故障切换算法。你可以编写自己的故障切换算法,不过记得在你运行这些算法之前事先征得IaaS提供商的同意。

英文原文链接:http://www.techrepublic.com/article/three-pitfalls-to-avoid-when-creating-failover-algorithms-on-a-paas/

【编辑推荐】

  1. IaaS、SaaS、PaaS在物联网中的应用
  2. 你应该知道的五种开源PaaS方案
  3. 什么是IaaS+DevOps的开发模式?
  4. 弥合 IaaS 与 PaaS 间差别的三种方法
  5. 该用开源PaaS还是专有PaaS?两条标准帮你选择
【责任编辑:Ophira TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

公钥基础设施PKI及其应用

公钥基础设施PKI(Public Key Infrastructure)是利用公钥概念和加密技术为网上通信提供的符合标准的一整套安全基础平台。公钥基础设施能为...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言