🦸‍♂️ 没人梦想成为一名 DevOps 工程师

2025-06-09

🦸‍♂️ 没人梦想成为一名 DevOps 工程师

覆盖


“你好,世界”👋

现在,我希望这篇文章将成为第一篇谈论我的旅程的文章,不仅谈论我作为 DevOps 工程师的经历,也谈论我作为开发人员的经历。

和这个领域的许多其他人一样,我从来没有梦想过成为一名 DevOps 工程师(以及一名技术主管,但我不想吹嘘这一点😇),但这条道路是不可避免的,几乎就像解决一个我不知道我一直在组装的拼图一样。🧩


没人梦想成为一名 DevOps 工程师

说实话, 小时候没人梦想过成为一名 DevOps 工程师
💭。 我刚开始科技之旅时,DevOps 甚至还没进入我的视野。我对科技的热爱始于我学习我的第一门“编程语言”:HTML(一语双关)😅。当时,感觉就像在编程,构建我的第一个网页的兴奋感无与伦比。小时候,我惊叹于简单的 HTML 和一点 CSS 就能渲染出什么😮。
但随着我从静态网页转向动态应用程序,情况开始发生变化。

HTML 作为编程语言冒名顶替者:https://www.reddit.com/r/ProgrammerHumor/comments/10f60am/html_is_a_programming_language_trust_me/

我开始学习后端开发,从 PHP 开始,然后扩展到更结构化的编程语言,例如 Pascal、C++、C#(Pascal?光是说这个词我就觉得自己像个化石了😆)。
这为我打开了全栈开发的大门,让我能够同时处理应用程序的前端和后端。但随着我的应用程序的增长,高效部署它们的需求也随之增长。就在那时,我偶然进入了流水线、CI/CD 和云基础设施管理的世界。

突然间,手动管理部署已经不够了。我需要实现流程自动化,高效管理基础设施,并无缝交付代码。这种认识促使我走向 DevOps——一旦我发现自动化的强大功能,我就对它着迷了。⚙️💻☁️

我和 DevOps Blackhole:imgflip.com

附言:C# 仍然是我的首选编程语言。💗每当
我有空的时候,我仍然会用它来玩、做实验或实现一些新东西。何乐而不为呢?🙂


为何选择 DevOps?自动化的力量

对我来说,DevOps 就是自动化。⚙️⚙️ 我从来都不喜欢ClickOps—— 那种通过 Web 门户手动管理基础设施的流程。点击 Azure 门户来配置资源感觉重复又费力,更不用说容易出错了。我手动重复的每一项任务都像是在浪费时间和精力。正是在那时,DevOps 的魅力才油然而生。

基础设施和部署的自动化让我能够专注于真正重要的事情——快速高效地交付价值。DevOps 为我提供了简化重复性任务、减少错误和轻松扩展基础设施的工具。自动化曾经是,现在仍然是我在这个领域的主要驱动力。🚀

自动化一切

避免陷入试图自动化每个细节的陷阱,因为这可能会导致你忽略真正重要的事情。试图自动化最后20%的流程可能会耗费你80%的时间和精力,甚至可能阻碍你的整体进度。

自动化还是不自动化

附言:我会在另一篇文章中告诉你我有多懒,以及这件事如何促使我构建了一个由应用程序和服务组成的整个生态系统来自动化任务,为我节省了100 万次点击,以及可能等量的 Ctrl + C / Ctrl + V 操作。🥴😵

你们中的一些人可能已经猜到这是关于什么的,但请继续关注!


DevOps 工具带:CLI、脚本和管道

作为一名 DevOps 工程师,最令人兴奋的一点就是拥有丰富的工具可供选择。无论是自动化基础设施、管理部署,还是将安全功能集成到流水线中,您都需要一套强大的工具来完成工作。

CLI 工具

作为一名 DevOps 工程师,你会和命令行界面成为好朋友。从使用 Terraform 管理基础设施,到通过 Azure CLI 或 AWS CLI 与云服务交互,当然还有 GitHub CLI,一切都围绕着命令行展开。自动化这些交互正是奇迹发生的地方。

说实话,有时候,CLI 会让人感觉像一场艰苦的战斗——它们可能是令人畏惧的敌人,尤其是在你学习它们的怪癖的时候。但是,嘿!总有改进的空间。

脚本

掌握脚本编写技巧是 DevOps 的基石。无论是 PowerShell、Bash 还是 Python(我之前说过吗?Python……😨),脚本都能让您自由地定制和自动化几乎所有操作。想想那些拖慢日常运营的重复性任务——脚本可以将它们自动化。例如,使用 PowerShell 配置环境或使用 Bash 管理服务器任务可以节省数小时的手动工作。它不仅节省时间,还能灵活地解决简单的 GUI 无法解决的独特问题。您很快就会意识到,脚本不仅仅适用于本地任务——它们也是 CI/CD 流水线的重要组成部分。

然而,这并不意味着你只能使用脚本语言。比如,我希望有一天我所有的自动化程序都能用 C# 编写。无论是在 Terraform 还是 CI/CD 流水线中实现功能,你都可以使用 C# 完成各种任务。前景一片光明。

持续集成/持续交付

不要害怕在 CI/CD 管道中使用脚本;我告诉你这个是因为我......我真的“害怕”使用脚本,原因我记不清了。

事实上,持续集成和交付的许多方面都依赖于脚本,从自定义构建步骤到部署自动化。Jenkins、GitHub Actions 和 Azure Pipelines 等工具允许您将脚本直接嵌入到流水线中,或从单独的文件运行它们,从而让您完全掌控整个流程。我建议将脚本存储在单独的文件中,以增强可测试性,即使在本地开发环境中也是如此。例如,如果您正在管理基础设施,Terraform 脚本可以作为部署流程的一部分自动配置资源。使用脚本,您可以确保一致性、自动回滚,甚至将测试集成到流水线的每个步骤中。一旦您掌握了它,在 CI/CD 中编写脚本就会变得轻而易举,其在可靠性和速度方面的优势是毋庸置疑的。

https://imgflip.com/i/7oqe8u


自动化一切:NoOps

“NoOps”——(并非)只是另一个流行词。
尽管 NoOps 尚处于起步阶段,但它设想的未来是基础设施管理完全自动化——以至于开发人员不再需要担心运维。

我设想以开发人员真正“喜欢”的方式构建我们的内部工具和核心组件:流水线模板、配置即代码、基础设施即代码——等等。我认为这个概念类似于 SDK。

虽然我们还没有完全达到 NoOps,但这个概念说明了自动化可以走多远。

记住!GitOps 与 NoOps 是相辅相成的。
(啊!我还需要解释一下 GitOps 吗?😩🙈)

好的!我很快:GitOps - 确保所有内容都保存在仓库中。😇


DevOps 工程师的不同面孔

在我的职业生涯中,我遇到过许多不同类型的 DevOps 工程师。他们各自拥有独特的背景,也各有优势和挑战。让我来介绍几位这样的工程师:

重度运维工程师:DevOps 中缺少“Dev”

这些工程师通常来自传统的 IT 运营部门。他们是管理服务器、网络和云资源的专家,但通常依赖于通过 GUI 和仪表板进行的手动流程。他们可能精通 ClickOps,但缺乏自动化这些流程所需的编码技能。他们的 DevOps 之旅始于学习 PowerShell、Bash 或 Python 等脚本语言,并掌握 Terraform 或 Ansible 等工具来实现工作自动化。

重度开发工程师:初次体验运维

另一方面,你会发现一些开发人员是第一次涉足运维领域。他们擅长编写简洁的代码和构建应用程序,但管理基础架构、部署应用程序以及排除云环境故障对他们来说却是全新的。他们面临的挑战是如何在保持代码质量的同时,学习如何集成部署流水线并监控基础架构。

平衡的 DevOps 工程师

理想的 DevOps 工程师能够平衡开发和运维
(🤚 没错!我就是这样的 😁)。这些工程师能够编写脚本、管理基础架构、自动化流程并排查生产环境中的问题。这类工程师体现了 DevOps 的精髓:将构建软件的开发技能与无缝部署和维护软件的运维专业知识相结合。

无论你从哪里开始,每条路径都是进入 DevOps 世界的有效切入点。无论你是一位正在学习编程的运维工程师,还是一位即将进入基础设施领域的开发者,这条旅程都为每个人提供了空间。

DevOps 团队的客户就是开发人员:https://www.reddit.com/r/ProgrammerHumor/comments/itqtiu/devops_harsh_reality/


DevOps 入门

  1. 学习编码:选择 Python、Bash 或 PowerShell 来自动执行任务。
  2. 了解云:熟悉 AWS、Azure 和/或 GCP 基础知识。
  3. 掌握 Git:了解版本控制——分支、合并和拉取请求。
  4. CI/CD 管道:自动测试、构建和部署代码。
  5. 基础设施即代码:使用 Terraform 等工具通过代码管理基础设施。
  6. 协作:与不同的团队密切合作,确保顺利交付。

对 DevOps 的期望

  1. 自动化重点:用脚本代替手动任务。
  2. 不断学习:新工具和技术快速出现。
  3. 解决问题:排除故障并扩展基础设施。
  4. 团队合作:与开发人员、测试人员和 IT 人员合作。
  5. 流程所有权:监督软件交付。
  6. 安全性:将安全性集成到工作流程中。

结论:开启您的 DevOps 之旅

无论您是正在学习编程的运维专家,还是初次涉足运维的开发者,DevOps 的世界都广阔无垠,充满机遇。关键在于拥抱自动化,持续学习,并始终寻求提升效率和可扩展性的方法。
无论您的目标是 Azure、AWS、谷歌云、阿里云还是其他云服务提供商,其理念都是一样的。


这只是我写文章之旅的开始,未来还有更多内容。在以后的文章中,我会分享一路走来的各种经验,深入探讨具体的工具、自动化方法,以及一些可能在 DevOps 领域有用的技巧和窍门。🙏

所以,敬请期待——还有更多内容等待探索!👀

致谢

感谢@koladev的精彩文章,它激发了我写文章的灵感。🔗
作为开发者,如何打造你的在线形象

感谢@birghi的坚持,他时不时地会问你一句“嘿!你的文章发表了吗?” 😇
(现在轮到我了😈)

感谢@dumebii的精彩文章,它促使我停止过度思考如何撰写这篇文章,并直接将其发布出来😉。🔗
🚀如何成为一名技术作家

你的第一篇文章可能是你写过的最难的文章


如果你喜欢这篇文章,并且想了解我的旅程和未来的文章,不妨关注我!我很乐意与你交流,一起探索 DevOps、自动化等更多领域。😊🚀

鏂囩珷鏉ユ簮锛�https://dev.to/kmataru/nobody-dreamed-of-becoming-a-devops-engineer-33pl
PREV
React 风格指南合集
NEXT
站点可靠性工程:Google 高可用性和快乐运营的秘诀