90DaysOfDevOps 第 2 天:DevOps 工程师的职责全景——连接开发与运维的桥梁

发布时间:2026/9/30 2:21:09
90DaysOfDevOps 第 2 天:DevOps 工程师的职责全景——连接开发与运维的桥梁
文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载本篇是 90DaysOfDevOps 90 天学习之旅的第 2 站承接 Day 1 的引言聚焦回答一个核心问题DevOps 工程师到底做什么文章从应用的两大半边开发与运维出发梳理 DevOps 工程师在配置、服务器、操作系统、网络、容器化等维度上的职责边界并给出通才而非专才的能力定位最后将责任落到如何持续、自动化、可测试地把新版本交付给终端用户这一终极命题上。读完你将建立起对 DevOps 工程师职责的完整心智模型为后续 88 天深入各技术主题打下基础。预备知识Day 1 的结论在 Day 1 中我们已经确立了几个关键前提DevOps不是一件可以购买的工具不是软件 SKU也不是一个可下载的开源仓库它是一种把软件交付做得更聪明的实践与文化。DevOps 通过打破开发Developers、运维Operations与测试QA之间的部门孤岛将从产品构思到交付给终端用户的时间大幅压缩并且开发、测试、部署这些环节都落到 DevOps 团队身上。而要让这一切高效运转自动化是不可或缺的杠杆。Day 2 正是在此基础上更进一步既然 DevOps 团队要扛起开发、测试、部署的职责那么这些职责具体长什么样答案要先从一个应用被创建出来之后发生了什么说起。一个应用的两大半边Development 与 Operations在 Day 2 原文 中作者明确指出创建一个应用包含两个主要部分——Development开发软件开发者编写应用代码并对其进行测试Operations运维应用被部署到服务器上并持续维护运行。传统模式下这两者往往是割裂的开发团队只管交付代码运维团队只管把代码跑起来两者之间充满交接摩擦与信息损耗。DevOps 工程师的使命就是成为这两者之间的桥梁让开发与运维不再是两个互相扔墙的部门而是一条连贯、可重复、不断迭代的流水线。一切从应用开始以应用为中心的 DevOps原文强调了一个贯穿整个 90 天课程的核心观点DevOps 世界里一切皆围绕应用展开。你会在后续所有主题中反复看到这一点——无论讲 Linux、网络、容器、Kubernetes 还是 CI/CD最终服务的都是让应用稳定、高效、持续地跑起来。开发者创建应用的方式千差万别可能使用完全不同的技术栈、不同的编程语言、不同的构建工具与代码仓库。作为 DevOps 工程师你通常不会亲自编写应用代码但理解开发者如何工作、用了哪些系统/工具/流程是成功的关键——这份理解让你能做出更合理的基础设施决策正如 Day 3 所言能够读懂部分代码将帮助你为应用做出最好的基础设施决策。在高层次上你需要至少掌握三件事应用如何配置应用是如何被配置去连接它所需的各种服务或数据服务的例如数据库、消息队列、缓存等应用如何测试这套配置与依赖关系应该或可以被怎样测试应用部署到哪里应用将被部署到什么样的环境并如何被终端用户访问。应用跑在哪里服务器、操作系统与网络应用需要一个运行场所。原文把这里刻意保持简单先假设它是一台服务器——不管它在哪里它就是一台服务器。这台服务器随后被客户或终端用户访问。但作为 DevOps 工程师你需要考虑更细的一层服务器运行在哪里本地自建on-premises、公有云还是 Serverless原文明确提到 Serverless 是越来越多企业选择的方向但本 90 天课程不覆盖 Serverless谁创建并配置这些服务器创建、配置服务器并让它准备好承载应用很可能就是 DevOps 工程师的职责操作系统服务器运行的是操作系统一般以Linux为主。仓库为此安排了整整一周的 Linux 基础参见 2022.md 进度表中的 Linux 章节网络应用通常还需要与网络环境中的其他服务通信因此 DNS、DHCP、负载均衡等网络知识必不可少——仓库也为此安排了 Networking 专题周从 OSI 七层模型、网络协议到 Python 网络自动化。需要再次强调边界你不必成为网络或基础设施专家你需要的只是能把系统拉起来并让它们彼此通信的基础知识——这和你不需要成为开发者但要有编程语言基础认知是一个道理。Jack of all trades, Master of none通才定位这是 Day 2 原文 中非常核心的一段论述DevOps 工程师的角色定位是**万事通无一精**。你不必是网络专家、基础设施专家或资深开发者但要具备各领域的基础认知。同时如果你以某一领域的专才身份进入 DevOps那会是一个很好的起点便于向其他领域扩展你大概率不会接管这些服务器或应用的日常运维管理——那是运维日常的活DevOps 的职责更偏向建立让一切自动运行的方式。另外虽然通篇在讲服务器但现实是你的应用很可能被开发成以容器Containers方式运行。容器大多仍然运行在服务器之上但你需要同时理解虚拟化Virtualisation、云基础设施即服务IaaS以及容器化Containerisation。本 90 天课程的内容重心更偏向容器后续会专门安排 Containers 专题周Docker、镜像、Compose、网络与安全以及 Kubernetes 专题周集群搭建、应用部署、Ingress 等。高层概览把功能持续交付给终端用户把两侧放在一起就得到 Day 2 的高层概览一侧开发者持续为应用创造新功能、新特性以及修复 Bug另一侧某种环境、基础设施或服务器被配置和管理起来用于运行应用并与其所需的所有服务通信。那么最大的问题来了如何把这些特性和 Bug 修复送进产品并让终端用户可用如何发布新应用版本这正是 DevOps 工程师的核心任务之一。而关键不在于把这件事做成一次而是要持续地、自动化地、高效地做——并且必须包含测试。围绕这个主题Day 2 之后的几天会逐步展开Day 3DevOps 生命周期以应用为中心——Development → Testing → Integration → Deployment → Monitoring 的完整闭环Day 5Plan Code Build Testing Release Deploy Operate Monitor——逐步拆解每个环节并引出 Continuous Integration / Continuous Delivery / Continuous DeploymentCI/CD三者的关系仓库还专门为 CI/CD 准备了 Jenkins 流水线示例其中用podTemplate定义了一个同时包含Maven构建与Kaniko构建并推送容器镜像的 Pod依次执行Clone Repository、Build Image、Test Image、Build Hello World App等阶段——这正是持续构建、持续测试、持续交付在真实配置中的缩影也印证了 Day 2 所说的自动化 测试 部署正是 DevOps 工程师日常要打交道的对象。小结与下一步Day 2 的收获可以浓缩为一张职责清单维度DevOps 工程师的职责定位应用本身不写应用代码但理解技术栈、构建工具、代码仓库与测试方式配置理解应用如何连接其所需的服务与数据服务服务器负责创建、配置服务器本地 / 公有云使其承载应用操作系统掌握以 Linux 为主的服务器操作系统基础网络具备 DNS、DHCP、负载均衡等基础网络知识容器化理解虚拟化、IaaS 与容器化重心偏向容器能力模型通才而非专才能拉通各领域并持续学习核心使命持续、自动化、含测试地发布新版本给终端用户正如 Day 2 原文 所建议如果你是带着 Day 1 的资源铺垫进入这一天的那么到这里你应该已经能够判断——DevOps 工程师这条路是否适合自己。接下来的 Day 3 将带你以应用为中心把上面这条流水线展开成完整的 DevOps 生命周期。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 第七天DevOps 工程师为何必须掌握一门编程语言——Go 的选择与大图景90DaysOfDevOps 第七天DevOps 工程师为何必须掌握一门编程语言——Go 的选择与大图景 导读 本篇文章对应 2022/Days/day07.文档/教程Frappe Learning工作机会集成连接学习与职业发展的终极桥梁Frappe Learning工作机会集成连接学习与职业发展的终极桥梁 在当今数字化学习时代Frappe Learning管理系统LMS通过其创新的工作教育后端前端WinUtilWindows系统优化与程序安装的终极指南三步搞定新电脑配置WinUtilWindows系统优化与程序安装的终极指南三步搞定新电脑配置 你是否厌倦了每次重装Windows系统后繁琐的软件安装和系统优化过程WinUt桌面应用运维上一篇简单三步掌握PinWinWindows窗口置顶的终极免费方案下一篇抖音批量下载终极指南一键保存无水印视频的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考