- 文档
- 教程
- DevOps
- 运维
【免费下载链接】devops-exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
本文以 devops-exercises 开源仓库官方 FAQ(faq.md)为骨架,系统梳理该项目的定位、学习方法、面试准备思路、核心技能要求、内容来源与贡献规范。读完本文,你将明白如何高效利用这套包含 2600+ 道题目与练习的仓库提升 DevOps 能力,理解题目设计原则背后的教育理念,并掌握参与社区共建的正确姿势。
仓库定位:这是一份「学习」导向的题库,而非面试真题库
FAQ 开篇就为整个仓库定下了基调:这个仓库存在的目的是「学习」(Learning, of course)。它既不是权威认证,也不是某家公司的面试真题集,而是一套覆盖 Linux、Jenkins、AWS、SRE、Prometheus、Docker、Python、Ansible、Git、Kubernetes、Terraform、OpenStack、SQL/NoSQL、Azure、GCP、DNS、Elastic、网络、虚拟化等主题的知识自测与动手练习合集。
这一点在仓库根目录 README.md 中有直接印证:仓库目前包含2624道题目与练习(该数字由 scripts/count_questions.sh 动态统计并回写 README),同时 README 明确声明:"You can use these for preparing for an interview but most of the questions and exercises don't represent an actual interview"——即题目可用于面试准备,但大部分题目并不等同于真实面试题。这与 FAQ 中"不要假设你的面试会包含与仓库相似的问题"的警告完全一致。
仓库内容大体分为两类载体:
- 问答型题目:在 README 及各主题 README 中以 HTML
<details>/<summary>/<b>折叠结构呈现,如 topics/ansible/README.md 中的自测题; - 动手型练习(Exercises):以独立 Markdown 文件给出目标、环境要求与操作步骤,部分附有 solutions 目录存放参考答案,例如 topics/containers/working_with_images.md、topics/aws/exercises/new_vpc/exercise.md、topics/linux/exercises/navigation/README.md。
用本仓库备战 DevOps 面试:可行,但有前提
FAQ 专门回应了"我的目标是准备 DevOps 面试,应该用这个仓库吗?",答案是**"应该,但不要过度期待"**。仓库的价值在于帮助你建立概念体系与实战手感,而非提供可背诵的面试题库。FAQ 给出的补充建议是阅读面试准备指南 prepare_for_interview.md,该文档以"主观观点"的形式给出了完整备战框架:
- 技能层面:Linux 应成为最强的技能之一(至少 90% 的 DevOps 岗位都要求);编程能力可支撑自动化与工具改进;同时需要具备系统/架构设计能力与对常用工具"能讲清原理、用法与最佳实践"的熟悉度;
- 实战层面:把岗位 JD 中的要求转译成场景化任务——例如"了解 CI/CD"→"为一个项目搭建 CI/CD 流水线","有服务器配置经验"→"自己配置一台服务器(甚至做成 Web 服务器)","有脚本经验"→"把日常手动操作自动化";
- 心态层面:熟读自己的简历、提前研究目标公司、试着扮演面试官反向评估公司,并考虑从系统管理员、开发或 QA 等相邻岗位切入 DevOps。
仓库还配套了自动化自测工具,把"随机抽题"这一学习方式落到了代码层面:
- scripts/random_question.py:解析 README 中所有
<summary>问答对,随机抽取一道题目并在终端展示,按回车后显示答案;支持-s/--skip跳过没有答案的题目,适合快速自测; - scripts/question_utils.py:提供
get_question_list()、get_answered_questions()、get_random_question()等函数,按需抽取"全部题目"或"仅有答案的题目",可被其他脚本复用做模拟测验。
如何成为一名更好的 DevOps 工程师:练习、阅读、参与、分享
FAQ 用四个关键词回答了"如何成为更好的 DevOps 工程师",这也是项目作者本人的方法论,值得完整展开:
- Practice(练习):FAQ 认为"动手实践是成为 DevOps 工程师的主要路径"。仓库本身就是一个练习场——既有 topics/shell、topics/linux 这类命令行实操,也有 topics/terraform/exercises 下带
main.tf/versions.tf的 IaC 练习,以及 topics/aws/exercises 下带 Terraform/Pulumi 目录的真实云资源创建任务; - Read(阅读):博客、书籍、技术文章都能扩充知识面。仓库的 certificates 目录整理了 AWS、Azure、CKA/CKAD 等认证路径文档,topics/kubernetes/CKA.md 则聚焦 K8s 认证准备,可作为阅读的起点;
- Participate(参与):加入社区讨论。FAQ 特别提到作者本人常逛的 DevOps 社区(如 Reddit 的 r/devops),从中能学到跨公司、跨场景的实践经验;
- Share(分享):作者创建本项目的首要动机是"帮助他人",次要动机很快变成了"让自己学得更好"——提出问题的过程本身就是一次深度学习。FAQ 建议:选一个主题,尝试设计能考察他人水平的问题,你会对该主题理解得更透彻。
这套理念在仓库形态上有直接体现:题目覆盖的广度(网络、硬件、操作系统、数据库、安全、可观测性、混沌工程等)正是"以教促学"的结果,而 CONTRIBUTING.md 的存在说明项目把"提问"本身设计成了人人可参与的持续学习机制。
核心技能要求:OS、编程、云与容器、CI/CD
FAQ 坦承"问 20 个人会得到至少 10 种答案",但仍给出了当前业界共识度最高的四项核心技能,并与仓库主题一一对应:
| 技能 | FAQ 要点 | 仓库对应资源 |
|---|---|---|
| 操作系统(OS) | 理解 OS 工作原理、会排查与调试,理解深度不应因公司而异 | topics/os(含 fork 系列练习)、topics/linux |
| 编程(Programming) | 属于 DevOps 的一部分;深度因岗位而异,从脚本到算法/数据结构/设计模式不等 | coding/python(二分查找、归并排序)、topics/python、topics/software_development |
| 云与容器(Cloud & Containers) | 并非 100% 必需但逐年升温,多数岗位要求,具体指 AWS/Azure/GCP、Docker/Podman、Kubernetes | topics/aws、topics/azure、topics/gcp、topics/containers、topics/kubernetes |
| CI/CD | 能回答"为什么需要 CI/CD"、"有哪几种实现方式与模型",并动手搭建流水线 | topics/cicd(含 deploy_to_kubernetes 练习)、topics/jenkins、topics/circleci |
注意 FAQ 与 README 的告诫是相互呼应的:不必"学完仓库里的所有主题和技术"——DevOps 岗位考察的深度与广度因公司而异,面面俱到不如重点突破。
题目来源、重复设计与版权红线
关于"题目和答案从哪来",FAQ 的回答是"到处都是"——过往经验、同事、贡献者等等,但明确禁止从其他面试题网站搬运内容,并给出了实证:项目曾拒绝过包含外部站点复制内容的 Pull Request。这既是版权尊重,也是内容质量底线。
针对"为什么有些问题重复?",FAQ 的幽默解释背后是一条教育原则:
- 完全相同的题目出现 = bug;
- 相似但角度不同的题目 = 刻意设计(feature)。
FAQ 举的例子很有代表性:What is horizontal scaling?(名词概念)与The act of adding additional instances to the pool to handle scaling is called ____ scaling(填空应用)——两道题都在考水平扩展,但考察角度不同。作者认为:重复能帮助学习者不被固定的提问方式束缚,真正理解概念本身。这一设计在仓库里随处可见,例如 topics/containers 中既有working_with_images.md,又有commit_image.md、sharing_images.md等从不同侧面考察镜像操作的练习。
为什么很多题目没有答案,以及去哪找答案
FAQ 给出了两个诚实的理由:
- 项目需要更多贡献者——答案的完善依赖社区共建;
- 提问往往比回答更容易——出一道好题的门槛低于给出一份高质量解析。
找不到答案时,FAQ 建议的路径是:先用搜索引擎和官方文档自查("这本就是 DevOps 工程师工作的一部分")→ 求助社区 → 在项目上发起讨论。这种"不直接喂答案"的设计与 scripts/random_question.py 的-s跳过无答案题目的机制形成互补:自测时既可以只抽有答案的题,也可以直面"开放式问题"倒逼自己去查证。
贡献机制:能加什么、不能加什么、如何被合并
FAQ 与 CONTRIBUTING.md 共同划定了贡献边界:
- 可以加什么:问题与答案都欢迎。CONTRIBUTING 给出了严格格式——每个问题必须包裹在
<details>折叠块中,形如<details><summary>[Question]</summary><br><b>[Answer]</b></details>,这与 scripts/question_utils.py 中用于解析题目的正则(DETAILS_PATTERN、SUMMARY_PATTERN、B_PATTERN)完全对应,即格式是否符合规范直接决定题目能否被统计与抽取; - 不能加什么(重点):安装类问题(Installation Questions)。FAQ 给出了明确的论证——"如何安装 Jenkins?"这类问题无法证明提问者理解 Jenkins 是什么或如何工作,教育价值接近于零。CONTRIBUTING 甚至直言"那些是最糟糕的问题类型";
- 版权红线:不得从其他站点复制题目与答案,即便复制自"不同来源"的 PR 也会被拒绝;
- 内容外复制:FAQ 允许他人转载仓库题目,但必须注明出处(attribution),且不得直接或间接(如广告)以此牟利——这是免费开放内容保持"免费"的基本契约。
关于"为什么不能加安装问题",FAQ 还给出了一个面向未来的自我反思:仓库中至今仍存在个别"特定命令类"问题,这并非理想状态,而是"值得努力改进的方向"。
质量保障与自动化:CI、语法检查与题目统计
FAQ 提到的贡献流程,在脚本层有完整的自动化支撑,这也是"为什么大多数问题没有答案"的工程侧答案——项目用自动化保证的是格式与语法正确,而内容深度依靠贡献者:
- scripts/count_questions.sh:用
grep -c "\[Exercise\]|</summary>"统计 README 与各主题 README 中的题目/练习总数,并回写 README 中的currently **N** exercises and questions计数; - scripts/run_ci.sh:提交 PR 前可本地运行——遍历所有
.md文件(排除 tests 目录)交给 tests/syntax_lint.py 做语法检查,再用flake8校验 Python 代码符合 PEP8(--max-line-length=100); - tests/scripts_question_utils_unittest.py 与 tests/testcases:通过
testcase1.md、testcase2.md等样例验证get_question_list()与get_answered_questions()的解析正确性(例如断言某用例解析出 11 道题、其中 3 道有答案)。
也就是说:一道题目能否进入仓库并稳定地被统计、被随机抽取,取决于它是否符合<details>格式;而它是否值得进入仓库,取决于它是否具备教育价值。后者正是 FAQ 反复强调的"有教育价值的问题"标准——要么聚焦某个概念,要么引导使用者深入研究某个主题并熟悉其核心概念。
学习资源与练习平台建议
FAQ 对"在哪练代码"给出了三个平台建议:HackerRank、LeetCode、Exercism(均为主流在线编程练习平台,用于算法/数据结构与语言基础训练)。同时建议配合仓库的 coding/python 目录中的算法实现(二分查找、归并排序)与 topics/python 的题目进行系统训练。
对于"如何学习更多 DevOps",FAQ 指出作者在配套的 devops-resources 资源仓库中维护了若干学习路线图(roadmap),可作为系统性进阶的导航;在本文所讨论的仓库内,prepare_for_interview.md 与 certificates 目录(AWS、Azure、CKA/CKAD 认证路径)同样提供了结构化的进阶路线。
项目演进态度:欢迎一切建设性的大改动
FAQ 的收尾问题颇具风格:"你愿意接受仓库的重大改动吗?"——答案是绝对欢迎:作者鼓励任何人提出想法、发起讨论,任何能改善学习体验的改动都会被认真对待。这也再次呼应了 FAQ 的核心立场:这是一个以学习为第一目的的开放项目,题目可以删、可以改、可以加,但前提是围绕教育价值展开,并且尊重每一位贡献者的劳动成果(署名、非商用、不搬运)。
对使用者而言,最可持续的使用姿势是:把 README 中 2600+ 道题当作"知识地图",把 scripts/random_question.py 当作"每日自测入口",把 exercises 系列当作"动手实践沙盘",把 FAQ 与 CONTRIBUTING.md 当作"社区参与准则"——先学、再练、然后试着提出更好的问题,这本身就是在践行 FAQ 所说的"成为更好 DevOps 工程师"的四步法。
- 文档
- 教程
- DevOps
- 运维
【免费下载链接】devops-exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
相关推荐
devops-exercises 项目 FAQ 全解读:面试准备、核心技能与社区内容治理指南
devops exercises 项目 FAQ 全解读:面试准备、核心技能与社区内容治理指南 本篇指南以 devops exercises 仓库的官方 FAQ(
文档教程DevOps运维GB28181 视频监控平台 Docker 快速部署上手
GB28181 视频监控平台 Docker 快速部署上手 这是一份 wvp GB28181 pro 的 GB28181 视频监控平台完整部署上手教程:用 Doc
后端音视频前端前端面试准备终极指南:从JavaScript到React的完整学习路径 🚀
前端面试准备终极指南:从JavaScript到React的完整学习路径 🚀 frontend interview preps 是一个全面的前端面试准备项目,汇
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考