分类 观点 下的文章

前不久,欧拉社区发布了今年的创新版本 openEuler 22.09。作为欧拉社区贡献给开放原子开源基金会后的首个创新版本,此版本中新增了 2012 万行代码,其中仅在 Linux 内核上就新增了 4.8 万行代码,全量代码已达 6.7 亿行!

openEuler 采用长期支持(LTS)版本和创新版本间隔的发布方式,每两年发布一个 LTS 版本,期间每半年发布一个创新版本,用于推出实验性的技术特性。本次发布的 openEuler 22.09 创新版就带有不少的创新特性。但是在欧拉社区官方发布的公告中,并没有特别详细地介绍这些特性,因此,我特别邀约了华为服务器 OS 首席架构师、openEuler 社区技术委员会委员熊伟来为我们解读了本次发布中的一些最新、最酷的技术特性。

从内核说起

在本次的 openEuler 22.09 发布公告中提及了若干技术特性,比如可编程内核、分布式软总线、嵌入式硬实时,这些新的名称给人一种似曾相识,但又不明其中奥秘的感觉。作为欧拉技术委员会的专家,熊伟针对我的好奇,给出了他的解答:

什么是可编程内核?

“可编程内核”这个名词是我最迷惑的 —— 内核难道不是代码吗?肯定是编程产生的,那这个“可编程”的意思是什么?

对此,熊伟首先解释了“可编程内核”产生的背景,“现在的硬件迭代变化非常快,但是相对而言,软件的变化就有点跟不上。比如说,芯片一般的生命周期就三年,你得花一年时间上传到上游,半年后进入内核社区,而从社区到用户手里还有很长的周期。本质原因在于内核相对是固定的,一次开发完成以后,编译成内核模块后就相对固定了。”因此,openEuler 创新性地借鉴了 eBPF 的思想,将机制和框架分离,框架内置到内核,而实现的功能和策略只需要写完以后注入到内核即可。

在实现上,主要是两个方面:

  1. 把这种类似 eBPF 的机制扩展到内核的很多方面。比如说,扩展到内存、可调度性,让它们都成为可变化的;
  2. 把内核中的驱动程序和内核主体的绑定解耦。

Linux 内核中的大部分代码都是驱动程序。熊伟说,“我们有一种想法,是不是能把内核驱动也能抽离出来。现在驱动程序跟 Linux 内核绑定得太死了,是不是能把内核驱动也变成可变化?”换言之,让驱动程序和 Linux 内核版本的演进尽量减少关系,这样的话,内核版本可以不断演进,但驱动程序可以在几个大版本内不断复用,而不像现在内核稍微一变化,所有的内核驱动都得重新测试验证甚至重新开发。

而关于“可编程内核”的开发计划,熊伟称,“从现在开始尝试,到明年的下半年,我们期望能推出一个相对比较完整的框架。”

对此,我不禁想到,我们知道内核的各个部分都是模块化的,不但可以在编译内核时选择和配置不同的模块,而且可以在运行中根据需要动态加载。那么,“可编程内核”和内核的模块化有什么关系和区别呢?

熊伟解释称,内核的模块还不是“彻底可变化的”,这些内核模块(KO)插入内核后是固定的,在运行过程中是不能变化的。而“可编程内核,是可以灵活动态进行调整的。”更进一步说,动态加载的不仅仅是模块,更多的是策略,模块加载进去以后可以动态地给它提供新的策略。比如说,可以根据运行的业务使用不同的内核调度器,来适应不同的需求,比如大数据和数据库对内核所采用的调度器是有不同的需求的。

对于这样的一种在内核底层机制层面进行的创新,而不仅仅是某些内核驱动程序或某个子系统,我非常期待在后继的几个版本中看到它变得成熟和更多应用。

什么是分布式软总线?

在最近的几个版本中,openEuler 提到了一个“分布式软总线”,这个名词有的人可能在鸿蒙操作系统中见到过,这是否标志着欧拉和鸿蒙的进一步融合?

熊伟称,openEuler 的“分布式软总线”就是来自于鸿蒙操作系统。“软总线”是鸿蒙的万物互联、自动发现、自动识别、自动认证、自动连通的基础。平移过来以后,凡是基于 openEuler 的操作系统和所有基于鸿蒙的操作系统的设备之间就可以实现同样的特性。在 openEuler 的上个版本中已经开始进行“分布式软总线”的平移,而在此版本中已经基本完成。

“分布式软总线”基础设施的工作,相当于提供了一个“底座”,能在这个基础上出现什么有趣的应用和场景,我们期待合作伙伴和用户去探索。

什么是嵌入式硬实时?

我也看到了这次 openEuler 22.09 中提到了“嵌入式硬实时”,这是将 RTLinux 的部分加入到了 openEuler 中了么?

熊伟首先澄清了“硬实时”这个名词:硬实时能力是个通用词,实时到什么程度才能称作“硬”,这个没有什么明确的说法。实时一般分为三个层次:

第一层,就是标准的 Linux 内核,现在芯片处理能力是比较快的,只要达到一定的响应速度,其实一般的 Linux 可以满足大部分实时的要求。

第二层,在内核中打上 RTLinux 补丁,相对于标准的 Linux 内核具有更强的实时性。

但是第三层,对实时性要求就会特别严格。比如汽车的刹车系统,目前 Linux 是达不到相关的要求的,同时合规层面等也都面临挑战,所以一般这类场景中还是选用专用的实时操作系统。对此,欧拉社区容纳了多个不同的内核,不仅仅是 Linux 内核,还包括了 Zephyr 内核、一个华为贡献的小型实时内核 uniproton 等。此外,欧拉也在和国内的实时性操作系统 RT-Thread、翼辉等形成合作。

面对纷繁复杂的场景,社区目前正在做的一个方案是混合部署方案。比如说,一个芯片或一个 SOC 中有 8 个核心,可以分出两个核做强实时性的工作,运行 RT-Thread、翼辉等这种实时内核,而另外六个核可以跑 openEuler 的 Linux 版本,两者之间构建通信机制,两者之间可以进行交互。实时部分做实时的工作,非实时部分充分利用 Linux 庞大的生态,两者再通过标准化的语义联通起来,这样就能兼顾各种场景的需求。熊伟称,这个部分社区还正在开发当中,应该在年底到明年年初大家可以看到样例。

对架构的支持

根据欧拉社区披露的信息,openEuler 全版本支持 x86、ARM、申威、龙芯、RISC-V 五种架构,支持众多的芯片厂商的多种芯片,多个硬件厂商发布的多款整机型号、板卡型号,支持网卡、RAID、FC、GPU&AI、DPU、SSD、安全卡七种类型的板卡,具备良好的兼容性。

对国产的龙芯和申威等架构的支持是应有之义。此外,随着内核对树莓派的支持,包括 openEuler 在内的各个 Linux 发行版也都纷纷提供了对最新的树莓派板卡的支持。

此外, openEuler 对 RISC-V 的支持也引起了业界关注。RISC-V 被誉为硬件里的 Linux,因其开放性而广受开源界的追捧。提及 RISC-V 支持,熊伟说,对于单板级的产品来讲,RISC-V 的成熟度已经比较高,但对于边缘计算以上的,比如说服务器、桌面,差距还是比较大。如果想在 RISC-V 上把欧拉操作系统的数千个软件包都编译过,这个本身就是一个很大挑战。但编译通过还只是第一步,第二步你得先能跑起来,第三步是要跑得好。第二步、第三步对于整个 Linux 产业线来讲,熊伟觉得 RISC-V 还有比较长的路要走。

熊伟说,“我们在去年上半年和国内很多 RISC-V 厂商都有过沟通,还组织过相关的讨论会等活动,现在的情况是大家先合力把技术准备工作做好,欢迎 RISC-V 相关厂商基于 openEuler 来开放相关产品”。

对应用场景的支持

什么是虚拟化混合部署,其意义何在?

前面我们在嵌入式硬实时部分提到一种虚拟化混合部署场景,熊伟就此做了进一步展开:对于未来的趋势可以探讨一下。以汽车为例,汽车上分为实时部分和非实时部分,汽车设计起初是分离式的,非实时部分和实时部分都是各走各的芯片,各走各的线路,但这样成本就比较高,结合起来也比较复杂。未来可能会出现这种趋势,这些功能都集中在一个板卡上,甚至一个 SOC 上,而 SOC 会分成不同的分区,有实时控制的分区,有非实时控制的分区。实时分区进行车辆控制,非实时分区负责车载娱乐系统。在很多场景上都会产生这种需求,其好处就是它的成本会降低,交互和互联或者信息共享更加容易方便。openEuler 有几种内核,会通过构建系统进行混合部署,根据不同的场景采用不同的内核。

所以,基于混合部署可能会催生出很多有趣的想象力,熊伟称,今年年底可以推出混合部署的一个原型,明年有望变得相对比较成熟。

对云计算/服务器场景的支持

对于云计算和服务器场景的支持,除了对英特尔最新硬件的支持之外,openEuler 还在云原生、混合部署方面做了较多工作,比如离线/在线的混合部署,增强了资源利用率。熊伟称,云以及云原生方向是 openEuler 的发力重点。

此外,熊伟还提到了一个令我颇感兴趣的东西,即一个新的初始化系统。我们知道,Linux 最初的初始化系统,比如 sysVinit,已经基本上被 systemd 所取代。虽然 systemd 也带来很多新的进步,但是其也因不透明、庞杂、大一统等有违 UNIX 传统思维的做法而广受诟病。因而,欧拉社区也在开发一个新的初始化系统 SysMaster,它是一个使用 Rust 开发的轻量级初始化系统,目前计划首先应用在嵌入式和容器中。熊伟称,今年年底将会发布原型系统,并预期未来会支持更多的场景。

当然,在 openEuler 社区里,SysMaster 和 systemd 可以按照客户的要求自行选择,在特定场景下可以提供更好的性能、更轻量的资源占用。熊伟还就此表达了欧拉操作系统的设计理念,“沿这个脉络出发,openEuler 做的很多工作都是期望把操作系统的部件尽量简化,而不是越做越复杂。做事太多对操作系统也是一种负面影响。”

可能有人会对技术圈重复造轮子感到不以为然,熊伟说,“我们是非常强烈地建议大家重复造轮子的。重复造轮子,造更好的轮子才能不断推动技术的进步。比如说 OpenSSL 问题也比较多,如果谁用 Rust 或者其它语言重写了 SSL 实现,我们也非常乐意支持,会融合到我们的操作系统当中。”

欧拉为开发者提供的支持

从这次公布的数据来看,欧拉社区的开发者、贡献者增长迅速。有 1265 名开发者参与了 openEuler 22.09 的版本贡献,相较于上一个版本,参与版本贡献的开发者数量新增 63%,是 openEuler 已发布的版本中开发者数量最多的一次。

对此,我和熊伟进行了讨论,欧拉社区为开发者做了什么支持,才能有这么多的开发者、贡献者参与贡献。熊伟对这个话题表示了很大的兴趣。他认为,如果对标 Debian、Fedora 等操作系统社区来看,在 openEuler 之前,甚至是 openEuler 早期,其实中国是没有一个完整的操作系统社区的。

在开始阶段,欧拉社区是以包括华为在内的各个厂商的力量结合在一起组成的,但坦白来讲,开始阶段还是人拉肩扛这种方式比较多,相当于堆人力。熊伟说,但是从今年开始,欧拉开始真正地把社区的一些综合性的机制建立起来了,同时我们正在重构基础设施。比如建立统一账号,之前欧拉操作系统的开发需要在 Gitee 上注册账号进行,而如果是 GitHub 上的开发者就没办法参与。所以,欧拉首先要有一个统一账号,把这个基础设施变成分布式的,不会强制捆绑到某一个托管平台。通过分布式平台,使用统一的工具从不同的平台上拉取到一个构建仓进行构建。

这样,整个基础设施做了脱胎换骨式的变革,把公共能力抽取出来,可以适配不同的平台,你个人的开发行为和平台的绑定就可以进行隔离了。这样做有非常大的好处,不光是可以集合几个厂商的力量,还可以让更多的个人开发者参与进来。这使得整个社区的运作更加分布化,同时也容易走向国际化。熊伟说,基础设施改造完成后,一些自动化的工具,包括一些看板、可视化、可量化的评估体系都健全了,社区后续走向国际化、社区规模的进一步扩大也就有了坚实的基础了。

这一点我听了以后特别受鼓舞,我一直在看着欧拉社区是怎么发展起来的,我认为这是下一步发展的重要动力。

说到这里,熊伟也说,“大家在社区里抱怨很多事情,其实我们都是听得到的,技术委员会都听得到。但是很多事情是比较复杂的,消耗的工作量很大,这需要有条不紊地在一点一点去改进。整个社区的演变,我们肯定是有清晰规划的,一定会实现,但是大家可能要稍微耐心点,因为它不可能一蹴而就。”

下一个版本的蓝图

之后,熊伟还谈到了之后的版本蓝图。社区也在讨论如何更好的使得上下游企业,把社区的开发节奏和产品迭代速度相适应。

从目前的计划来看,欧拉社区期望能在下一个 LTS 版本中真正实现全场景、全覆盖,真正能够从嵌入式、边缘计算到服务器、云计算全部拉通。目前的全场景还是比较初级的,组件只是能通,从构建、从基础设施角度来讲还都是比较分离的组件。熊伟称,“至少从我的角度来讲,最重要的就是把整个东西都能变成一个大的体系,而不是分离性的系统。”

此外,欧拉还期望在下一个 LTS 版本上完成基础设施的分布式化、国际化。这是从整个社区角度来讲,欧拉最关心的两件事。熊伟称,运行基础只要好了,产出一定不会差,但是如果运行基础不好,还是原先按照堆人力,手动的太多,这个路是走不下去的,因为社区已经大到不可能走下去。

最后,熊伟还谈到了关于基础工作的观点,“我们做的事不但困难、花费又大、成效又很缓慢。水面下的工作可能并不那么显眼,但实际上它真正是我们这个产业最基础的。”

Kubernetes 的优势不仅在于它能够做什么,还在于知道它能为你做什么。

 title=

树莓派家庭实验室上运行 Kubernetes 的 5 个理由 这篇文章中,我解释了为什么推荐在家里使用 Kubernetes。其中的理由相对来说会有点随意,并且主要于关注结果。除了 Kubernetes 好用的功能之外,还有其他几个应将 Kubernetes 包含在你自己的计算机的理由。

(LCTT 译注: 家庭实验室 Homelab 指的是安置在你家里的一个服务器或者多服务器的组合配置。在之上托管了多个服务和虚拟系统,以此来进行测试、开发,或者提供家庭功能用途。)

1、Kubernetes 是基于 Linux 而建立的

 title=

Kubernetes 有很高的知名度。对于一些人来说,Kubernetes 是一种神秘技术,有一个不好念的名字;而对另一些人来说,Kubernetes 就好像是牧羊犬放牧羊群一样,可以帮助他们管理过多的容器;对于其它人来说,Kubernetes 是一种 cloud 的操作系统,是 实效云开发 effective cloud development 的一个有用的界面;对于大多数人来说,Kubernetes 可能是他们从未听说过的后端软件。正如人们所想的那样,Kubernetes 具有所有这些能力,甚至有更多的功能。

并非每个人都以相同的方式使用 Kubernetes,但如果你主要的工作是系统管理,你会发现 Kubernetes 只是又一个 Linux 命令

我有一件 T 恤,上面写着 “ 容器就是 Linux Containers are Linux ”,它的意思是显而易见的。容器技术使用 cgroup,来运行包含一个或一组应用程序的最小 Linux 操作系统镜像。当你运行容器时,实际上你就是在运行 Linux。虽然 Kubernetes 能在许多平台上使用,但 Kubernetes 管理的是 Linux 容器。当你通过终端与 Kubernetes 交互时,就像是使用 Linux:有命令、选项、参数和语法。运行 Kubernetes 的 kubeadm 或(在 OKD 或 OpenShift 上)运行 oc 命令,你会感觉到很熟悉,是因为它们的工作方式与你习惯使用的任何其他 Linux 命令一样。开始时看似陌生的东西很快就会变得自然,任何有兴趣在终端上花时间的 Linux 用户都可以在 Kubernetes 中探索到许多有趣的东西。

2、Kubernetes 很灵活

在过去,Kubernetes 有点死板,因为从本质上来说,它仅能支持一个 容器运行时 container runtime 。这个规定非常严格,以至于今天需要一个 硬编码的垫片 hardcoded shim ,才能绕过这个遗留问题。幸运的是,如今 Kubernetes 已经变得足够灵活,可以满足管理员的许多不同需求了。PodmanCRI-O 可用作于容器引擎,它们都可以与 systemd 集成(这是因为 Kubernetes 的底层都是 Linux)。你可以自己选择 Kubernetes 所使用的文件系统、集群大小和构造、监控工具、镜像、编程语言等等配置。甚至现在有些人说 Kubernetes 有 太多 的选择了。

3、学习 Kubernetes 有助于个人发展

容器是一个硕果累累的事物,它们会快速地成倍增长,这就是它的设计。容器旨在扩展,它们通过生成克隆来扩展。将容器分组(称为 “ 容器荚 pod ”),并自动管理容器荚的生命周期,这就是 Kubernetes 运用的方式。它正在改变服务器的运行方式。

你可能不需要无限扩展的容器集合,也不需要任何东西来帮助你管理正运行的一或两个容器。但是,如果你希望受益于处理容器荚的能力,那么 Kubernetes 正是你需要学习的工具。随着越来越多的公司和组织走向全球,拥抱 数字化转型,Kubernetes 正在成为 IT 领域的必备技能。如果你想要在这个领域中发展,那么现在开始学习 Kubernetes 并熟悉它的常见问题及其解决方案,将会是一项很好的投资。

4、Kubernetes 让容器更有意义

你可能还记得几年前,当开源项目刚开始将它们的代码作为容器镜像分发时,对于许多人来说,容器这一概念是令人费解的:没有多少系统管理员真正理解 容器是什么,或者明白容器的边界在哪里、如何进入容器,以及为什么数据不能存在于容器内。

现在,IT 界(包括开发人员在内)都对容器的概念都十分熟悉了。对于现代的 CI/CD 工作流程 来说,交付给容器十分有意义。不过,对于系统管理员来说,容器的优势如下:安装容器(理论上)比等待发行版更新其软件包更为容易,而且容器可以扩展。然而,在你使用 Kubernetes 之前,你很可能都不会真正地感受到这些好处。当你开始使用 Kubernetes 和相关工具管理容器之前,持续交付容器的好处和容器的扩展能力可能只是你从文章里面读过的想法。将容器集成到你管理服务器的方式中,你会突然明白 Kubernetes 中令人兴奋的是什么。

 title=

你可以试试看这个最基本的测试:只需在容器中启动你最喜欢的 Web 服务器,创建一个容器荚,然后使用来自 Apache JMeter 的流量访问你的服务器,然后观察容器响应。

5、Kubernetes 是云原生的

如果你主要做的是软件开发,而不是系统管理,那么 Kubernetes 也是 网页应用程序 web apps 的一个很好的平台。我们现在都在使用网页应用程序,尽管大多数人只是将它们视为 “ 网站 website ”。网络拥有庞大的用户群,因此通过浏览器提供开源的应用程序是非常有意义的。有一些很棒的开源应用程序在网络上运行,其中许多的应用程序都以容器的形式分发的,它们可以支持简单的安装和持续的用户体验。

Kubernetes 的其他优势:Kubernetes 很有意思

你还记得你还是 Linux 新手的时候吗?对于一些人来说,那可能是几十年前的事了,而对于其他人来说,可能是不久的过去。不过,对于所有人来说,学习一项新事物会是一个有趣的挑战。如果你达到了认为 “Linux 的安装与其说是一个挑战,不如说是一个麻烦” 的程度,那么你可以尝试一下构建一个 Kubernetes 集群。它会让你回忆起你忘记的各种概念:如何修改纯文本(特别是 YAML 格式的)配置文件,如何配置网络接口和网络,如何路由流量,知道一个后端相对于另一个后端的优缺点,在 --dry-run 测试之后运行 --dry-run 测试,试探性地按回车键来确定你是否做对了。老实说,使用 Kubernetes 很有趣。

如果你想构建自己的基础架构,没有什么比构建你自己的 Kubernetes 集群更好的了。Kubernetes 集群将会为你打开一个全新的世界。你很快就会成为一名云架构师,学会完善你的开放云,在容器中安装令人惊叹的开源 Web 应用程序,也能为你的家人和朋友提供访问权限。

你自己就能得到解决方案。这真是太棒啦。

快来试试看 Kubernetes 吧

对 Kubernetes 的初学者来说,Kubernetes 似乎很难快速上手,因为 Kubernetes 是一个新的工具,会让你感到有点害怕,而且它还需要云服务。但是,以下有几种方法可以让你开始 Kubernetes 体验。

首先,安装 MinikubeMinishift。这两个工具都允许你在自己的计算机上运行 Kubernetes 的本地实例。虽然这种方式比不上“构建一个集群并与你的朋友共享”那么令人满意,但它是一种让你熟悉 Kubernetes 环境、命令和工具包的很好且安全的方式。

当你准备进一步研究 Kubernetes 后,请进一步阅读 Chris Collins 的《使用树莓派构建 Kubernetes 集群》 的文章。之后,再下载我们的免费电子书 《在你树莓派家庭实验室上运行 Kubernetes》。在不知不觉中,你会发现自己也明白了“容器就是 Linux”的含义。


via: https://opensource.com/article/21/6/kubernetes-linux-homelab

作者:Seth Kenlon 选题:lujun9972 译者:chai001125 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

了解 Ansible 的新徽标是如何根据相关人员的意见开发的,以确保整个项目的品牌一致性。

 title=

作为红帽的用户体验(UX)设计和 Ansible 产品团队的交互设计师,我们花了大约 6 个月的时间为 Ansible 社区设计了一系列徽标。这件事其实在更早的时候就开始了,当时一位项目经理要求我们为一个幻灯片提供一个 “快速而简单” 的徽标。在收集了一些需求后,我们在几天内就向相关人员展示了一个徽标,而且没有经过太多调整。几个月后,另一个相关人员说他们也需要类似的徽标,所以我们重复了这个过程。

于是,我们注意到一个模式:像这样的徽标资源不仅仅代表个人的要求,而是整个 Ansible 项目的共同需要。在完成了几个徽标要求后,我们有了一系列临时的设计,但在没有意识到品牌和设计惯例的情况下,这可能给整个 Ansible 的品牌视觉造成了不一致。随着这个徽标系列的增加,我们认识到了这个迫在眉睫的问题,并需要解决它。

我们的解决方案是创建一个 Ansible 设计系统,这是一个针对品牌的资源,可以指导未来一致的徽标设计。

什么是设计系统?

设计系统是一个可重复使用的资源和指导方法的集合,有助于告知任何数字产品套件的视觉语言。设计系统创造了一些模式,将独立的产品整合在一起,并通过可扩展性和一致性提升品牌。

特别是在一个有多种产品的大公司里,如果没有标准化,扩展起来就不容易,因为不同的团队对每个产品都有贡献。设计系统可以作为每个团队建立新资产的基线。有了标准化的外观和感觉,产品在整个组合中被统一为一个家族。

从头构建一个设计系统

在收到相关人员提出的为 Ansible 开源社区(如 Ansible Builder、Ansible Runner 和Project Receptor)创建徽标的一系列要求后,我们决定为我们的工作流程设计一个结构,并创建一个单一的事实来源,为之努力。

首先,我们对现有的徽标进行了视觉审计,以确定我们要做的是什么。Ansible 的原始徽标系列由四个主要图像组成:代表 AWX 的 Angry Spud,代表 Ansible 核心/引擎的 Ansibull,以及代表 AWX 的带翅膀的显示器。大部分的徽标都是用一致的红色阴影和公牛的形象联系在一起的,但是笔画的宽度、笔画的颜色、线条的质量和排版复杂而多样。

 title=

Angry Spud 使用棕褐色的轮廓和手绘风格,而 Ansibull 则是一个对称的几何矢量图。AWX 显示器是一个异类,它有细线画的翅膀,蓝色的矢量矩形,以及古英语字体(这里没有包括在内,但与家族中其他使用现代无衬线的字体相比,它是一个例外)。

确立新的设计标准

考虑到调色板、排版和图像,我们产生了一个一致的构图,以 Ansibull 代表所有核心的 Ansible 产品,以及大胆的线条和充满活力的颜色。

 title=

新的 Ansible 社区徽标设计风格指南详细说明了 Ansible 产品徽标的调色、排版、尺寸、间距和徽标变化。

新的风格指南展示了一种全新的、现代的定制字体,该字体基于瑞士独立字体厂商 Grilli Type 的 GT America 字体。我们为该字体创造了一个柔和的外观,通过圆润每个字母某些角落来配合图像的圆润度。

我们决定通过在光谱中加入更多的颜色并以原色为基础,设计一个更生动、更饱和、更普遍的调色板。新的调色板以浅蓝色、黄色和粉红色为主色调,每种颜色都有较浅的高光和较深的阴影。这种更广泛的颜色范围使系统内有更多的灵活性,并引入了 3D 的外观和感觉。

 title=

我们还引入了新的图像,如 Receptor 和 AWX 徽标中的六边形,以保持视觉上的连续性。最后,我们确保每个徽标在浅色和深色背景上都能使用,以获得最大的灵活性。

拓展设计组合

一旦我们建立了核心徽标系列,我们就开始为 Ansible 服务创建徽章,如 Ansible Demo 和 Ansible Workshop。为了将服务与产品区分开来,我们决定将服务图形包围在一个圆圈中,圆圈中包含了相同的定制排版的服务名称。新的服务徽章显示了幼儿版的 Ansibull(来自 Ansible Builder 的徽标)正在完成与每个服务相关的任务,例如 Ansible Demo 指向白板,Ansible Workshop 则使用构建工具。

 title=

利用开放源码进行设计决策

最初的 AWX 徽标受到了摇滚乐图像的影响,如翅膀和重金属字体(此处省略)。

 title=

(Fiona Lin and Taufique Rahman, CC BY-SA 4.0)

Ansible 社区的一些成员,包括红帽多样性和包容性小组,提请我们注意,这些元素类似于仇恨团体使用的图像。

考虑到原徽标的社会影响,我们必须迅速与 Ansible 社区合作,设计一个替代徽标。我们没有像最初的徽标那样闭门造车,而是扩大了项目的范围,仔细考虑了更多的相关人员,包括 Ansible 社区、红帽多样性和包容性小组,以及红帽法律团队。

我们开始了头脑风暴,向 Ansible 开源社区征求意见。Ansible 的一位工程师 Rebeccah Hunter 在草图绘制阶段做出了贡献,后来成为我们设计团队中的一员。让一大群相关人员参与进来的挑战之一是,我们对新的徽标概念有了各种各样的想法,比如一条辅助电缆、一碗拉面等等。

我们勾画了五个社区贡献的徽标创意,每个徽标都有不同的品牌视觉:一个芽、一个火箭、一个显示器、一碗拉面和一个辅助电缆。

 title=

在完成这些初步的概念草图后,我们建立了一个虚拟的投票机制,并在整个迭代过程中使用。这个投票系统使我们能够利用社区的反馈,从五个初始概念缩小到三个:火箭、一碗拉面和显示器。我们在这三个方向上进一步迭代,并通过专门的 Slack 频道进行反馈,直到我们找到一个符合社区愿景的方向,即 AWX 显示器。

 title=

以社区的意见为指导,我们围绕显示器为 AWX 打造了徽标概念。我们保留了原徽标中的显示器元素,同时使其外观和感觉现代化,以配合我们更新的设计系统。我们使用了更鲜艳的色调,更简洁的无衬线字体,以及来自 Project Receptor 徽标的元素,包括六角形图案。

通过从一开始就与我们的社区接触,我们能够在公开场合进行设计和迭代,所有相关人员都有一种包容感。最后,我们认为这是取代一个有争议的徽标的最好方法。最终的版本被移交给了红帽法律团队,在获得批准后,我们用这个新的徽标替换了所有的现有资产。

主要收获

为设计系统创建一套规则和资源,使你的数字产品全面保持一致,消除品牌混乱,并实现可扩展性。

当你探索在自己的社区建立一个设计系统时,你可能会从我们在这条路上学到的这些关键经验中受益:

  • 用设计系统来扩展新的徽标,比没有设计系统要容易得多。
  • 当你使用投票系统来验证结果时,杂乱无章的设计方案就会变得不那么令人生畏。
  • 将大量受众的注意力引向三套方案,可以消除决策疲劳,集中社区反馈。

我们希望这篇文章能够提供用于开源社区的设计系统的启示,并帮助你认识到在早期开发一个系统的好处。如果你正在创建一个新的设计系统,你有什么问题?如果你已经创建了一个,你学到了什么教训?请在评论中分享你的想法。

(图像来自:Fiona Lin and Taufique Rahman, CC BY-SA 4.0


via: https://opensource.com/article/21/4/ansible-community-logos

作者:Fiona Lin 选题:lujun9972 译者:MareDevi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们喜欢强力的机器,但有时是为了更快地启动和运行。

我喜欢 Linux 桌面这件事对任何读过我作品的人来说都不会感到惊讶。我的意思是,我曾经是一个早已消失的出版物《Linux 桌面》的主要作者和编辑。那么,为什么我在底特律召开的 Kubecon 北美峰会上,在我的惠普 Chromebook x360 上写这篇文章呢?

很简单,因为 Chrome OS 是一个 Linux 发行版。以前是,以后也是。

而这让一些 Linux 粉丝很恼火。他们对 Linux 桌面未来的设想是让每个人都“运行 Ubuntu,不是 Fedora 或 Arch Linux!”,“拜托,Linux Mint 才是赢家”,“MX Linux”,“现实点吧!使用 openSUSE Tumbleweed!” 等等,不一而足。有 上千种 Linux 发行版,这就是我们永远不会看到他们的 “Linux 桌面消灭 Windows” 的梦想实现的一个重要原因。

但 Chromebook 不同。当然,Chromebook 的销售已经 崩溃 了,但部分原因是 Chromebook 太皮实耐用了。与 Windows 机器不同的是,Windows 机器的寿命大概是三年,而我有的 Chromebook 已经运行了七年了。

的确,它们的 自动更新到期(AUE)日期 已经成为过去了,所以我不能再获得自动更新。但是,那又怎样?甚至谷歌也 承认 你可以在它们的平均五年到期日期之后继续使用它们。

而如果是 Windows,那就不一样了。任何仍在运行 Windows 7 的人都是邀请黑客来黑他,除非他们购买了 扩展安全更新(ESU)合同。而且,即使是这样,ESU 也将在 2023 年 1 月结束。

然而,Chrome OS 呢?与每个月都有重大安全补丁的 Windows 不同,Chrome OS 的严重安全问题很少,也很难出现。例如,上一次 Chrome OS 的 重大安全漏洞 突然出现并被修复的时间是 2019 年。

当然,Chrome 浏览器又是另一件事。这个浏览器也是 Chrome OS 的桌面界面,经常有重要的安全更新。但是,谷歌有望将 Chrome OS 和 Chrome 浏览器分开,所以即使你不能得到 Chrome OS 的升级,你也会得到 浏览器的更新

此外,谷歌和它的合作伙伴现在也在延长 AUE。例如,2022 年 3 月的三星 Galaxy Chromebook 2 的 AUE 支持到 2028 年 6 月。

当然,在这一切之下,是 Linux。而且,如果你愿意,你还可以安装一个全面的 Linux 发行版来搭配它。默认选择是 Debian Bullseye。这很容易。只要多做一点,你也可以安装其他发行版。

我这样做是因为虽然我可以用谷歌文档完成大部分工作,但我喜欢使用 Linux 的 Shell 命令、GIMP 图形编辑器和 LibreOffice 办公套件。

那么,为什么我不在笔记本电脑上运行 Linux 呢?嗯,我也这么做了。我有一台装有 Ubuntu Linux 的戴尔 XPS 13 开发者版,还有一台装有 Mint Linux 的旧 XPS 13,以及我的联想 ThinkPad X1 上的 Fedora 工作站。但是,当我在路上的时候,我喜欢有一台轻便、便宜的笔记本电脑,如果我把它弄坏了,我就可以随时换一台。

作为一个笨手笨脚的人,我经常弄坏我的笔记本电脑。最近,当我在德克萨斯州奥斯汀举行的北美开源峰会上,一个电涌把我的联想 IdeaPad Duet 5,一个顶级的二合一 Chromebook/tablet 炸掉了。衰!

现在,如果我运行的是一台普通的 Windows、MacBook 或 Linux 笔记本电脑,我就会啥也干不了了。我必须买一个新的机器,更新它 —— 如果我是一个 Windows 用户,这绝不是小事 —— 然后安装和更新我的软件。至少,我会损失一天的工作时间,我不知道你怎么想,但我不能占用那么多的工作时间。

相反,我跑到最近的百思买,买了前面提到的惠普 Chromebook X360。从我的旧 Chromebook 爆炸到回到我之前工作的那条线,我的总停机时间只有一个多小时。其中大部分时间是在往返商店的路上度过的。

另一个 Chromebook 的优点是,更换系统的费用不到 500 美元。当然,也有昂贵的 Chromebook。我有很多台 Chromebook,而且我很喜欢它们。但是,你不必在 Chromebook 上花太多的钱,就能获得良好的用户体验。

有许多很棒的、便宜的 Chromebook,价格低于 500 美元。今天,即使是最低端的 Chromebook 也拥有 Chrome OS 和Linux 工作所需的所有能力。如处理器、内存和存储这些技术规格对大多数用户来说并不重要。你只想找一个有体面的屏幕和键盘的产品。

对于 Linux、Mac 和 Windows 则是不同的情况。我不会去碰那些标价低于 800 美元的产品。你可以在任何东西上运行 Linux —— 我是说任何东西 —— 但购买预装了 Linux 的笔记本电脑往往和 Windows 一样贵。此外,当我需要立即恢复工作时,我没有时间去找一台旧的笔记本电脑来安装 Linux。当然,即使是最便宜的 Mac 也要 1000 美元。

因此,至少对我来说,我首选的公路战士 Linux 笔记本电脑是 Chromebook。想想吧,试一试 —— 上帝都知道 Chromebook 足够便宜 —— 你可能会发现你同意我的观点。


via: https://www.theregister.com/2022/10/28/column/

作者:Steven J. Vaughan-Nichols 选题:wxy 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 或许能够改变这一切。

当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时,我开始了我的自动化之旅。二十年后,自动化还没有完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化成果,但他们也描述了在组织层面实现类似成功所面临的挑战。

大多数 IT 组织都能够端到端地提供虚拟机,从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、虚拟机管理程序、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试,等等。哇,这么多!

满足高速、可扩展和按需自动化的业务需求并不容易。例如,来看看经典的网上商店或提交纳税申报表的在线政府服务,其工作负载有明确的峰值需要面对。

处理此类负载的一种常见方法是拥有一个超大的服务器集群,以供 IT 专业人员的特定团队使用,监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载,使用“ 构建-消耗-回收 build-consume-trash ”模型来优化成本,同时从无限弹性中受益。

换句话说,每个人都想要乌托邦式的“云体验”。

云真的能交付吗?

尚有一线机会,这主要归功于 Kubernetes 的设计方式。Kubernetes 的指数级普及推动了创新,取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 “ 万物皆代码 Everything-as-Code ”(EaC)来定义从简单的计算节点到 TLS 证书的所有资源的期望状态。Kubernetes 强制使用三种主要的设计结构:

  • 一个标准接口,以减少内部和外部组件之间的整合问题
  • API 优先及仅 API 的方法来标准化其所有组件的 CRUD(创建、读取、更新、删除)操作
  • 使用 YAML 作为通用语言,以简单易读的方式定义这些组件的所有所需状态

这三个关键组成部分基本上是选择自动化平台的相同要求,至少如果你想让跨职能团队轻松采用是这样的。这也模糊了团队之间的职责分工,有助于提高跨越孤岛的协作,这是一件好事!

事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。Kubernetes 有机地推动团队采用多种 DevOps 基础和实践,如:EaC、使用 Git 进行版本控制、同行评审、 文档即代码 Documentation as Code ,并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面取得良好的开端。

让自动化成为现实

你没看错!网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义,可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署,以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常,且云计算资源不再有存在的理由时,你将它们回收并恢复常规运营,而由一组核心资产在本地接管业务,直到下一次激增。

鸡和蛋的悖论

考虑到 Kubernetes 和云原生模式,自动化是必须的。但它提出了一个重要的问题:一个组织可以在解决自动化战略之前采用 Kubernetes 吗?

似乎从 Kubernetes 开始可以激发更好的自动化,但这并不是一个一成不变的结论。工具不是对技能、实践和文化问题的解决方案。但是,设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。

开始使用 Kubernetes

即使你觉得自己错过了自动化列车,也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你 掌握了初始步骤,就可以拥抱这个出色的编排系统的简单性,并根据更复杂的需求进行迭代。


via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges

作者:Rom Adams 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你可以按照以下步骤,来养成符合开放文化的习惯,并改掉那些不符合开放文化的习惯。

Selfcare, drinking tea on the porch

很久以来,我就对习惯很感兴趣。几年前,我做了一次关于习惯利弊的演讲,并且介绍了如何改变坏习惯、养成好习惯。不久前,我阅读了 Art Markman 教授的 《Smart Thinking》一书,这本书主要讨论的也是习惯。或许你会问习惯与 开放式组织的原则 有什么关系?这其中有一定的联系!我将会分成两篇文章,来解释你可以如何管理你的习惯。

在本文中,我们将讨论习惯如何工作的,以及更重要的是你如何去开始改变你的习惯。在下一篇文章中,我们将回顾 Markman 教授在他书中所表达的思想。

开放式组织原则和习惯的交集

设想你学习过开放式组织的原则,尽管你认为它们很有趣并且很有价值,但是你还没有对这些原则形成自己的习惯。以下就是你现实中会表现出来的样子。

社区:如果你面对一项重要挑战,但是你不知道如何独自解决它,你很有可能会由于习惯而放弃这项挑战。养成与由志同道合的人组成的社区,共同解决问题的习惯,不是更好吗?

协作:假设你认为你不善于合作,你喜欢独立完成任务。你知道有一些需要合作才能完成的事情,但是你并没有参与合作的习惯。为了弥补这种情况,你必须养成与他人更多合作的习惯。

信息共享:假如说你喜欢将你所做的事以及所知道的东西当作秘密。但是,你知道如果你不共享信息,你也无法从他人那里获取有用的信息。因此,你必须拥有共享信息的习惯。

包容性:想象一下,你与你不熟悉的人,或者是在个性、文化还是语言上都与你不同的人一起工作,你会感到不自在。但是,你知道如果你想要成功的话,你必须要和各种各样的人一同工作。那你该如何培养包容的习惯呢?

适应能力:假设当你所做的事情不再能达到你所希望的结果之后,你往往会拒绝改变。但是,你知道你必须适应这种情况,并重新调整你的努力,那你如何才能养成适应的习惯呢?

习惯是什么?

在我给出关于上述开放式组织原则的示例之前,我想先解释一下习惯的一些相关特征。

  • 习惯是重复很多次的行为,最终习惯会成为你下意识的行为。
  • 习惯是自动的并且当时会感觉良好。当一个人在养成习惯后,做习惯行为会使他感觉很好,但是当他跳出习惯做事时,会感到不舒服。或许之后他会再次考虑尝试。
  • 一些习惯是有益的,并且能够节省你很多的能量。大脑只占身体质量的 2%,但是却会消耗 20% 的能量。因为大脑在思考和集中精力上需要消耗很多能量,你可以通过培养下意识的习惯来节省能量。
  • 一些习惯对你有害,因此你渴望改变这些坏习惯。
  • 所有的习惯都会给你回报,即使回报是短暂的。
  • 习惯是基于你熟悉的事情和你知道的东西而形成的,即使你可能并不一定需要这个习惯。

养成习惯的 3 个步骤

  1. 提示(触发器):首先,提示或者触发器会告诉大脑,进入之前学习的习惯性行为的自动模式之中。这里的提示可以是某件事,比如每天在确定的时间点、在确定的地点,看到一包糖果或者看到电视购物节目,亦或者看到某个特定的人。时间压力会触发你去做例行事项(routine)。在令人崩溃的环境下也会触发例行事项。简而言之,某件事提醒你开始做一些固定的事情。
  2. 例行事项 routine :例行事项会被触发。一个例行事项是一系列的身体、心理或者情绪上的表现,可以是非常复杂的,也可以十分简单。诸如与心情相关的一些习惯可以在很短时间内被触发。
  3. 奖励:最后一步是奖励,奖励会帮助你的大脑计算一个特定的行为是否值得记住。奖励的范围很广泛,可以是食物或者其他令你感到快乐的东西。

商业环境中的坏习惯

习惯不仅仅是个人行为。所有的组织或多或少都有一些好的坏的制度习惯。然而,一些组织会有先见之明地设计好他们的习惯,而其他组织却不会设计习惯,只是随着竞争或者担心落伍而演变。以下是一些组织的坏习惯示例:

  • 总是晚提交报告
  • 单独工作或者分组合作,然而采用相反的方法才合适
  • 上级对下级施压很大
  • 不关心销售额的下降
  • 由于内卷,销售团队之间不协同合作
  • 让一个健谈的人主导会议

逐步改变习惯

习惯不是一成不变的,你可以改变你的行为习惯。首先,要知道不能一下子改变所有坏习惯。相反,先找到一个关键的习惯进行改变,这会产生小而快速的奖励。请记住,改变了一个关键的习惯后,会产生连锁反应。

以下是你可以用来改变任何习惯的四步框架,其中还包括与开放式组织原则相关的习惯。

第一步:调整例行事项

确定你的习惯循环和例行事项,例如,当面临一件你无法独自解决的重大挑战之时。例行事项(你表现出的行为)最容易确定,所以先从它下手:例如,“在我的组织中,没人愿意和别人讨论问题。大家都会早早地放弃”。决定好你想要调整、改变或者学习的事情:例如:“每次重大挑战到来的时候,我应该和他人讨论一下,并且尝试建立一个志同道合、有能力解决问题的社区。”

第二步:有奖励的实验

奖励是很重要的,因为它会满足你强烈的渴望。但是,我们通常没有意识到强烈的渴望会驱动我们的行为。只有在事后,才会被我们察觉。比方说,开会时很多次你都想尽快离开会议室,避免讨论话题,即使内心清楚你应该弄明白如何解决问题。

要了解强烈的渴望是什么,你必须要实验。这可能会花费你几天、几周甚至更久的时间。你必须要感受到触发压力,才能完全识别它。例如,问问你自己当你试图推卸责任时的感受。

把你自己当作科学家,进行实验并收集数据。这是你调查研究的步骤:

  1. 第一个行为结束后,开始调整后面的行为,看看有没有奖励变化。例如,如果你每次碰到自己无法解决的挑战时都放弃,那么奖励就是不承担责任的解脱。更好的解决方法是与至少一个同样关心该问题的人讨论该问题。关键是要测试不同的假设,以确定哪种渴望驱使你的日常生活。你真的想逃避责任吗?
  2. 在经历四至五个不同的例行事项和奖励之后,写下在收到每个奖励后立即想到的前三、四件事。例如,你不会在面对挑战时放弃,而是与其他人讨论这个问题。然后,你决定可以做什么。
  3. 写下你的感受或渴望后,设置一个 15 分钟的计时器。当计时器结束时,问问自己是否依旧渴望。在屈服于渴望之前,请休息一会儿并再考虑一两次这个问题。这会迫使你意识到这一刻,并帮助你稍后回忆起你当时的想法。
  4. 试着记住你在那一刻的想法和感受,然后在例行事项后 15 分钟。如果渴望消失了,你就已经确定了回报是什么。

第三步:分析出坏习惯的提示或触发器

坏习惯的提示信息很难鉴定,因为通常有太多信息干扰你未定型的行为。要在干扰中鉴别提示,你可以在你的坏习惯出现的时候,观察以下四个因素:

地点:它在哪里发生?例如:“我最大的挑战在会议中出现。”

时间:它什么时候出现?例如:“如果我累了,下午的会议就是在浪费时间,因为我没兴趣付出努力。”

感受:你当时的情绪状态是怎样的?例如:“当我听到这个问题时,我感到压力山大并且很沮丧。”

人们:当时有谁或者哪一类人在你周围,还是你是独自一人?例如:“在会议上,大多数人似乎对这个问题也不感兴趣。剩下的人主导会议讨论。”

第四步:制定养成好习惯的计划

一旦你确定奖励可以驱动你的行为,某些提示会触发你的坏习惯,那你就可以开始改变你的行动。请跟随以下三个简单的步骤:

  1. 首先,规划好习惯的提示。例如:“在会议上,我将发现并将我的注意力集中在重要的问题上。”
  2. 其次,选择一种能带来相同回报的好行为,但不会遭受你现在坏习惯的惩罚。例如:“我将找到解决这个问题的方法,并考虑我需要哪些资源和技能才能成功。当我创建一个能够成功解决问题的社区时,我会感觉很棒。”
  3. 最后,让你选择的行为成为深思熟虑的选择,直到你不再需要考虑它,就能下意识地做它了。例如:“我将有意识地关注重要问题,直到我可以不假思索地做到这一点。我会查看近期会议的安排表,这样我就可以提前知道会发生什么。在每次会议开始前和会议期间,我会问自己‘为什么我会来开会’,来确保我集中注意于重要的事情。”

制定计划来避免忘记必做事项

为了成功地开始做你经常忘记的事情,请按照以下步骤:

  1. 计划你想要做什么
  2. 决定何时完成
  3. 将计划分为必要的小任务
  4. 用计时器或者日常计划进行提示,并开始每项任务
  5. 按计划完成每个任务
  6. 按时完成后就奖励自己

习惯的改变

习惯的改变需要很长时间。有时候互助小组会帮助你改变习惯。有时候,在低压力环境中,进行大量的练习和角色预演能够更好地帮助你改变。想要找到有效的奖励,你需要不断的尝试。

有时,习惯是更重要、更深层次问题的反映。在这些情况下,你可能需要专业帮助。但是,如果你有改变的愿望,并接受在此过程中会有一些小失败,你就可以控制任何习惯。

在本文中,我使用了使用 提示-例行事项-奖励 三个过程的社区开发示例。它同样可以应用于其他开放式组织的原则。我希望这篇文章能让你思考如何通过了解习惯如何运作、采取措施改变习惯,以及制定计划避免忘记你想做的事情,来管理习惯。无论是开放式组织原则,还是其他任何东西,你现在都可以判断出提示、常规和奖励。当提示出现时,这将引导你制定改变习惯的计划。

在我的下一篇文章中,我将通过 Art Markman 教授在《Smart Thinking》中观点来继续讨论习惯。


via: https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles

作者:Ron McFarland 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出