构建弹性应用程序的7个最佳实践

最近备受关注的系统中断故障将系统弹性和冗余架构的重要性带到了业界讨论的最前沿。尽管业务连续性和稳定性并不是新事物,但是所采用的技术已经发展。

以前,企业主要配置备份数据中心,现在在设计弹性应用程序和基础架构时,他们需要考虑各种层次。

当应用程序和网站不可用时,企业的收入和声誉将受到损害。现在,我们对软件系统弹性的定义除了服务稳定运行之外,还包括稳定性能和应用程序交付。

因此,构建和维护弹性应用程序和基础架构的企业应考虑如下七个建议。

1. 基础设施多元化

尽管很多组织是使用一个云或CDN,但如果供应商脱机或遇到其他性能问题,则可能会导致服务宕机。

通过使用两个或两个以上供应商来实现基础架构多样化的公司,可以通过更接近用户的方式处理用户交互,来减少网络延迟。而且,如果一个提供商遇到网络拥塞,地理限制,资源可用性或其他问题,则自动故障转移系统可以确保对用户的影响最小。

2. 考虑微服务架构

微服务和容器等新技术的出现,提高了应用程序的弹性。随着企业从单体应用向微服务转型,他们必须尽早解决微服务之间如何交互的问题。

微服务的设计阶段内置了冗余。这就是为什么在进行数字转换企业应该考虑采用微服务方法的原因。

随着组织的发展,他们可以看到其系统的不同部分承受的压力要大得多。微服务使它们能够独立扩展那些特定的组件。当使用微服务架构时,由于系统的某些组件保护(如:熔断器),他们可能会看到部分故障,但很少会出现服务中断。

3. 将冗余构建到代码库中

从软件开发的角度,企业可以通过在其代码中构建冗余来解决弹性。一家流媒体提供商就使用此方法,以便如果其中一个云提供商失败,则将激活其自建系统以使其保持在线状态。

电子商务公司也通常采用类似的策略,因为即使停机几分钟,也可能导致严重的利润损失。Gremlin的混沌工程专家估计亚马逊的10分钟停机时间将使这家电子商务巨头损失200万美元的收入。

基于此,越来越多的公司采用这样的方式:将应用程序作为其备份/冗余策略的一部分在数据中心中运行。

4. 将混沌工程引入实践

混沌工程是有意引入问题以识别系统故障点的实践,它已成为交付高性能,弹性企业应用程序的重要组成部分。故意将“混乱”注入受控的生产环境中可以揭示系统的弱点,并使工程团队能够在问题产生重大业务影响之前更好地预测并主动缓解问题。

进行计划内的混乱工程实验,可以为企业系统弹性战略投资提供所需的情报。

5. 实施流量路由策略

通过实施流量路由策略,公司可以将有关网络状况和资源可用性的实时数据与真实的用户数据相结合,从而将停机和延迟的风险降至最低。这使IT团队能够实时部署新的基础架构并管理资源的使用,以解决故障或意外的流量高峰。

例如,企业可以将流量控制功能与VPN访问相关联,以确保始终将用户定向到具有足够容量的附近VPN节点。结果,保护用户免受中断和本地化网络事件的影响,否则这些事件可能会中断业务运营。

6. 定义SLAs 并持续监控系统性能

企业应监视其应用程序和系统,以提前解决性能波动,中断或其他问题。监视应用程序每个部分的运行状况和响应时间是系统弹性的关键方面。例如,测量应用程序的API调用所花费的时间或核心数据库的响应时间,可以提前判断即将发生的情况,并使IT团队能够克服这些障碍。

此方法还包括为不同的子应用程序和系统创建服务级别协议(SLAs ),然后对其进行监视以确保它们稳定运行。

7. 从新系统和应用程序入门

希望为软件增加弹性的企业,应该从对业务影响不大的新应用程序或服务时开始事件。尽管有些人可能会首先尝试向核心服务或应用程序添加弹性,但如果出现问题,这种方法可能会导致服务宕机(并且更具破坏性)。

IT员工可以尝试首先从解决新系统的弹性中学习。在新系统或边缘服务中尝试弹性的新方法,风险通常比较低。以后,IT团队可以将其学习成果用于其他关键业务系统和服务。

总结

当软件组织研究弹性方法时,他们必须考虑每种策略的成本与收益。

这七项建议需要在服务和架构花费大量投资,公司在确定最佳行动方案之前应仔细考虑。无论如何,他们都应将弹性作为软件最佳实践中的高优先级,以确保其数字应用程序和服务的高可用性和最佳性能。使得组织,在保持业务向前发展时并具备竞争优势。

译文链接:https://thenewstack.io/7-best-practices-to-build-and-maintain-resilient-applications-and-infrastructure/

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址