教程【免费下载链接】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),仅供参考
企业数字化 ERP 产品动态
相关推荐
RustFS 1.0.0 深度评估:能否替代 MinIO 的对象存储选型指南 最近把内网里跑了两年多的 MinIO 集群翻出来做容量体检,硬盘又满了。正准备继续扩容,同时接到一个新任务:评估 RustFS 1.0.0。这个项目在对象存储替代方案里不算新面孔,今年终于正式宣布 GA——版本号从 0.x 跨到 1.0,… · 2026/9/26 10:28:12
CLI Skill:将工程师直觉编译为可执行的运维命令 1. 这不是插件,是把“老师傅拍脑门”的经验翻译成机器能执行的代码 你有没有遇到过这样的场景:一个刚毕业的工程师提交了 PR,资深同事扫了一眼就皱眉:“这里异步调用没加超时,线上会雪崩”;另一个同学写了… · 2026/9/26 10:28:12
PowerShell查看和输出Windows环境变量实战指南 1. 环境变量到底是什么,为什么值得花十分钟搞明白 聊 PowerShell 查看和输出 Windows 环境变量之前,先说个我碰到过很多次的场景:帮同事排查 Java 跑不起来的问题,打开命令行敲 java -version ,结果提示“不是内部或… · 2026/9/26 14:04:12
PowerShell 环境变量查看与输出:从原理到实战 写环境变量这块,其实我一直有点感慨:很多人玩 Windows 用了好多年,天天在“此电脑 -> 属性 -> 高级系统设置 -> 环境变量”这个图形界面里点点点,却不知道命令行里其实有一整套更高效、更适合批量处理的操作方式。尤其是… · 2026/9/26 14:04:12
Skill文件编写指南:从Prompt到可复用AI能力的实战方法 1. 从零理解Skill:它到底是什么,为什么值得花时间 第一次接触“Skill”这个词,很多人会把它和“插件”“脚本”“Prompt模板”混为一谈。我刚开始也这样,直到在一个自动化项目里被一个Skill文件救了命,才真正搞明白它的… · 2026/9/26 14:04:12
企业本地化AI文档管理:从RAG到知识库的落地路线图 我得先坦白一个现状:最近这个圈子确实被“AI主机”这个词带起了一波热度,连带着企业文档管理要不要本地化、怎么本地化,也被重新翻了出来。我前前后后帮几家公司做过类似的事,从几十人的团队到几百人的组织都有,整体走… · 2026/9/26 14:04:05
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46