关于高效运行云部署的最佳实践
将操作作为代码执行
- 使用 OCI Landing Zones 框架
利用 Oracle 设计的蓝图以及设计指导和预配置的 Terraform IaC 模板,这些模板适用于大多数 OCI 部署的各种架构和使用场景。
- 采用基础设施即代码 (IaC)
使用基础设施作为代码,自动部署工作负载和操作过程,限制人机交互,并改善对事件的响应。
- 定义工作量基础结构
将基础设施定义为代码时,可以在一致的基础设施上自动重复预配工作负载。参数化允许重复使用通用模板,促进跨环境标准化,并最大限度地减少团队之间的返工。
- 开发和部署应用程序
通过在现有基础设施上自动部署代码,可以在多个基础设施部署上实现应用一致性。
- 管理基础结构配置
在多个云资源上配置和更新基础设施配置时,一致性至关重要。通过配置管理,可以在设计、实施、测试、修补和新发行版期间管理基础设施配置部署。
进行频繁和重复的部署
在测试和部署代码时,使用自动化和迭代开发流程来尽可能降低风险。
- 自动执行应用部署流程
尽可能多地实现流程自动化。如果可能,可避免在生产环境中手动部署;不过,在较低的环境中可以接受这一点,以提高速度和灵活性。
- 利用自动化功能在部署之前测试您的代码
测试错误、安全漏洞、功能、性能和集成对于尽可能减少用户发现的问题至关重要。测试失败应防止代码发布到生产环境中。
- 实施迭代部署和增量部署
更频繁地测试和验证部署,从而降低风险。更小、更频繁的更改可能导致更少的故障风险和识别问题的延迟。
定义操作过程
定义用于利用可用工具和自动执行过程的过程。
- 自动打补丁和维护
利用工具自动更新作为客户维护责任的一部分的计算实例、数据库实例和服务器并为其打补丁。
- 利用配置管理实用程序
使用配置管理工具在更新资源配置时自动执行并降低风险。
- 监视系统性能度量
了解基础设施服务提供的指标。设置监视和预警,以便了解所有工作负载的状态和主动的故障指示器。
- 记录并测试您的灾难恢复计划
编写一个灾难恢复计划,反映应用程序故障对业务的影响。了解应用依赖关系及其对应用的影响。尽可能自动执行恢复过程,并记录任何手动步骤。定期测试灾难恢复流程以验证和改进计划。
- 制定 Oracle Cloud Infrastructure 支持交互计划
在需要之前,请建立联系 Oracle Cloud Infrastructure 支持的流程。
- 将 FinOps 练习纳入其中
将 FinOps 实践纳入运营流程,确保成本管理成为日常运营不可或缺的一部分。
期待失败并学习
在应用程序的整个生命周期中会发生意外故障。从故障中学习并改进响应和恢复流程。
- 从失败中学习
执行根本原因分析和优化运营流程,以更好地、更敏捷地应对未来的故障。
- 持续改进事件响应
将从失败和过去问题中吸取的经验教训与现有事件响应程序相结合,以防止未来问题并缩短平均维修时间。
- 失败实践
定期测试和排练事件管理和恢复流程,以便对未来的响应进行微调。
确定和监视工作量关键绩效指标
确定工作负载的基线性能和关键性能指标 (Key Performance Indicator,KPI)。使用 KPI 和日志监视应用程序工作负载运行状况和性能。
请考虑使用以下命令监视工作负载性能:
- 围绕服务调用实施跟踪
基线性能数据有助于提供趋势数据,您可以利用这些数据主动识别性能问题,然后再影响用户。
- 实施健康检查
定期从应用程序外部运行运行状况检查和探测,以确定应用程序运行状况和性能的降级。运行状况检查和探测器应该不仅仅是静态页面测试,它们应该反映整体应用程序运行状况。
- 检查长时间运行的工作流
提前发现问题可以最大限度地减少回滚整个工作流或执行多个补偿事务处理的需要。
- 维护系统、应用和审计日志
利用集中式日志记录服务来存储和分析日志。
- 设置预警系统
确定应用程序运行状况的关键性能指标 (Key Performance Indicator,KPI),例如瞬态异常和远程调用延迟,并为每个应用设置适当的阈值。达到阈值时向操作发送警报。
- 训练多个操作员来监视应用程序并执行手动恢复步骤
确保始终至少有一个训练有素的操作员处于活动状态。
- 创建根据 KPI 执行操作的扩展策略
扩展策略有助于在高需求期间为最终用户提供一致的性能,并有助于在低需求期间降低成本。