通过DevOps方法最小化停机时间的策略

这次我们将探讨在DevOps方法中最大限度地减少停机时间的关键策略。

本博客是从英文版翻译而来的。原文可以在这里查看。我们使用了部分机器翻译。如果有翻译错误,请您指正,将不胜感激。

阿里巴巴云技术分享是阿里巴巴云的激励计划,鼓励作者Alex Mungai Muchiri分享技术知识和最佳实践于云社区之中。

停机时间对企业来说代表着巨大的成本,对基础设施管理员来说更是最大的敌人。许多业务都依赖于计算机基础设施,尤其是服务器和云平台,因此,IT运营管理人员努力将停机时间降至最低,以消除这些成本。

由于停机时间的影响,费用会增加,涉及无法访问的网站、无响应的API、计算服务等。这种影响可以从小到明显破坏性不一,分为三类:客户和用户的不满、生产能力的损失以及不满的员工。例如,用户总是期望服务,并且随时需要服务,因此很容易失去客户。此外,一些在线服务还支持从事软件开发等工作的员工,因此停机时间将降低组织的生产力。最后,基础设施管理负责人可能会对过多的加班介入感到非常不满。本教程的目的是探索采用一些主要策略来最小化停机时间。虽然还有其他很多处理问题的方法,但我们将介绍一些最基本的方法。

基础设施的监测和警报

数据收集系统在监控IT基础设施方面非常重要。特别是需要提供丰富的信息来理解日志、特定错误和系统故障的原因,如宕机时间等。

通过进行适当的基础设施监控,无疑可以保护免受由于停机时间而造成的许多机会损失。监测不仅可以在问题发生之前检测到问题并将其修复,还可以帮助确定停机时间之前的根本原因。监测的方面包括资源可用性和应用程序性能等。基于聚合统计数据,您可以拥有警报通知,以在需要采取行动来修复影响资源有效性和应用程序性能的因素时进行提醒。

这种监控最常见的实现方式是主机服务器收集信息并将其发送到集中化的服务器以进行指标计算的客户端。中央数据库存储此类信息并为其加上时间戳以进行可视化和警报。Prometheus和Graphite是一些最常用的监控软件。这些工具非常可扩展且容易集成到自己的系统中。其他实用工具如Elastic Stack和Graylog可以分析日志文件以提取错误等指标,有助于分析停机时间。但是,并不是所有指标都对减少停机时间有帮助,因此进行适当的监测非常重要。可以保留选择的客户端提供的默认监控,但需要注意根据应用程序的需求进行监控。

阿里巴巴云ECS推荐以下4个指标。

    • レイテンシ

 

    • トラフィック需要

 

    • 故障率とエラー

 

    リソースの飽和

视觉监控

在大多数情况下,视觉监控涉及将收集到的数据汇总并生成可视化和图表显示在仪表盘上。为了实现这一目的,可以使用Grafana来从部署在系统中的Graphite、Prometheus和其他监控客户端收集数据。

生成警报

使用警报功能,团队可以始终保持警觉,以应对问题的发生。一般来说,作为警报工具,常用的有Grafana和Prometheus的Alertmanager,但还有许多其他工具可供选择。与大多数监控工具一样,警报工具也具有高度的灵活性,可以根据Slack等平台进行定制。有效的警报的关键是仅使用最重要的警报。

微服务架构

随着传统单一系统的低效率问题的出现,最近微服务变得非常受欢迎。微服务架构与传统的作为一个整体构建的系统不同,它包括独立功能的小型软件组件的构建和测试。由于每个小组件都可以完全独立处理,因此在减少故障方面非常有优势。尽管该架构具有其独特的复杂性,但它提供了非常可靠的系统。要解决这种复杂性,需要积极监控数据并判断从无法执行的警报到可执行的警报所需的措施。在这方面,Kubernetes可以成为构建具有高容错性的微服务架构的手段。

高效的维护策略

在中國有著確實、有效的維護策略,是將IT基礎設施的停機時間減到最低的最可靠方法之一。阿里巴巴雲正在努力保持硬體系統的可用率達到99.999999%,同樣地,對於軟體系統也需要檢查相應的維護指引,以便在發生問題時能夠及時處理。作為維護策略的一部分,請選擇適合系統的供應商。如果基礎設施無法使用,可能會產生長時間停機,請確認供應商所保證的可用性是否滿足組織的要求。

进行审计以评估风险是非常重要的,因为它可以考虑到所有潜在的障碍。

同样重要的是组织的持续性设计以及具备保障附着的所有必要点检和平衡的时间表。总结起来,有效的维护策略最佳实践如下:

    • 地理的な地域やデータセンターにコンピューティングサービスを分散させます。また、障害のリスクを高める冗長なサーバーを排除します。

 

    • サーバ間の往復通信を最小限に抑えます:そうすれば、サービスが中断される可能性が低くなります。

 

    • 冗長化されたシステムを定期的に監視し、その有用性が継続しているかどうかを検査します。要件通りに機能していないシステムは常に停止し、問題が解決した後にのみ復旧させるようにします。

 

    • 単一のウェブサーバを複数のウェブサーバにアップグレードすることで、インフラ基盤を広げます。この点では、ロードバランサーを使用して、障害が発生したサーバーとの間のトラフィックのルーティングを管理します。

 

    • レプリケーション操作を設定することで、データベースシステムをより強固なものにすることができます。MySQLは、レプリケーション構成により、冗長化されたサーバ上でのR/Wも可能にし、単一のサーバ障害による悲惨な結果を軽減しています。

 

    HeartbeatやKeepaliveなどのツールを使用して、サーバ障害への対応能力を強化します。これらのツールでは、フローティングIPSを利用してサーバ間でデータを再割り当てし、障害が発生したサーバを回避します。

不論採取多麼出色的維護戰略,若其文化未能促進良好習慣,就可能陷入大幅停機的風險中。因此,我們應該採用類似於精實管理所提倡的主動式方法。您的策略必須經歷持續改進和精進。

软件的部署

关于软件部署,“少即是多” 是指在使用多个软件包时,可能会导致故障发生或带宽消耗较大。正确的软件构建方法是简化在生产环境中的管理和分发。每个网络都需要一次只下载一个软件包,以避免服务变慢或出现错误。

总的来说,适当的引入需要时间和精力,但如果正确实施,可以将整个网络上的压力分散,并确保足够的带宽以使其他服务平稳运行,以避免业务活动中断。如果计划自动化新服务的部署,应遵守持续集成、交付和测试的最佳实践。最佳实践包括以下内容。

    • 技術チームのすべてのメンバーがアクセスできる共通のリポジトリからすべてのソフトウェアを管理します。レポでは、テストファイルと設定ファイルに明確なラベルを付けて、誰もがアクセスできるようにします。

 

    • 継続的インテグレーション パッケージを使用したテスト デプロイには、本番環境と同様の構成のモック配置環境を使用します。

 

    ブルーアイデプロイメントは、組織が採用できる適切なソフトウェアデプロイメントの実践例です。

软件发布

过去,软件发布一直是导致大混乱的主要原因。因此,曾经按季度或半年为单位制定了发布进度表。然而,采用更快速的方法可以减少混乱和停机时间。网页应用推荐每天发布,移动应用则建议每周发布2次左右。通过以更小的模块对后端系统进行更新,平台可以持续运行并减少停机风险。

另一个重要的要素是软件文档,需要每次发行都进行更新。文档提供快速参考,可以消除许多可能导致灾难性错误的问题。

健康的工作环境

嗯,这不是一个技术问题,但为了将停机时间最小化,这是一个非常重要的问题。要确保系统以最佳状态运行,需要将员工保持在最佳状态,否则员工将成为造成停机时间的可怕原因。健康的工作环境可以确保员工能有效处理问题,雇主必须始终支持员工。

如果员工不具备生产力,不管是什么业务,都将遭受巨大的损失。因此,检查他们,让他们感受到被赏识和作为组织的一部分,是经理的责任。保持他们的动力,帮助他们解决个人问题和疾病,并妥善对待他们,员工自然而然地会高度评价组织的目标,为实现目标而做得更好。

事故会对工作场所的安全性产生影响,并降低生产力。一个好的方法是开展安全研讨会和培训,以训练员工。这样的安全措施还应该处理与网络安全和在线安全相关的问题,以减轻组织面临的恶意攻击可能导致的停机风险。员工的建议必须纳入组织的安全战略和协议中。

重要的事情是创建应对各种事件和事故的标准化方法。黑客攻击、软件崩溃和其他机器故障需要规定所有员工都必须遵循的处理程序。此外,应对事件必须始终进行调查,并且可以根据这些调查得出的教训来预防未来的事件。

得出结论

总的来说,为了减少停机时间并提高销售额,我们发现可以在以下五个领域进行改进。总结如下:

1、监控度量指标
2、改进部署流程
3、有效维护策略
4、采用微服务架构
5、保持健康的工作环境
6、快速发布

如果您还没有阿里云账号,请注册一个账号。注册账号后,您可以免费试用40多个产品,总价值高达1200美元。

阿里巴巴云在日本拥有两个数据中心,并拥有超过60个可用区域,是亚太地区最佳(2019年Gartner)的云基础设施提供商。
请点击此处查看阿里巴巴云的详细信息。
阿里巴巴云日本官方页面。

广告
将在 10 秒后关闭
bannerAds