记:波士顿时间 2019 年 5 月 8 日,红帽峰会进行的第二天。

当天在会场跟一些红帽的新老朋友们聊天,聊到工程师们的两个特点:

  • 工程师们很可爱。开这么大一个会议,只要给他们一些五颜六色的贴纸和 T-shirt 收集他们就很开心了。(很像是在用很便宜的玩具打发小朋友们有木有?)

某工程师在 Twitter 上晒的历代 RHEL 版本收藏(这个收藏就不是那么便宜了)

  • 工程师们很纯粹。他们当中的很多 nerds 在传统的现实世界原本是很难存活的物种,能够为他们打造一个环境让他们专心的发挥自己的才能,其实是很了不起的一件事!

一群工程师为了领一件 T-Shirt 列队做题

闲话不多说,进入今天的正题。

当天上午的主题演讲由红帽技术总裁 Paul Cormier 主持,主要是请了一群工程师们带着服务器上台把本次发布的 RHEL8、OpenShift 4 都公开演示了一遍,特别是展示了用 Satellite 去升级系统到 RHEL8、用 Operators 去升级 OpenShift 上运行的 SQL Server 实例的过程:升级系统时有各种 Ansible 的脚本可以选用自动执行、有各种 Insights 的规则提供自动保护避免搞砸,升级 SQL Server 可以做到前端用户无感知,刷新一下页面看到版本号更新才发现升级已经做完了。

在没跟服务器打过交道的人看来,这些演示看起来只是点点鼠标、屏幕上几个数字变了而已,一点儿也不炫酷;但是在识货的人看来,这些工程师们真的是在炫技!服务器运维的自动化是漫长的工程,将这些经验凝聚到开源的工具上经历了大量的探索。这几场 demo 背后的工作量其实是非常可观的。

个人觉得特别有意思的一点是,整个演示不是通过命令行进行的,而是在浏览器里面点点鼠标进行的!而且还专门选用了一台 Windows PC!

三位 Linux 工程师在红帽峰会的舞台上围着一台 Windows,堪称奇观

要知道,但凡任何一个敢于自称 Linux 用户的人,多少都会使用命令行;并且几乎每一个 Linux 用户,都为自己能够掌握更多的命令行而感到自豪。甚至可以这么说:为数不少的 Linux 用户会因为鄙视 Windows 用户而自豪!

但今天的演示所做的事情其实是在告诉所有人:即使你不是 Linux 用户,即使你不会用命令行,也可以毫无阻碍的管理成百上千台 Linux 服务器。

这在开始对我来说简直难以想象:到底是什么样的人会需要这种东西?

世界上真的需要不会用 Linux 命令行的 Linux 服务器管理员吗?

一位叫做 Brendan Paget 的红帽工程师解答了我的疑惑。

他说他们在亚太区发展业务的时候,发现了一个日益严重的问题:

缺乏会用命令行的专业 Linux 运维人才。

各个行业都需要更多的 Linux 服务器,但是找不到人去管理它们,咋办?所以红帽想到了一群人:以前做 Windows 服务器管理员的那帮人。

他们懂服务器,只是不懂 Linux 命令行而已。所以把 Linux 管理的功能做成鼠标点点就能用,这些人就可以来管理 Linux 服务器啦。

这是其一。另一方面,懂 1 条 Linux 命令,和懂 100 条 Linux 命令,差别还是很大的。所以把 Linux 管理的功能做成鼠标点点就能用,就能够让那些原本只懂 1 条 Linux 命令的人,有机会探索更多的用法,增长知识。

这时,来自 RHEL 部门的一位女性、红帽的 VP 与 GM——Stephanie Chiras 补充了一句:

“我们希望通过这种方式,让更多学生们进入到 Linux 的世界。”

使用命令行的 Linux 世界,就像是神秘的魔法世界。你对着黑暗的虚空念出一句咒语——一句其他人都不知道的咒语——然后这个黑暗的虚空会蹦出一堆五颜六色的信息回应你的咒语。这个世界对你的反馈符合你的预期,一切尽在掌握;在这些别人看起来如同天书的五颜六色的信息当中,你找到一些别人看不见的蛛丝马迹,解决了别人都解决不了的系统问题,那种成就感是难以用言语形容的。

(对于此类体验,开源界有一个专有名词来形容:智商炫富。)

使用鼠标的 Linux 世界,是世俗的、透明的,失去了那种神秘感。如果按下打火机就能得到火焰,那么造火的魔法师将从神坛跌落,成为舞台上的演员吧?

但整个世界收获的,是人人都可以随时随地的拥有自己的火焰。

Brendan Paget 所描述的问题,如果你来到红帽峰会的现场,你会特别有体感:你周围的绝大部分参会者都是 30-40 岁以上的男性,年轻人少,女性更少。

红帽峰会某会场内部一瞥

Linus Torvalds 出生于 1969 年。1991 年创作了 Linux 的他 22 岁,正在读大四。

在中国,今天我们看到活跃在 Linux 世界的这批工程师们,大多数是在 90 年代到 00 年代在大学期间接触到 Linux 而进入这个圈子的。那时候的大学生大概也没有特别多的东西玩,一台电脑可以玩很长很长的时间。

而在美国,今天活跃在 Linux 世界的这批工程师们,很多是从更早的 Unix 世界过来的。

从什么时候开始,在学校里面玩 Linux 的人越来越少了?

90 年代的 Linux 只是玩具,吸引了那么多年轻人去玩;今天的 Linux 已经成为全球商业的基石,年轻人却不喜欢玩了。

这其实很正常,因为在今天,比 Linux 好玩的东西多太多了。

这也很危险,因为 Linux 太重要了。

虽然红帽做出了很多努力吸引年轻人接触 Linux,比如专门为女中学生打造的 CO.LAB 项目,但目前看来效果好像不是很明显。

未来会怎么样呢?

参与 CO.LAB 项目的女中学生们

还有另外一种可能性。

Brendan Paget 在他的分享中有提到一个趋势:由于有了 Insights 的自动化分析与 Ansible 的自动化干预,现在越来越多的 RHEL 系统故障可以在人类管理员发现之前就被机器自动解决掉。

为什么 Operators 项目会叫做 Operators 这个名字?我们来看看项目设计者是怎么说的。

Operators 项目始于 2016 年的 CoreOS 项目组,后来的 http://OperatorHub.io 是该项目的延伸,是由微软、Google Cloud、AWS 与红帽一起建设的仓库,专门用来索引工程师们编写的各个 Operator 软件。在该网站的介绍页面上有这样一句话:

“The goal of an Operator is to put operational knowledge into software.”

“Operator 的目标就是将(人类的)运维知识结晶到软件当中。”

机器人管理员。

软件就是机器人。

如果将运维知识粗略分为系统运维和应用运维,那么在系统层面(RHEL),Insights 是机器人的脑,Ansible 是机器人的手。

脑可以做什么?脑是处理逻辑的引擎,比如这样:

  1. 部分 Xeon CPU 在 uptime 超过 200 天后可能出现 kernel panic,建议升级内核版本后重启系统。
  2. 出现新的 Heartbleed 漏洞报告,建议立刻更新 OpenSSL 至最新版本。
  3. ……

上面的每一条都是 Insights 里面的一条“规则”(Rule),这样的规则现在已经积累了 600 多条,并且将不断继续积累下去。

手可以做什么?手是执行的工具,比如这样:

当 Insights 告诉我要给一台服务器升级内核版本后重启系统的时候,在设定好的时间去照做。

再来看应用层面。

Operators 可以做什么?

Operators 是手。比如你要在 OpenShift/Kubernetes 上创建一个 Kafka 集群,如果全靠人肉手动操作,需要敲很多命令,花好几个小时,就算是再喜爱命令行的 Linux 高手也不会想要做这种事情——他们会写脚本来做这个事情。曾经,高手们写好脚本自己用用就结束了,顶多放到 Github 上分享代码;现在,写好的脚本按照 operators 的规格打包,于是我们有了 AMQ Streams operator,后来的人只需要点点鼠标,几分钟就创建好了。

目前,大部分 operators 还只能做最基本的部署操作,智能还谈不上。在整个 Kubernetes 社群带着大量开发者向前奔跑的过程中,这可能会是接下来几年蓬勃发展的一个领域。

Linux 的魔法时代即将结束,命令行的英雄们将成为历史。即将迎来的,是规模化的时代,是自动化的时代,是机器人管理员的时代,是软件领域之外的各个领域的人才共同参与创新的时代。

曾经,同时管理上万台服务器是互联网巨头们的特权。现在,同时调用上万台容器成为每一位开发者手边的可能性。

讲真,管理服务器这个活儿本来就不是适合人类做的事情。年轻人不喜欢 Linux 命令行,其实也没什么关系吧!

如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号【筑梦编程】,大家一起交流讨论!小编也会每天定时更新既有趣又有用的编程知识!

奔跑吧linux内核_别了,Linux 的魔法时代!相关推荐

  1. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )

    文章目录 一.堆内存管理 二.内存描述符 mm_struct 结构体 三.mm_struct 结构体中的 start_brk.brk 成员 一.堆内存管理 Linux 操作系统中的 " 堆内 ...

  2. 【Linux 内核】进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE )

    文章目录 一.Linux 内核中的进程状态 二.TASK_RUNNING 状态 三.TASK_RUNNING 状态 四.TASK_UNINTERRUPTIBLE 状态 五.__TASK_STOPPED ...

  3. linux内核学习之三:linux中的32位与64位

    linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...

  4. 一文了解linux内核,一文了解Linux的系统结构

    什么是 Linux ? 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版.在查看Linux软件包时,你肯定被发行版.LiveCD和GNU之类的术语搞晕过.初次进入Li ...

  5. Linux内核入门-如何获取Linux内核源代码、生成配置内核

    如何获取Linux内核源代码 如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包.除 ...

  6. 在win10查看本机linux的文件,Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件...

    原标题:Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件 来源:创事记 终于!在Windows里可以访问Linux文件了. 这表明,微软插入开源界的触角,越来越深入 ...

  7. linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心

    课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...

  8. 搭建《深入Linux内核架构》的Linux环境

    搭建<深入Linux内核架构>的Linux环境 阅读目录(Content) 作者 软件 概述 正文 一.安装GCC 二.编译Linux内核 三.制作跟文件系统 四.运行qemu 五.启动l ...

  9. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程

    贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...

  10. linux内核 lts长期演进,Linux Kernel 4.19 将成为下一个LTS(长期支持)系列

    最近Linux内核开发人员和维护人员Greg Kroah-Hartman透露,Linux Kernel 4.19将下一个长期支持的Linux内核系列. 现在Linux Kernel 4.17已经达到使 ...

最新文章

  1. Python实现信息自动配对爬虫排版程序(附下载)
  2. 计蒜客 91 地铁 HDU 5263 平衡大师(二分+网络流)
  3. php破坏代码,php不破坏单词截取子字符串
  4. 作者:马朝辉(1974-),男,华南师范大学计算机学院博士生。
  5. LeetCode--84.柱状图中最大的矩形(暴力法,单调栈)
  6. PostGreSql学习笔记002---Navicat Premium中管理PostGreSql 错误:字段rolcatupdate 不存在
  7. java中常用的包 类和接口_java.util包常用的类和接口
  8. 使用phpstudy中的apache进行虚拟主机的配置(自定义网站名进行访问,如http://wei.com)
  9. ubuntu 9.10学习笔记
  10. webots自学笔记(五)使用物理插件ODE建立铰链
  11. python接口测试jason_Python接口测试框架实例
  12. Automate your Android app testing
  13. P2P原理之设备发现
  14. NDK 开发实战 - 微信公众号二维码检测
  15. 未知USB设备(设备描述符请求失败)终于解决。网上查到的所有方法我都试过了,全部失败。我的成功方法就是调整“电源选项”
  16. 毕业设计--20200301--domoticz的智能家居设备---esp8266(micropython)+MQTT 做一个可控开关
  17. Android绘制跟随路径移动的圆圈
  18. PMP 考点 第三章 项目经理的角色
  19. python爬虫获取子域名以及对“百度安全验证”问题的解决
  20. Android事件总线——EventBus的使用

热门文章

  1. JVM从入门到精通(三):热加载的实现原理,Java内存模型,缓存行,指令重排,合并写技术等
  2. C# 约瑟夫环 用数组实现
  3. 八张图彻底了解JDK8 GC调优秘籍-附PDF下载
  4. java中CyclicBarrier的使用
  5. Leet Code OJ 189. Rotate Array [Difficulty: Easy]
  6. JVM运行时数据区和各个区域的作用
  7. java中三种常见内存溢出错误的处理方法
  8. C++易被忽略的知识点:移动语义 左值右值
  9. 洛谷—P1307 数字反转
  10. 深度学习在搜索和推荐领域的应用