FDE Times 数据在招 FDE 职位 862▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 70在招公司 180支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

SSH 进客户服务器之前,先学完这门免费 Linux 课

LFS101 报名人数超过百万,其中六章正好对应在裸 Linux 上排查 Agent 失联的各个步骤。

2016 年在多伦多举行的 LinuxCon North America 上,Linux 创始人 Linus Torvalds 与 Linux 基金会执行董事 Jim Zemlin 在台上交谈。
图片:Linux Foundation / CC BY 2.0
分享微博

要点速览

  • Linux 基金会的 LFS101 免费,约 60 小时内容,可访问 90 天,面向 Linux 新手
  • FDE 最值得学的六章:命令行操作、进程、文件操作、网络操作、Bash 脚本、本地安全原则
  • 边学边在自己的虚拟机上练习;想深入系统管理,再接着学 LFS201
横向五步流程图。四个深蓝色圆圈依次是四个排查问题:在运行吗?(进程)、日志怎么说?(文件操作)、端口对吗?(网络操作)、有权限吗?(本地安全)。下方括号标注“先手动做一遍”。第五步是橙色圆圈:写成脚本(Bash 脚本),标注“在每个客户那里复用”。
客户服务器上的服务停止响应时,按顺序检查:进程、文件、网络、权限。每一步对应 LFS101 的一章,整条排查链最后打包成 Bash 脚本以便复用。来源:Linux 基金会 Introduction to Linux(LFS101)课程大纲。

2020 年,Linux 基金会宣布其在 edX 上的免费 Linux 课程报名人数突破 100 万。学的人多,本身并不说明课教得好。但这至少表明,Linux 入门(Introduction to Linux,LFS101)是大量工程师接触真实服务器之前熟悉的起点。

对前线部署工程师(FDE)来说,真实服务器通常是客户的。设想你正 SSH 进客户内网里的一台虚拟机:没有熟悉的 IDE,身边没有 DevOps 同事,而部署必须在今天下午演示之前跑通。这时,会用命令行就不再是锦上添花。

课程由谁制作,面向谁?

LFS101 由 Linux Foundation Education 制作,是一门入门级在线自学课程,在 edX 上的名称是“LinuxFoundationX: Introduction to Linux”。课程的目标是让学员掌握足够的知识,能通过图形界面和命令行使用 Linux。

课程面向熟悉电脑、但几乎没有 Linux 经验的人。很多软件工程师正是如此:在 macOS 或 Windows 上写代码很强,在云平台上一键部署,可一旦要自己查清服务为什么在一台裸 Linux 机器上挂掉,就无从下手。

据官方页面介绍,课程免费,约 60 小时内容,可访问 90 天。内容定期修订,到 2020 年 9 月已更新到第六版。2024 年 10 月,Linux 基金会又推出日文版 LFS101-JP,同样免费,时长约 60 小时。

FDE 真正值得学的是哪几章?

大纲中有六章与客户现场的工作直接对应:命令行操作(Command Line Operations)、进程(Processes)、文件操作(File Operations)、网络操作(Network Operations)、Bash 脚本(Bash scripting)和本地安全原则(Local Security Principles)。要看清每一章何时派上用场,最简单的办法是走一遍假想的故障,同时记住该熟记的命令。

你刚把一个文档处理 Agent 部署到客户服务器上,客户反馈 API 没有响应。第一个问题:进程还在运行吗?这是进程一章的内容。ps aux | grep <service-name> 告诉你进程是否存活;如果服务由 systemd 管理,systemctl status <service-name> 会显示它的状态和最近一次重启。

下一个问题:日志在哪里,配置文件有没有被覆盖?这是文件操作一章。journalctl -u <service-name> -n 50 或 tail -n 50 <log-path> 能给出最后 50 行日志,ls -l <config-file> 能显示文件最后一次修改的时间和修改它的账户。

最后一个问题:服务监听的端口对不对,是否被拦截?这是网络操作一章。ss -tlnp 列出开放端口,curl -v http://localhost:<port> 告诉你服务在本机上是否有响应。如果本机 curl 正常、外部调用却失败,问题多半出在网络或防火墙,而不是代码。

如果客户只给你一个受限账户,就要细读本地安全原则一章。先运行 id 查看账户所属的组,再运行 sudo -l 查看可以提权执行哪些命令,然后再去申请更多权限。

修复完成后,你肯定不想每次更新都手动敲一遍这些步骤。这时 Bash 脚本的价值就体现出来了。

学习时要养成的三个习惯

课程给你的是工具。把工具变成流程,要靠你自己在这 60 小时里练出来。第一个习惯:所有练习都通过终端完成,最好 SSH 进你自己的虚拟机,因为在客户现场,这几乎是你唯一的访问方式。

第二个习惯:把排查当作一串有顺序的问题,而不是靠猜。先进程,再文件,再网络,最后权限。每学完一章,就把对应的步骤和上面那样的几条命令写进自己的检查清单。课程结束时,你就有了一套随身可用的现成流程。

第三个习惯:凡是需要第二次手动做的事,就写成脚本。一个短小的 Bash 脚本,依次运行 systemctl status、打印最后几行日志、再用 ss 检查端口,就能在一个又一个客户那里复用。演示前被催的时候,它也能让你保持镇定。

按什么顺序学,花多长时间?

内容共 60 小时,访问期 90 天。平均分到 12 周,每周约 5 小时。对在职工程师来说完全可行,前提是从报名那天起就定好固定的学习时间。

学员常犯三个错误。最常见的是只看视频不敲命令,一周后忘掉大半。其次是在桌面和图形界面章节上花太多时间,而这些内容在客户服务器上很少用到。最后是在一个周末突击,之后一直搁置到 90 天到期。

如果你每天都会打开终端,就不必按顺序学:快速浏览图形界面和安装部分,直接进入上面六章。无论哪种情况,都要搭一台自己的 Linux 虚拟机,把每条命令重新敲一遍,包括你觉得已经会的。

学完 LFS101,Linux 基金会自己建议的下一步是 LFS201,即 Linux 系统管理基础(Essentials of Linux Systems Administration)。这门课自 2015 年起在 edX 上线,面向已学完 LFS101 的人。如果你已经运维过生产环境的 Linux 服务器,LFS101 会太基础,可以直接从 LFS201 开始。

把课程变成求职优势

2020 年,学完这门课不花钱;认证证书可选,需要付费。有证书固然好,但能证明你会做事更有说服力。把你的排查脚本放到 GitHub 上,配一份 README,描述一次你自己模拟的故障,以及你是如何定位原因的。

阅读 FDE 岗位描述时,留意“在客户环境中部署”、“on-prem”或“熟练使用 Linux”这类表述。看到之后,在简历里加一句具体的话,比如你编写过 Bash 脚本来排查 Linux 服务器上的服务。这句话比课程名称更有分量。

在客户现场,没人会问你上过哪些课。他们只看你查清服务为什么没在运行,用的是五分钟还是五小时。

这篇文章对你有帮助吗?

5 个信源
路线图上的下一篇 · 阶段 1: 基础认知100 分钟的课程,带工程师从聊天框走向代码这门 2023 年课程的示例代码已过时,但把提示词当作可测试函数的核心思路,正是客户现场需要的。