DevOps 工程师的 20 个生活小窍门

2025-06-05

DevOps 工程师的 20 个生活小窍门

行业秘诀、小窍门、商业秘密、小抄、最佳实践,随便你怎么称呼它们。每个行业都有这样的技巧,任何在这个行业待得足够久的人,都会积累大量的技术和精湛的工具,从而在工作中脱颖而出。

有些事情就是需要时间才能掌握。我爸爸是一位退休的建筑工人,他能在不到三个小时的时间内,就把一间中等大小的浴室的瓷砖铺好,而我光是之后的填缝工作就得花一整天的时间。经验对于某些技能至关重要,但也有一些技巧不需要多年的练习就能掌握。

动图

DevOps 也不例外。成为 DevOps 大师没有捷径,投入多年时间或许就能实现。话虽如此,还是有一些行业秘诀、生活小窍门和实用工具,一定能让你立即提升工作效率。

以下是我的非全面生活窍门列表,保证可以让任何 DevOps 工程师的生活变得更轻松。

该列表细分为:

  • 工具🧰
  • 技能🤸
  • 习惯🔁
  • 脚本、配置和扩展💻

工具:🧰

你知道吗?在德国,如果你想引起别人的注意,发传真是最好的选择。
另外,在日本,直到今年,政府机构仍在使用软盘。

了解自身所处的环境对于选择最适合工作的工具至关重要。但重要的是,不要执着于拥有市场上最好、最新或最炫的工具。以下工具可以真正改变 DevOps 工程师的职业格局。

“你不需要成为工具棚里最锋利的工具,就能使用工具棚里最锋利的工具” - 匿名(我可能是编造的)

gif-2

1. K9S

K9s是一个基于终端的 UI,用于与 Kubernetes 集群交互。只需极短的时间即可熟悉使用该工具导航、观察和管理您的实时应用程序。一旦掌握,您可能就再也不想回头了。K9s 会持续监控 Kubernetes 的变化,并提供许多实用的命令来与您观察到的资源进行交互。

链接安装

K9S

2. tmux

tmux是一款功能强大的终端多路复用器,它支持会话持久化、窗口和窗格管理,以及通过按键绑定和配置文件进行自定义,从而提升工作效率。它支持脚本自动化,方便与共享会话协作,并与各种 shell 和工具完美集成。

tmux

3. Glasskube

Glasskube是 Kubernetes 的开源包管理器。它使在 Kubernetes 上部署、更新和配置包的速度比Helm 或 Kustomize等工具快 20 倍。其灵感源自 Homebrew 和 npm 的简洁性。您可以选择使用 Glasskube 的 UI、CLI 或直接通过 GitOps 部署包。

glasskube-dash

愿意支持我们吗?

如果这是您第一次听说 Glasskube,我们正在努力打造下一代产品Package Manager for Kubernetes

如果您喜欢我们的内容并希望支持我们完成这一使命,我们将非常感激您在GitHub上给我们一颗星⭐️

明星 gif

⭐️ 在GitHub上为我们点赞🙏

4. ripgrep

Riggrep是一款功能强大的搜索工具,以其速度、灵活性和用户友好的输出而闻名。它使用高级算法快速处理大型代码库,支持多种搜索模式,并呈现清晰、高亮的搜索结果。Riggrep 与其他工具集成良好,跨平台且可自定义。

ripgrep

5. Firefox 容器用于多云帐户访问

Firefox 多账户容器是一款实用性被低估的浏览器扩展程序。它通过将网站划分到不同的容器或标签页中,防止跨网站会话跟踪,从而帮助管理在线活动。它最实用的功能是允许用户在同一浏览器中同时登录多个账户。通过 Cookie 隔离会话,它可以保护个人数据并提升整体浏览体验。如果您有多个 AWS 账户?没问题,您可以在同一个浏览器窗口登录所有账户。

Firefox 标签页

6. VPA

垂直 Pod 自动扩缩器 (VPA) 让用户无需为其 Pod 中的容器设置最新的资源限制和请求。配置完成后,它将根据使用情况自动设置请求,然后进行合理的节点调度,确保每个 Pod 都能获得适当的资源量。

在这里安装

示例配置:

apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: my-app-vpa
spec:
  targetRef:
    apiVersion: "apps/v1"
    kind:       Deployment
    name:       my-app
  updatePolicy:
    updateMode: "Auto"
Enter fullscreen mode Exit fullscreen mode

7. Kctx 和 Kubens

毫无疑问,这是用于 Kubernetes 上下文和命名空间切换的最有用的 CLI 工具。

在这里安装

kubectx

8. ChatGPT 提供指导

使用ChatGPT 时,要像对待团队中的资深成员一样,它从不忙碌,并且总是乐于解答你的所有问题。确保你的目的是加深理解,而不是盲目地解决任务。

Prime ChatGPT 成为高级团队成员时会提出这样的提示:

您将担任高级 DevOps 工程师,提供在 DevOps 领域脱颖而出的实用技巧和技巧。您还将随时准备帮助初级团队成员解答任何疑问。请提供实用建议、推荐工具以及管理基础设施和持续集成/持续部署 (CI/CD) 流水线的最佳实践。请使用我的沟通风格撰写,风格清晰、简洁、实用。以下是我的沟通风格示例:

  • “专注于自动化重复性任务以节省时间并减少错误。”

  • “利用 Docker 和 Kubernetes 等工具进行容器化和编排。”

  • “始终监控系统性能并主动发现潜在问题。”

  • “指导初级人员时,要有耐心,并用简单的术语解释概念。”

您可以向 ChatGPT 提出以下一些问题,以进一步微调提示:

  1. 您是否希望这些建议和解释更适合初级人员或具有一定 DevOps 经验的人员?

  2. 您能否提供更详细的例子来说明您的沟通风格,特别是在向初级人员解释复杂概念的情况下?

  3. DevOps 中是否存在特定的挑战或重点领域(例如自动化、监控、安全),您希望优先考虑这些挑战或领域以获得建议和初级支持?

技能:🤸

技能并非一朝一夕就能掌握,需要时间和精力的积累,这不足为奇。在瞬息万变的科技世界里,确定需要培养哪些技能可能会令人困惑。然而,作为 DevOps 工程师,掌握脚本编写并优先考虑文档编写绝对不会错。

“培养你的技能,而不是简历。”——谢丽尔·桑德伯格

技能

9.脚本

对于 DevOps 工程师来说,脚本就像一把瑞士军刀,因为它可以自动执行重复性任务,在各个流程之间提供必要的粘合剂,并确保跨环境的一致性。学习和练习脚本需要熟悉Makefile等工具、用于高效文本处理的正则表达式 ( regex ),以及用于强大命令行操作的Bash脚本。

不要觉得必须先掌握脚本才能在工作中运用。在当前的软件或基础设施交付流程中寻找手动步骤,并尝试编写合理的自动化脚本。如有需要,可以申请法学硕士学位 (LLM) 的帮助。

10.文档

把所有事情都写下来。这是照顾未来自己的最好方法。

尝试一些笔记解决方案,以下是一些:

选择哪一个并不重要,只要你只选择一个并且坚持下去即可。

🤔 不要陷入花太多时间整理和优化笔记的陷阱。笔记不必完美,只要实用即可。在笔记维护上花费太多时间是meta-work……

习惯:🔁

如果仅仅依靠纯粹的动力来完成工作和提升,你将永远无法取得长足进步。清晰明确、持之以恒的习惯是粘合剂,即使在动力消退时也能让你不断成长,保持高效。习惯将工具和技能无缝衔接,确保你高效地完成工作。

“动力让你开始,习惯让你坚持下去。”——吉姆·瑞恩

实践

11.不要写待办事项清单,要留出时间。

我深受卡尔·纽波特 (Cal Newport) 关于深度工作的文章的影响,我坚信,对于想要为团队做出有意义贡献的个人来说,努力每周保留一定时间用于不间断的深度工作至关重要。

待办事项清单本身只是愿望清单。一旦你把它们列在日历上,你就有了一个计划。

需要指出的是,我认识的人中,很少有人能每周每天都百分百地执行他们的时间块计划。把它们当作北极星,在需要的时候安排休息时间。甚至可以全天更新清单。但至少要坚持执行计划。

时间块

12. 互惠会议区

除非你是自己的老板,否则你很可能无法完全掌控自己必须参加的会议和承诺。互惠会议时段是一种应对日历上突然出现的意外时间承诺的方法。
其理念是,每次日历上添加新会议时,都预留一个等量的深度工作时段。这样,你就可以保持灵活性和相对的可用性,而无需牺牲每周的深度工作配额。

13. 养成关机习惯

如果你是远程工作者,这尤其有用。“关机例程”是一系列问题和步骤,你需要在一天工作结束后逐步完成。理想情况下,完成清单后,你应该可以把工作抛到脑后,直到第二天再处理。

我追踪的内容如下:

  • 我锻炼了吗?

  • 我是否已经解决了所有杂项任务?

  • 我有任何开放的对话吗?

  • 我需要将任何任务推迟到第二天吗?

  • 我写日记了吗?(虽然与工作无关,但我喜欢在离开办公桌前完成它)

  • 我做了多少个深度工作?

  • 在我当天关闭笔记本电脑之前,我是否最后一次检查了我正在跟踪的指标?

14. 开会时做笔记

理想情况下,在会议期间做笔记并在会后分享应该成为您组织的一项常见做法。如果还没有,那么现在正是您开始实践的绝佳机会。这不仅能确保您不会错过任何重要细节,还能为您的团队提供卓越的服务。

15. 试运行中断

测试运行中断对于 DevOps 工程师应对真实事件至关重要。例如,你必须确切地知道如何在凌晨 1 点意外警报到来之前快速有效地连接到集群或虚拟机,以免措手不及。

熟悉移动文件、检索容器日志和其他关键任务。提前设置 SSH 密钥、kubeconfig 和其他访问工具,可以节省宝贵的时间,并减轻实际中断期间的压力。主动测试和优化这些流程,确保您能够有效应对任何中断。

脚本、配置和扩展:💻

如果某件事需要多次执行,请将其自动化。既然使用别名可以节省时间,何必写出完整的命令呢?在漫长的职业生涯中,可能很难准确计算出输入“k”而不是“kubectl”能节省多少时间。但有一点是肯定的:节省的时间很多,而且非常值得。

“你要么是创造自动化的人,要么就是被自动化的人。”——汤姆·普雷斯顿·沃纳

自动化

16. 使用有用的别名

不要浪费时间输入您每天写的完整命令。

以下是我配置的一些别名的片段:

k=kubectl
kctx='kubectl ctx'
kgp='kubectl get pods'
kns='kubectl ns'
l='ls -lah'
la='ls -lAh'
ll='ls -lh'
ls='ls -G'
lsa='ls -lah'
md='mkdir -p'
rd=rmdir
run-help=man
Enter fullscreen mode Exit fullscreen mode

17. 使用 TTL 控制器高效清理已完成的作业

您可以通过设置此字段来指定已完成作业或 Pod 在自动移除前的生命周期.spec.ttlSecondsAfterFinished。如果您在作业繁重的环境中工作,已完成作业可能会迅速累积,并占用大量资源。

示例配置:

apiVersion: batch/v1
kind: Job
metadata:
  name: test-ttl-job
spec:
  ttlSecondsAfterFinished: 100
  ...
Enter fullscreen mode Exit fullscreen mode

18. Git 脚本与上游保持同步

git remote add upstream <upstream-url>
git fetch upstream
git rebase upstream/main
git push --force-with-lease
Enter fullscreen mode Exit fullscreen mode

19. Kubectl 自动完成

Kubectl 自动补全功能可让您为 kubectl 创建别名。此功能可减少对备忘单的需求,从而节省时间,尤其适用于管理 Kubernetes 集群。由于其省时高效,它也推荐用于 CKA 考试。

针对 Linux 进行设置:

# install bash-completion
sudo apt-get install bash-completion

# Add the completion script to your .bashrc file
echo 'source <(kubectl completion bash)' >>~/.bashrc

# Apply changes
source ~/.bashrc

Enter fullscreen mode Exit fullscreen mode

在此处查看其他安装方法

20. Visual Studio Code 远程 – SSH

远程 - SSH 扩展允许您使用任何支持 SSH 的远程机器进行开发,从而更轻松地在部署到的同一操作系统上进行开发、使用强大的硬件、在环境之间切换以及远程调试应用程序。

在这里安装

最后的想法

成为顶尖 1% 的 DevOps 工程师并没有什么神奇的秘诀。就像大多数职业一样,这需要时间、奉献和经验的积累,这些因素会逐渐将你塑造成一位高效的专业人士。随着时间的推移,你会越来越擅长识别模式、回顾过去的情况,并快速找到反复出现的问题的解决方案。所以,不要指望这份清单中的任何一个生活小窍门就能让你立即获得 50% 的加薪和晋升。

然而,如果你持续专注于改进工具、磨练技能、不放弃良好习惯并实施智能自动化,你就能快速进步,超越自我。说不定,晋升就在眼前。


如果您喜欢我们的内容并希望支持我们完成这一使命,我们将非常感激您在GitHub上给我们一颗星⭐️

吉夫

⭐️ 在 GitHub 上为我们点赞🙏

文章来源:https://dev.to/glasskube/20-life-hacks-for-devops-engineers-3dn7
PREV
🚀 Kubernetes 上的 GITLAB:终极部署指南! 🌟 glasskube/glasskube
NEXT
API 设计中的幂等性