DevOps 工业级可靠性

为什么DevOps 必须具备工业级别的可靠性

企业向DevOps 过渡的初期,需要文化理念和心态上的转变。简单来说,DevOps 的宗旨就是消除两个传统上孤立的团队(开发团队和运营团队)之间的壁垒。有些组织甚至没有独立的开发团队和运营团队,工程师可能身兼两职。利用DevOps,这两个团队可以携手合作,共同提高开发人员的生产力,同时必须增强运营的可靠性。在整体过程中,不管是任何一个团队,如果不能保证其可靠性,那么DevOps根本没有建设的必要。一个不具备可靠性的DevOps体系,必然“中道崩殂”。

快速交付的正常性和安全性要求

在快速交付一文中,我们讲到了快速交付流程。如果没有代码的各种评审机制,不能确保团队所有开发人员的代码是在下一个阶段是尽可能准确的(包括后端逻辑、前端页面等等),在进行单元测试,代码样式检查,代码指标评定,创建容器镜像等过程中,状况频出,也就不能很好地进入Build阶段。如果是在Test阶段,没有进行与其他系统集成测试,压力负载测试,UI测试,渗透安全性测试等等,那么在部署上线之后,一定会产生客户体验差、应用程序崩溃、敏感数据泄露等等诸多问题。所以快速持续集成交付的正常性和安全性要求是可靠性的必要条件之一。

架构建设过程中日志监控、追踪、分析的数据支撑要求

在具体实施阶段,组织对各项指标和日志进行监控,以了解应用程序和基础设施性能如何影响其产品的最终用户体验。通过对应用程序和基础设施生成的数据进行采集、分类和分析,组织可以了解变更或更新如何影响用户,同时深入了解出现问题或意外变故的根本原因。由于服务必须全天候持续可用,而且应用程序和基础设施的更新频率不断提高,因此主动监控变得日益重要。此外,创建警报或对这些数据执行实时分析也能帮助组织更主动地监控其服务。所以,日志监控、追踪、分析的要求在DevOps建设过程中必不可少,这是可靠性的必要条件之一。

怎样使DevOps 具备工业级别的可靠性

通过对监控,日志记录,指标和警报进行整合,进行分析操作自动化

我们结合实际实施经验,运用CloudWatch、Zabbix,Datadog、Splunk等工具将所有监视,日志记录,指标和警报整合,监视多个重要工作负载的错误率和状态代码。

我们使用CloudWatch来实现Auto Scaling操作的自动化,从而使我们能够优化为Amazon ECS集群提供支持的Amazon EC2实例类型的成本。

借助CloudWatch Events向团队提供利用率和定价信息,以便他们可以审核账户安全性,针对合规性和安全用例触发AWS Lambda操作,以及使用云计划我们的资源。CloudWatch支持下一级自动化,并扩展了每个人的容量。

借助CloudWatch Logs Insights,我们现在能够在CloudWatch Logs中查询日志,从而降低了操作复杂性。每次查询付费使我们能够灵活地按自己的步调进行扩展,我们的工程师可以开始使用和查询日志,而不必等待我们当前解决方案的设置,集成和提取。我们还从查看指标和日志中受益,可以更快地进行故障排除。对于我们的工程师而言,Logs Insights是一种有效且廉价的解决方案,可用于监控他们的应用程序并从单个AWS控制台执行日志潜水。

 

分布式跟踪

我们结合实际实施经验,运用X-Ray、Jaeger、Zipkin等工具,结合其他实施经验进行分布式追踪。

通过Traces分析对应用程序发出的请求响应代码来自动突出显示应用程序代码中的漏洞或错误;通过端到端跟踪,检测服务器端延迟和用户端延迟,查明影响应用程序和最终用户的性能问题;数据注释和筛选,X-Ray对后端元数据进行归一化和整理,向应用程序中特定组件或服务释放出的数据添加注释。还可以按注释值、平均延迟、HTTP 响应状态、时间戳、使用的数据库表等属性查看和筛选轨迹数据。

当时X-Ray在国内没有上线,我们通过调研和数据分析,给出了分布式OpenTracing追踪系统Jaeger方案,在X-Ray解决现有问题的基础上,在兼容客户端语言和采样策略上jaeger胜出,唯一的缺陷是在对于AWS其他服务的配合存在一定的缺失。

 

活动和API 使用情况跟踪

我们结合实际实施经验,借助CloudTrail、Alert Logic、Datadog等工具,结合其他实施经验,给出客户日志管理、API追踪解决方案。

我们借助CloudTrail,对AWS 账户进行监管、合规性检查、操作审核和风险审核的服务。借助CloudTrail,记录日志、持续监控并保留与整个AWS 基础设施中的操作相关的账户活动。CloudTrail 提供AWS 账户活动的事件历史记录,使用CloudTrail 来检测AWS 账户中的异常活动。这些功能可帮助您简化分析和问题排查。记录AWS 管理控制台操作和API调用来提高用户和资源活动的可见性。识别调用AWS 的用户和账户、发起调用的源IP 地址以及执行调用的时间。

Alert Logic Professional 包含一个使用CloudTrail作为数据源的日志管理解决方案。Alert Logic Professional 可跟踪、解析、分析和存档CloudTrail 信息,以快速识别遭到入侵、存在潜在漏洞的迹象或运行事件响应取证。如果您的组织需要满足PCI、HIPAA、SOX 或其他合规要求,则此功能至关重要。借助Alert Logic Professional 和CloudTrail,可以专注于快速补救威胁,包括未授权权限升级、暴力破解尝试、恶意用户身份和访问活动。