卓越运营

卓越运营支柱侧重于组织团队、设计工作负载、大规模运营以及不断进行改进的效率和最佳实践。
卓越运营提供用于持续改进支持流程和程序的知识和经验。

设计原则

卓越运营支柱侧重于运行和监控系统,并不断改进流程和程序,以有效运行您的工作负载并提供商业价值。
卓越运营设计原则指导您运营架构以实现效率最大化。在实现卓越运营的过程中,自动执行变更、响应事件和制定标准用于管理日常运作的标准是关键任务。

1.执行运营即代码

将用于应用程序代码的相同工程学科应用于整个环境。您可以将应用程序、基础设施、更新和运营程序定义为代码,并进行代码更新。

考虑修补您的基础设施,在本例中为 Amazon EC2 实例。手动执行此操作可能既费时又麻烦。如果我们将其自动化,很多困难就会消失。

利用 AWS Systems Manager 等补丁管理解决方案,您可以配置修补组。同时修补所有内容可能会出现问题,因此您可以进行微小的增量更改。

您还可以配置维护时段。不建议修补繁忙的实例,因为这可能会降低性能。所有这一切都可以使用模板或文档(以 JSON 或 YAML 格式编写)进行管理。该文档可以与您的源代码一起进行维护。更改会被签入和签出存储库,而您对更改拥有完全可见性。 alt text

2. 频繁进行可逆的微小更改

您对工作负载的设计应该让组件能定期更新。进行微小的增量更改,如果发生故障可以撤销。

进行同时影响工作负载的多个部分的大型更改会对您的业务造成较大的影响。您可以使用流程来覆盖部分动作,这将确保负责您工作负载的不同部分的团队不会同时进行更改。您不会希望有人在您修补实例的同时更改安全组配置。如果出现问题,故障排除会变得更加复杂。

  • 使用代码管道做到这一点。AWS 代码套件支持这一最佳实践,因此您可以快速启动并运行。

  • 使用源代码控制服务来托管您的存储库。在本例中,源代码控制服务是 AWS CodeCommit,但您还有其他选择,例如 GitHub 或 GitLab。

  • 使用持续集成 (CI) 服务来编译和测试代码。在本例中,它是 AWS CodeBuild。

  • 使用部署服务将代码部署到计算服务(如 Amazon EC2 和 AWS Lambda)中,甚至部署到本地。

  • 在本例中,AWS CodePipeline 是持续交付 (CD) 服务包装器。它让您可以自动执行流程,是将所有一切结合在一起的粘合剂。 alt text

3. 经常优化运营程序

经常优化运营程序,您就能根据工作负载的变化改进这些程序。安排定期实际演练来评估程序并进行改进。使用 Well-Architected Framework 定期审核方法来寻找改进工作负载的机会。

  • 考虑一个迁移场景。您的一组 Linux 服务器迁移到了 EC2 实例。您的运营 (Ops) 团队使用 Secure Shell (SSH) 管理这些服务器,以根据需要进行连接和运行命令。

  • 迁移后,云和运营工程师像在本地一样使用 SSH 进行连接。然后,运营团队审核并优化流程。

  • 他们决定使用 Session Manager(AWS Systems Manager 的一项功能)连接到服务器。此服务提供了一种更易于管理、更安全的方式来连接到 EC2 实例。
    alt text 团队使用 Well-Architected 审核等机制定期或根据业务节奏通过运营不断改进工作负载。
    经常改进您的流程和程序,并更快地利用新技术。这可以节省您的时间、资金和精力。

4. 预见故障

识别潜在的故障源,并确定适当的补救措施。测试故障场景,验证您对此类场景的影响的了解程度。

  • 考虑一个三层 Web 应用程序。解耦这三个层可以帮助您管理这些层中的故障。

  • 将实例分布在不同的子网和可用区中可以预见实例故障。还可以预见网络访问控制列表(网络 ACL)配置错误或者会影响子网或可用区访问的联网问题。

  • 在不同的可用区中部署主和备用 Amazon Relational Database Service (Amazon RDS) 实例有助于保持可用性和为故障做准备。 alt text

最佳实践

组织

企业优先事项
您的目标应与业务成果保持一致并为其提供支持。
运营模型
了解您在实现业务成果方面发挥的作用。团队需要了解他们在其他团队的成功中起到的作用、其他团队在他们的成功中起到的作用,并共享目标。了解责任、所有权、决策方式以及谁有权制定决策,可以使工作有的放矢,最大限度提高您团队的收益。
组织文化
提供支持以有效地采取行动并支持您的业务成果。

准备

针对运营的设计
工作负载的设计应包含如何部署、更新和运营工作负载。将您的整个工作负载视为代码,包括应用程序、基础设施、策略、监管和运营。加入技术和业务指标的观察方法,如日志和指标。将标记策略纳入设计有助于您履行多项运营职责,如自动化、成本跟踪、资源组织和访问控制。
运营就绪
运营就绪的重点是为工作负载运营做好准备。使用运行手册和行动手册来帮助始终如一地运行流程。运行手册是实现特定成果的预定义程序。在运行手册中记录程序,以便对易于理解的事件作出一致且及时的响应。确保覆盖范围适当,包括员工以及运营工作负载和使用运营工具的适当技能集。
alt text

运营

了解运营状况
实施策略以帮助您轻松了解工作负载的运营状况。收集日志数据并定义基准指标。然后使用 Amazon CloudWatch 控制面板来显示系统级和业务级的指标视图。
响应事件
准备好响应计划内和计划外事件。使用运行手册和行动手册来响应这些事件。您可以通过监控指标来触发对运营事件的脚本响应。建议进行根本原因分析,以防止计划外事件再次发生。 alt text

改进

从经验中学习
留出时间来分析运营活动、故障和实验,以改进您的程序。使用 Amazon CloudWatch 实施日志记录策略,以便汇总运营活动、工作负载和基础设施的日志。您的策略应该包含日志数据分析和数据可视化方法。
分享经验教训
与企业中的其他团队分享经验教训。这可以防止可避免的错误,同时也减轻了开发工作的难度。将代码方法用于应用程序、计算、基础设施和运营,从而为发布、共享和采用提供便利。您可以共享亚马逊机器映像 (AMI)、AWS Lambda 函数、AWS CloudFormation 模板和其他资源。 alt text

                                                             王忠滟