尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

School of SRE 实战收尾:URL 缩短应用的扩展、监控与 SRE 生产化指南

发布时间:2026/9/26 10:28:18

资讯中心
01
ARTICLE

School of SRE 实战收尾:URL 缩短应用的扩展、监控与 SRE 生产化指南

School of SRE 实战收尾:URL 缩短应用的扩展、监控与 SRE 生产化指南
教程【免费下载链接】school-of-sreAt LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.项目地址https://gitcode.com/gh_mirrors/sc/school-of-sre点击查看免费下载本篇指南是 School of SRE 中 Python and The Web 课程的收尾模块聚焦于将 URL 缩短应用从能跑推向可靠运行的完整 SRE 思考路径如何从单机部署出发消除单点故障、如何借助负载均衡与可观测性识别系统瓶颈以及如何为 Web 应用制定一套可落地的监控与告警策略。读完本文你将掌握以 SRE 视角审视一个 Python/Flask 应用全生命周期的分析方法并能为自己的服务设计扩展与监控方案。从开发到部署为什么设计完成只是旅程的开始设计、开发和本地运行只是应用生命周期的第一部分。当 URL 缩短应用的代码可以跑通shorten与/r/hash_两个核心接口之后SRE 真正的工作才刚刚开始你需要为它搭建持续集成与持续交付CI/CD流水线并把应用部署到某个真实环境。正如该文档所说The design and development is just a part of the journey. We will need to setup continuous integration and continuous delivery pipelines sooner or later. And we have to deploy this app somewhere.从源码结构看当前仓库的 Python and The Web 模块是分两部分组织课程的第一部分Some Python Concepts深入 Python 语言本身的机制第二部分Python, Web and Flask从 TCP socket 层面拆解 Flask 如何解析 HTTP 请求最后以 URL 缩短应用作为贯穿始终的实战载体。而本篇sre-conclusion.md正是这个模块的生产化收尾——它不再关心代码能否运行而是关心代码上线后如何持续保持可靠。扩展应用从单点故障到负载均衡第一步绝不接受单点故障最初我们可以在任意云厂商的一台虚拟机上部署应用。但这构成了一个典型的Single Point of Failure单点故障——一旦这台机器宕机整个服务就不可用了。这是 SRE甚至任何工程师都绝不接受的状态。因此第一个改进方向是部署多个应用实例并把它们放在**负载均衡器Load Balancer**后面。这样当其中一台机器出现故障时其余实例仍能继续承接流量避免服务整体中断。这个思路与仓库中 Scalability 模块 所讲的水平扩展Horizontal Scaling完全一致水平扩展就是克隆应用或服务使工作可以被无偏差地分发到多个实例上。该模块进一步给出了落地要点负载均衡器的三大职责服务发现后端有哪些可用实例、健康检查哪个实例当前健康、能接请求一旦某台实例变坏LB 应自动短路该路径让客户端感知不到停机、负载均衡用何种算法把单个请求分发给健康的后端。常见的负载均衡算法最小连接数Least Connection、最小响应时间Least Response Time、轮询Round Robin、IP Hash 等——SRE 需要根据流量特征如是否长连接、实例规格是否一致选择适合的算法。读与写分离在数据库层面通常只有读副本Read Replica可以扩展写流量必须集中到单个 Leader 以保证一致性因此应用代码需要能够区分读与写。第二步扩展的边界与瓶颈识别扩展在这里的含义是在负载均衡器后面不断增加实例。但这种方式只能扩展到某个程度当实例数量继续增长时系统的其他瓶颈会逐渐浮出水面——数据库可能成为瓶颈因为所有实例共享同一个存储负载均衡器本身也可能成为瓶颈。Only after you have metrics, you will be able to know what is going wrong where.What gets measured, gets fixed!这句 What gets measured, gets fixed!凡被度量的终被修复是整个模块的方法论核心没有指标就无法定位瓶颈。只有对应用架构的每个方面建立可观测性observability你才能知道瓶颈到底出在应用层、数据库层还是负载均衡层。Scalability 模块 还提供了更多扩展思路可对照应用到本应用上思考微服务化按动词/名词边界拆分服务与数据、分片按客户 ID、地域等属性拆分数据、CDN为静态内容就近缓存等。学完该模块后建议把学到的模式逐一映射到 URL 缩短应用上思考如何让这个应用在地理上分布式部署并做到高可用与高可扩展监控策略让系统故障无处遁形应用部署完成后短期内会运行良好但不会永远良好。Reliability可靠性就在我们的职位名称里我们通过设计让系统更可靠但机器仍会故障、磁盘仍会表现异常、有 bug 的代码仍会被推上生产。面对这些必然发生的场景答案只有一个监控We monitor!。监控的目标是持续观察系统健康状态一旦任何环节不符合预期就要让我们收到告警。但在设置告警之前必须先回答一个问题到底要盯住哪些指标针对 URL 缩短应用这个具体的 Web 服务sre-conclusion.md 给出了四个监控方向HTTP 状态码与延迟HTTP Status codes and latencies这是 Web 应用的基础健康信号。状态码反映请求成败延迟反映处理快慢。请求量Request volume如果应用接收到异常规模的流量可能意味着哪里出了问题例如被爬虫打满、或上游异常放大流量。数据库指标根据所选的数据库方案不同关注查询时间query times、查询量volumes、磁盘使用率disk usage等。外部监控external monitoring在数据中心之外的设备上运行周期性测试模拟真实客户访问确保从客户视角看系统工作正常。这四点与仓库 Metrics and Monitoring 模块 中介绍的Four Golden Signals四个黄金信号高度呼应黄金信号含义在 URL 缩短应用中的体现Traffic流量服务承载的请求量QPS请求量、缩短接口与重定向接口的调用频率Latency延迟请求处理与响应的时间各 HTTP 接口的响应时间建议关注 99 分位Error错误率失败请求的比例HTTP 4XX/5XX 状态码的比例以及返回 200 但业务数据错误的情形Saturation饱和度资源利用率内存、CPU、网络 I/O应用实例与数据库的资源水位值得注意的是在 Metrics and Monitoring 模块 中还强调单看 HTTP 状态码是不够的——可能出现 HTTP 200 但响应体数据不完整或响应时间违反 SLA 的情形因此还需要配合代码逻辑层面的埋点instrumentation来捕获错误。在告警与监控实施层面可参考 Best practices for monitoring 的原则选择合适的指标类型Gauge恒定值如当前内存、Timer任务耗时、Counter事件发生次数。避免过度监控不要在所有指标上耗费过多工程资源但要确保关键指标全部覆盖。防止告警疲劳alert fatigue只为重要且可行动的指标设置告警否则大量非关键告警会让你逐渐忽视通知最终漏掉真正的关键告警。为每条告警准备 runbook说明告警触发时应执行的检查与操作让团队任何成员都能独立处理。而文档中提到的外部监控正是 Third-party monitoring 所讲的第三方监控服务如 Catchpoint、Pingdom、Datadog 等它们从世界各地生成模拟用户请求的合成流量synthetic traffic验证服务的全球可用性或通过真实用户监控RUM采集各地理位置的可用性与响应时间——这弥补了服务端指标一切正常、但客户端实际体验糟糕的盲区。Python 在 SRE 日常中的角色在 SRE 的世界里Python 是编写小脚本和各类工具最广泛使用的语言之一。这些由 SRE 开发的工具通常作用在关键基础设施上拥有很大的权力甚至可以让系统宕机因此使用一门编程语言及其特性时必须清楚自己在做什么在排查问题debug时同样需要深入了解语言本身的特性。文档作者明确指出作为 SRE对 Python 语言的深入理解帮助其调试过非常隐蔽的 bug并在做设计决策时更加心中有数。这一点与模块第一部分的内容Some Python Concepts直接呼应——例如Python 中一切皆对象、函数对象上的__globals__、__code__属性、装饰器的工作机制等这些看似抽象的语言机制恰恰是理解生产工具行为、定位诡异故障的基础。还需要意识到角色定位的差异While developing tools may or may not be part of SRE job, supporting tools or services is more likely to be a daily duty.开发工具未必是 SRE 的日常工作但支撑工具和服务几乎肯定是每天的职责。构建应用或工具只是生产化productionization的一小部分应用上线后SRE 要为其可靠性与稳定性负责。为此你首先要理解应用然后才能制定出合理的监控策略并为各种故障场景做好准备。可选练习把理论转化为动手能力文档给出了四个可选练习用来巩固本章所学编写一个装饰器根据输入参数缓存函数的返回值。提示可结合 Some Python Concepts 中装饰器章节理解函数对象与闭包机制。将 URL 缩短应用部署到任意云厂商亲身体验从代码到线上服务的完整链路。使用现有工具如 Catchpoint、Datadog 等为应用搭建监控实践本文所述的监控四要素。在 TCP socket 之上实现一个极简 Flask 风格的框架重温 Python, Web and Flask 中框架本质就是监听端口、解析 HTTP 请求、提供便捷接口的原理。这些练习分别对应语言机制、部署运维、监控告警与框架原理四个维度正好覆盖了本模块前半部分Python 语言与后半部分Web 与 Flask的知识闭环。结语从语言机制到 SRE 全生命周期本模块的收尾总结了整个 Python and The Web 课程的意图第一部分旨在让你更清楚地认识到选择 Python 作为编程语言时会发生什么、运行一个 Python 程序时背后发生了什么。理解了Python 内部一切皆对象这一机制后Python 中许多看似魔法的行为都会变得顺理成章例如函数可以作为参数传递、装饰器如何包装函数等。第二部分则基于已有的 TCP、HTTP 协议知识先解释 Flask 这类框架是如何工作的然后触及应用开发的完整生命周期包括其中的 SRE 部分——设计、开发、部署、扩展、监控、故障应对。虽然本文涉及的架构设计与考量点并非穷举但它为你提供了一个清晰的全局视图作为 SRE除了写代码之外还有哪些事同样重要以及为什么它们重要。衡量一个系统是否成熟不在于它能跑而在于它能否在故障中保持可用、能否被度量、能否被快速修复——这正是 What gets measured, gets fixed! 所承载的 SRE 精神。如需深入了解扩展模式与监控体系的细节可继续阅读仓库中 Scalability 模块 与 Metrics and Monitoring 模块 的完整章节。赞分享教程【免费下载链接】school-of-sreAt LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.项目地址https://gitcode.com/gh_mirrors/sc/school-of-sre点击查看免费下载相关推荐PreviewSeekBar动画原理深度解析从Fade到Morph的完整实现PreviewSeekBar动画原理深度解析从Fade到Morph的完整实现 PreviewSeekBar是一款专为媒体播放场景设计的Android自定义控件school-of-sre大数据处理框架Flink实时计算与SRE监控school of sre大数据处理框架Flink实时计算与SRE监控 实时计算技术演进与挑战 随着数据生成速度的指数级增长如 UPI交易案例 https:教程Sparse Priming Representations vs 传统RAG哪个更适合你的AI项目Sparse Priming Representations vs 传统RAG哪个更适合你的AI项目 在当今AI快速发展的时代 Sparse Prim上一篇3分钟搞定Steam动态壁纸下载Wallpaper Engine免费开源下载器全攻略下一篇不换耳机不花钱一个免费系统级音频均衡器让电脑声音从听个响变听细节创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。