共同作者：Curtis Franklin, Jr开源软件通常被认为比专有软件更安全、更有保障，因为如果用户愿意，他们可以从源代码编译软件。他们知道在他们环境中运行的代码的来源。在他们的环境中运行的代码每个部分都可以被审查，也可以追溯每段代码的开发者。然而，用户和提供者们正在逐渐远离完全控制软件所带来的复杂性，而在转而追求软件的便捷和易用。VMware 副总裁兼首席开源官 Dirk Hohndel 说：“当我看到在一个有关网络安全和隐私的讲座中，演讲者运行 docker run 命令来安装和运行一些从互联网上下载的随机二进制文件时，我经常会大吃一惊。这两件事似乎有点相左。”软件供应链，即将应用程序从编码、打包、分发到最终用户的过程是相当复杂的。如果其中有一环出现错误，可能会导致软件存在潜在的风险，特别是对于开源软件。一个恶意行为者可以访问后端，并在用户不知情或不受控的情况下向其插入任何可能的恶意代码。这样的问题不单单存在于云原生领域，在现代应用开发中很常见，这包括 JavaScript、NPM、PyPI、RubyGems 等等。甚至连 Mac 上的 Homebrew 过去也是通过源代码提供，由用户自己编译。“如今，你只需要下载二进制文件并安装它，并期望其源代码并没有被恶意修改过。”Hohndel 说，“作为一个行业，我们需要更加关注我们的开源代码供应。这对我来说是非常重要的事，我正努力让更多的人意识到其重要性。”然而，这不仅仅是一个二进制与源代码的关系。只运行一个二进制文件，而不必从源代码构建所有东西有着巨大的优势。当软件开发需求发生转变时候，这种运行方式允许开发人员在过程中更加灵活和响应更快。通过重用一些二进制文件，他们可以在新的开发和部署中快速地循环。Hohndel 说：“如果有办法向这些软件添加签名，并建立一个‘即时’验证机制，让用户知道他们可以信任此软件，那就更好了。”Linux 发行版解决了这个问题，因为发行版充当了看门人的角色，负责检查进入受支持的软件存储库的软件包的完整性。“像通过 Debian 等发行版提供的软件包都使用了密钥签名。要确保它确实是发行版中应包含的软件，需要进行大量工作。开发者们通过这种方式解决了开源供应链问题。”Hohndel 说。但是，即使在 Linux 发行版上，人们也希望简化事情，并以正确性和安全性换取速度。现在，诸如 AppImage、Snap 和 Flatpack 之类的项目已经采用了二进制方式，从而将开源供应链信任问题带入了 Linux 发行版。这和 Docker 容器的问题如出一辙。“理想的解决方案是为开源社区找到一种设计信任系统的方法，该系统可以确保如果二进制文件是用受信任网络中的密钥签名的，那么它就可以被信任，并允许我们可靠地返回源头并进行审核，” Hohndel 建议。但是，所有这些额外的步骤都会产生成本，大多数项目开发者要么不愿意，或无力承担。一些项目正在尝试寻找解决该问题的方法。例如，NPM 已开始鼓励提交软件包的用户正确认证和保护其账户安全，以提高平台的可信度。开源社区善于解决问题Hohndel 致力于解决开源供应链问题，并正试图让更多开发者意识到其重要性。去年，VMware 收购了 Bitnami，这为管理由 VMware 所签名的开源软件提供了一个良机。“我们正在与各种上游开源社区进行交流，以提高对此的认识。我们还在讨论技术解决方案，这些方案将使这些社区更容易解决潜在的开源供应链问题。” Hohndel 说。开源社区历来致力于确保软件质量，这其中也包括安全性和隐私性。不过，Hohndel 说：“我最担心的是，在对下一个新事物感到兴奋时，我们经常忽略了需要的基础工程原则。”最终，Hohndel 认为答案将来自开源社区本身。 “开源是一种工程方法论，是一种社会实验。开源就是人们之间相互信任、相互合作、跨国界和公司之间以及竞争对手之间的合作，以我们以前从未有过的方式。”他解释说。via: https://www.linux.com/articles/open-source-supply-chain-a-matter-of-trust/作者：Swapnil Bhartiya 选题：lujun9972 译者：Kevin3599 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
对于原生云生态系统来说，2019 年是改变游戏规则的一年。有大的并购，如 Red Hat Docker 和 Pivotal，并出现其他的玩家，如 Rancher Labs 和 Mirantis。Rancher Labs （一家为采用容器的团队提供完整软件栈的公司）的联合创始人兼首席执行官盛亮表示：“所有这些整合和并购，都表明这一领域的市场成熟的速度很快。”传统上，像 Kubernetes 和 Docker 这样的新兴技术吸引着开发者和像脸书和谷歌这样的超级用户。除了这群人之外则没什么兴趣。然而，这两种技术都在企业层面得到了广泛采用。突然间，出现了一个巨大的市场，有着巨大的机会。几乎每个人都跳了进去。有人带来了创新的解决方案，也有人试图赶上其他人。它很快变得非常拥挤和热闹起来。它也改变了创新的方式。早期采用者通常是精通技术的公司。现在，几乎每个人都在使用它，即使是在不被认为是 Kubernetes 地盘的地方。它改变了市场动态，像 Rancher Labs 这样的公司见证了独特的用例。盛亮补充道，“我从来没有经历过像 Kubernete 这样快速、动态的市场或技术演变。当我们五年前开始的时候，这是一个非常拥挤的空间。随着时间的推移，我们大多数的友商因为这样或那样的原因消失了。他们要么无法适应变化，要么选择不适应某些变化。”在 Kubernetes 的早期，最明显的机会是建立 Kubernetes 发行版本和 Kubernetes 业务。这是新技术。众所周知，它的安装、升级和操作相当的复杂。当谷歌、AWS 和微软进入市场时，一切都变了。当时，一群供应商蜂拥而至，为平台提供解决方案。盛亮表示:“一旦像谷歌这样的云提供商决定将 Kubernetes 作为一项服务，并免费提供亏本出售的商品，以推动基础设施消费；我们就知道，运营和支持 Kubernetes 业务的优势将非常有限了。”对谷歌之外的其它玩家来说，并非一切都不好。由于云供应商通过将它作为服务来提供，消除了 Kubernetes 带来的所有复杂性，这意味着更广泛地采用该技术，即使是那些由于运营成本而不愿使用该技术的人也是如此。这意味着 Kubernetes 将变得无处不在，并将成为一个行业标准。“Rancher Labs 是极少数将此视为机遇并比其他公司看得更远的公司之一。我们意识到 Kubernetes 将成为新的计算标准，就像 TCP/IP 成为网络标准一样，”盛亮说。CNCF 在围绕 Kubernetes 构建一个充满活力的生态系统方面发挥着至关重要的作用，创建了一个庞大的社区来构建、培育和商业化原生云开源技术。via: https://www.linux.com/articles/how-kubernetes-became-the-standard-for-compute-resources/作者：Swapnil Bhartiya 选题：lujun9972 译者：heguangzhi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
曾经，我们必须进行大量研究、阅读大量评论，才能找到一种在所选的 Linux 桌面发行版上可以以最少的麻烦工作的机器。而如今，这种日子已经一去不复返了，几乎每台机器都可以运行 Linux。Linux 内核社区在设备驱动程序支持方面做得非常出色，可以使一切都开箱即用。不过，有的是可以运行 Linux 的机器，有的是运行 Linux 的机器。戴尔计算机属于后一类。五年前，Barton George 在戴尔内部启动了一项计划，将桌面版 Linux 引入到消费级的高端戴尔系统。从一台机器开始，到现在整套从产品线的高端笔记本电脑和台式机都可以运行 Linux。在这些机器中，XPS 13 是我的最爱。尽管我需要一个功能强大的台式机来处理 4K UHD、多机位视频制作，但我还需要一台超便携的笔记本电脑，可以随身携带，而不必担心笨重的背包和充电器。XPS 13 也是我的第一台笔记本电脑，陪了我 7 年多。因此，是的，这还有一个怀旧因素。戴尔几乎每年都会更新其 XPS 产品线，并且最新的产品展示宣布于 10 月。XPS 13（7390） 是该系列的增量更新，而且戴尔非常乐意向我寄来一台测评设备。它由 6 核 Core i7-10710U CPU 所支持。它配备 16GB 内存和 1TB SSD。在 1.10 GHz 的基本频率（可以超频到 4.1 GHz）的情况下，这是一台用于常规工作负载的出色机器。它没有使用任何专用的 GPU，因此它并不适合进行游戏或从源代码进行编译的 Gentoo Linux 或 Arch Linux。但是，我确实设法在上面运行了一些 Steam 游戏。如果你想运行 Kubernetes 集群、AI 框架或虚拟现实，那么 Precision 系列中还有更强大的机器，这些机器可以运行 Red Hat Enterprise Linux 和 Ubuntu。该机器的底盘与上一代相同。边框保持与上一代一样的薄，依旧比 MacBook 和微软的 Surface Pro 薄。它具有三个端口，其中两个是 USB-C Thunderbolt 3，可用于连接 4K 显示器、USB 附件以及用于对等网络的计算机之间的高速数据传输。它还具有一个 microSD 插槽。作为视频记者，SD 卡插槽会更有用。大量使用树莓派的用户也会喜欢这种卡。它具有 4 个麦克风和一个改进的摄像头，该摄像头现在位于顶部（再见，鼻孔摄像头！）。XPS 13（7390）光滑纤薄。它的重量仅为 2.7 磅（1.2kg），可以与苹果的 MacBook Air 相提并论。 这台机器可以成为你的旅行伴侣，并且可以执行日常任务，例如检查电子邮件、浏览网络和写作。其 4K UHD 屏幕支持 HDR，这意味着你将可以尽享《The Mandalorian》的全部美妙之处。另外，车载扬声器并没有那么好，听起来有些沉闷。它们适合进行视频聊天或休闲的 YouTube 观看，但是如果你想在今年晚些时候观看《The Witcher》剧集，或者想欣赏 Amazon、Apple Music 或 YouTube Music 的音乐，则需要耳机或外接扬声器。但是，在插入充电线之前，你可以能使用这台机器多少时间？在正常工作量的情况下，它为我提供了大约 7-8 个小时的电池续航时间：我打开了几个选项卡浏览网络，只是看看电影或听音乐。多任务处理，尤其是各种 Web 活动，都会加速消耗电池电量。在 Linux 上进行一些微调可能会给你带来更多的续航时间，而在 Windows 10 上，我可以使用 10 多个小时呢！作为仍在从事大量写作工作的视频记者，我非常喜欢键盘。但是，我们这么多年来在 Linux 台式机上听到的触控板故事一直没变：它与 MacBook 或 Windows 上的品质相差甚远。这或许有一天能改变。值得称道的是，他们确实发布了可增强体验的触控板驱动程序，但我没有运行此系统随附的提供的 Ubuntu 18.04 LTS。我全新安装了 Ubuntu 19.10，因为 Gnome 在 18.04 中的运行速度非常慢。我尝试过 openSUSE Tumbleweed、Zorin OS、elementary OS、Fedora、KDE neon 和 Arch Linux。一切正常，尽管有些需要额外的努力才能运行。那么，该系统适用于谁？显然，这是给那些想要设计精良的、他们信赖的品牌的高端机器的专业人士打造的。适用于喜欢 MacBook Air，但更喜欢 Linux 台式机生态系统的用户。适用于那些希望使用 Linux 来工作，而不是使 Linux 可以工作的人。我使用这台机器一周的时间，进一步说明了为什么我如此喜欢戴尔的 XPS 系列。它们是目前最好的 Linux 笔记本电脑。这款 XPS 13（7390），你值得拥有！via: https://www.linux.com/articles/dell-xps-13-7390-review-the-best-laptop-for-desktop-linux-user/作者：Swapnil Bhartiya 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
今天产生的大量数据带来了新的存储挑战。在本文中了解各种存储类型以及它们的使用方式。现在，对于那些创建或消费数据的公司来说，处理数量巨大的生成数据是个非常大的挑战。而对于那些解决存储相关问题的科技公司来说，也是一个挑战。Red Hat 存储首席产品营销经理 Michael St. Jean 说，“数据每年呈几何级增长，而我们发现数据大量增长的主要原因是由于消费增长和为拓展价值而进行的产业转型，毫无疑问，物联网对数据增长的贡献很大，但对软件定义存储来说最重要的挑战是，如何处理用户场景相关的数据增长。“任何挑战都意味着机遇。Azure 存储、介质和边缘计算总经理 Tad Brockway 说，“今天，新旧数据源产生的海量数据为我们满足客户在规模、性能、灵活性、治理方面急剧增长的需求提供了一个机遇。”现代软件定义存储的三种类型这里有三个不同类型的存储解决方案 —— 块、文件、和对象 —— 虽然它们每个都可以与其它的共同工作，但它们每个都有不同的用途。块存储是数据存储的最古老形式，数据都存储在固定长度的块或多个块中。块存储适用于企业存储环境，并且通常使用光纤通道或 iSCSI 接口。根据 SUSE 的软件定义存储高级产品经理 Larry Morris 的说法，“块存储要求一个应用去映射存储设备上存储数据块的位置。”块存储在存储区域网和软件定义存储系统中是虚拟的，它是处于一个共享的硬件基础设施上的抽象逻辑设备，其创建和存在于服务器、虚拟服务器、或运行在基于像 SCSI、SATA、SAS、FCP、FCoE、或 iSCSI 这样的协议的系统管理程序上。St. Jean 说“块存储将单个的存储卷（如一个虚拟或云存储节点、或一个老式硬盘）分割成单独的被称为块的实体。”每个块独立存在，并且能够用它自己的数据传输协议和操作系统格式化 —— 给用户完全的配置自主权。由于块存储系统并不负责像文件存储系统那样的文件查找职责，所以，块存储是一个非常快的存储系统。由于同时具备速度和配置灵活性，使得块存储非常适合原始服务器存储或富媒体数据库。块存储适合于宿主机操作系统、应用程序、数据库、完整虚拟机和容器。传统上，块存储仅能够被独立的机器访问，或呈现给集群中的机器访问。基于文件的存储基于文件的存储使用一个文件系统去映射存储设备上数据的存储位置。这种技术在直连或网络附加存储系统应用领域中处于支配地位。它需要做两件事情：组织数据并呈现给用户。St. Jean 说，”使用文件存储时，数据在服务器侧的存储方式与客户端用户所看到的是完全相同的。这就允许用户通过一些唯一标识符（像文件名、位置、或 URL）去请求一个文件，使用特定的数据传输协议与存储系统沟通。其结果就是一种能够从上到下进行浏览的分层的文件结构。文件存储处于块存储之上，允许用户去查看和访问文件、文件夹这样的数据，但是被限制访问处于这些文件和文件夹之下的数据块。Brockway 解释说，“文件存储一般用于像 NFS 和 CIFS/SMB 这种很多服务器基于 IP 网络进行访问的共享文件系统上。访问控制通过用户和组的权限实现在文件、目录和导出级别上。基于文件的存储可用于被多个用户和机器、二进制应用程序、数据库、虚拟机所需要的文件的存储上，以及容器上。“对象存储对象存储是最新的数据存储形式，它为非结构化数据提供一个仓库，它将内容从索引中分离出来，并允许多个文件连接到一个对象上。一个对象就是与任何相关元数据配对的一个数据块，这些元数据提供对象中包含的字节的上下文（比如数据创建时间和数据大小等）。也就是说这两样东西 —— 数据和元数据 —— 构成了一个对象。对象存储的一个好处是每个数据块都关联了一个唯一标识符。访问数据需要唯一标识符，并且不需要应用程序或用户知道数据的真实存储位置。对象数据是通过 API 来访问的。St. Jean 说，“对象中存储的数据是没有压缩和加密的，对象本身被组织在对象存储（一个填满其它对象的中心库）中或容器（包含应用程序运行所需要的所有文件的一个包）中。与文件存储系统的层次结构相比，对象、对象存储和容器在本质上是平面的 —— 这使得它们在存储规模巨大时访问速度很快。”对象存储可以扩展到很多 PB 字节大小，以适应巨大的数据集，因此它是图像、音频、视频、日志、备份、和分析服务所使用的数据存储的最佳选择。结论现在你已经知道了各种类型的存储以及它们的用处。后面我们将继续研究这个主题的更多内容，敬请关注。via: https://www.linux.com/blog/2018/9/know-your-storage-block-file-object作者：Swapnil Bhartiya 选题：lujun9972 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
内核维护者 Greg Kroah-Hartman 谈论内核社区如何保护 Linux 不遭受损害。由于 Linux 使用量持续扩大，内核社区去提高这个世界上使用最广泛的技术 —— Linux 内核的安全性的重要性越来越高。安全不仅对企业客户很重要，它对消费者也很重要，因为 80% 的移动设备都使用了 Linux。在本文中，Linux 内核维护者 Greg Kroah-Hartman 带我们了解内核社区如何应对威胁。bug 不可避免Greg Kroah-Hartman Linux 基金会正如 Linus Torvalds 曾经说过的，大多数安全问题都是 bug 造成的，而 bug 又是软件开发过程的一部分。是软件就有 bug。Kroah-Hartman 说：“就算是 bug，我们也不知道它是安全的 bug 还是不安全的 bug。我修复的一个著名 bug，在三年后才被 Red Hat 认定为安全漏洞“。在消除 bug 方面，内核社区没有太多的办法，只能做更多的测试来寻找 bug。内核社区现在已经有了自己的安全团队，它们是由熟悉内核核心的内核开发者组成。Kroah-Hartman 说：”当我们收到一个报告时，我们就让参与这个领域的核心开发者去修复它。在一些情况下，他们可能是同一个人，让他们进入安全团队可以更快地解决问题“。但他也强调，内核所有部分的开发者都必须清楚地了解这些问题，因为内核是一个可信环境，它必须被保护起来。Kroah-Hartman 说：”一旦我们修复了它，我们就将它放到我们的栈分析规则中，以便于以后不再重新出现这个 bug。“除修复 bug 之外，内核社区也不断加固内核。Kroah-Hartman 说：“我们意识到，我们需要一些主动的缓减措施，因此我们需要加固内核。”Kees Cook 和其他一些人付出了巨大的努力，带来了一直在内核之外的加固特性，并将它们合并或适配到内核中。在每个内核发行后，Cook 都对所有新的加固特性做一个总结。但是只加固内核是不够的，供应商们必须要启用这些新特性来让它们充分发挥作用，但他们并没有这么做。Kroah-Hartman 每周发布一个稳定版内核，而为了长期的支持，公司们只从中挑选一个，以便于设备制造商能够利用它。但是，Kroah-Hartman 注意到，除了 Google Pixel 之外，大多数 Android 手机并不包含这些额外的安全加固特性，这就意味着，所有的这些手机都是有漏洞的。他说：“人们应该去启用这些加固特性”。Kroah-Hartman 说：“我购买了基于 Linux 内核 4.4 的所有旗舰级手机，去查看它们中哪些确实升级了新特性。结果我发现只有一家公司升级了它们的内核。……我在整个供应链中努力去解决这个问题，因为这是一个很棘手的问题。它涉及许多不同的组织 —— SoC 制造商、运营商等等。关键点是，需要他们把我们辛辛苦苦设计的内核去推送给大家。”好消息是，与消费电子产品不一样，像 Red Hat 和 SUSE 这样的大供应商，在企业环境中持续对内核进行更新。使用容器、pod 和虚拟化的现代系统做到这一点更容易了。无需停机就可以毫不费力地更新和重启。事实上，现在来保证系统安全相比过去容易多了。Meltdown 和 Spectre没有任何一个关于安全的讨论能够避免提及 Meltdown 和 Spectre 缺陷。内核社区一直致力于修改新发现的和已查明的安全漏洞。不管怎样，Intel 已经因为这些事情改变了它们的策略。Kroah-Hartman 说：“他们已经重新研究如何处理安全 bug，以及如何与社区合作，因为他们知道他们做错了。内核已经修复了几乎所有大的 Spectre 问题，但是还有一些小问题仍在处理中”。好消息是，这些 Intel 漏洞使得内核社区正在变得更好。Kroah-Hartman 说：“我们需要做更多的测试。对于最新一轮的安全补丁，在它们被发布之前，我们自己花了四个月时间来测试它们，因为我们要防止这个安全问题在全世界扩散。而一旦这些漏洞在真实的世界中被利用，将让我们认识到我们所依赖的基础设施是多么的脆弱，我们多年来一直在做这种测试，这确保了其它人不会遭到这些 bug 的伤害。所以说，Intel 的这些漏洞在某种程度上让内核社区变得更好了”。对安全的日渐关注也为那些有才华的人创造了更多的工作机会。由于安全是个极具吸引力的领域，那些希望在内核空间中有所建树的人，安全将是他们一个很好的起点。Kroah-Hartman 说：“如果有人想从事这方面的工作，我们有大量的公司愿意雇佣他们。我知道一些开始去修复 bug 的人已经被他们雇佣了。”你可以在下面链接的视频上查看更多的内容：via: https://www.linux.com/blog/2018/10/greg-kroah-hartman-explains-how-kernel-community-securing-linux-0作者：SWAPNIL BHARTIYA 选题：oska874 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
欧洲核子研究组织（CERN）是如何使用 Linux 和开源的
欧洲核子研究组织（简称 CERN）依靠开源技术处理大型强子对撞机生成的大量数据。ATLAS（超环面仪器，如图所示）是一种探测基本粒子的通用探测器。CERN 无需过多介绍了吧。CERN 创建了 万维网 World Wide Web （WWW）和 大型强子对撞机 Large Hadron Collider （LHC），这是世界上最大的 粒子加速器 particle accelerator ，就是通过它发现了 希格斯玻色子 Higgs boson 。负责该组织 IT 操作系统和基础架构的 Tim Bell 表示，他的团队的目标是“为全球 13000 名物理学家提供计算设施，以分析这些碰撞，了解宇宙的构成以及是如何运转的。”CERN 正在进行硬核科学研究，尤其是大型强子对撞机，它在运行时 生成大量数据。“CERN 目前存储大约 200 PB 的数据，当加速器运行时，每月有超过 10 PB 的数据产生。这必然会给计算基础架构带来极大的挑战，包括存储大量数据，以及能够在合理的时间范围内处理数据，对于网络、存储技术和高效计算架构都是很大的压力。“Bell 说到。Tim Bell, CERN大型强子对撞机的运作规模和它产生的数据量带来了严峻的挑战，但 CERN 对这些问题并不陌生。CERN 成立于 1954 年，已经 60 余年了。“我们一直面临着难以解决的计算能力挑战，但我们一直在与开源社区合作解决这些问题。”Bell 说，“即使在 90 年代，当我们发明万维网时，我们也希望与人们共享，使其能够从 CERN 的研究中受益，开源是做这件事的再合适不过的工具了。”使用 OpenStack 和 CentOS时至今日，CERN 是 OpenStack 的深度用户，而 Bell 则是 OpenStack 基金会的董事会成员之一。不过 CERN 比 OpenStack 出现的要早，多年来，他们一直在使用各种开源技术通过 Linux 服务器提供服务。“在过去的十年中，我们发现，与其自己解决问题，不如找到面临类似挑战的上游开源社区进行合作，然后我们一同为这些项目做出贡献，而不是一切都由自己来创造和维护。“Bell 说。一个很好的例子是 Linux 本身。CERN 曾经是 Red Hat Enterprise Linux 的客户。其实，早在 2004 年，他们就与 Fermilab 合作一起建立了自己的 Linux 发行版，名为 Scientific Linux。最终他们意识到，因为没有修改内核，耗费时间建立自己的发行版是没有意义的，所以他们迁移到了 CentOS 上。由于 CentOS 是一个完全开源和社区驱使的项目，CERN 可以与该项目合作，并为 CentOS 的构建和分发做出贡献。CERN 帮助 CentOS 提供基础架构，他们还组织了 CentOS DoJo 活动（LCTT 译者注：CentOS Dojo 是为期一日的活动，汇聚来自 CentOS 社群的人分享系统管理、最佳实践及新兴科技。），工程师可以汇聚在此共同改进 CentOS 的封装。除了 OpenStack 和 CentOS 之外，CERN 还是其他开源项目的深度用户，包括用于配置管理的 Puppet、用于监控的 Grafana 和 InfluxDB，等等。“我们与全球约 170 个实验室合作。因此，每当我们发现一个开源项目的改进之处，其他实验室便可以很容易地采纳使用。”Bell 说，“与此同时，我们也向其他项目学习。当像 eBay 和 Rackspace 这样大规模的装机量提高了解决方案的可扩展性时，我们也从中受益，也可以扩大规模。“解决现实问题2012 年左右，CERN 正在研究如何为大型强子对撞机扩展计算能力，但难点是人员而不是技术。CERN 雇用的员工人数是固定的。“我们必须找到一种方法来扩展计算能力，而不需要大量额外的人来管理。”Bell 说，“OpenStack 为我们提供了一个自动的 API 驱动和软件定义的基础架构。”OpenStack 还帮助 CERN 检查与服务交付相关的问题，然后使其自动化，而无需增加员工。“我们目前在日内瓦和布达佩斯的两个数据中心运行大约 280000 个处理器核心和 7000 台服务器。我们正在使用软件定义的基础架构使一切自动化，这使我们能够在保持员工数量不变的同时继续添加更多的服务器。“Bell 说。随着时间的推移，CERN 将面临更大的挑战。大型强子对撞机有一个到 2035 年的蓝图，包括一些重要的升级。“我们的加速器运转三到四年，然后会用 18 个月或两年的时间来升级基础架构。在这维护期间我们会做一些计算能力的规划。 ”Bell 说。CERN 还计划升级高亮度大型强子对撞机，会允许更高光度的光束。与目前的 CERN 的规模相比，升级意味着计算需求需增加约 60 倍。“根据摩尔定律，我们可能只能满足需求的四分之一，因此我们必须找到相应的扩展计算能力和存储基础架构的方法，并找到自动化和解决方案，例如 OpenStack，将有助于此。”Bell 说。“当我们开始使用大型强子对撞机并观察我们如何提供计算能力时，很明显我们无法将所有内容都放入 CERN 的数据中心，因此我们设计了一个分布式网格结构：位于中心的 CERN 和围绕着它的级联结构。”Bell 说，“全世界约有 12 个大型一级数据中心，然后是 150 所小型大学和实验室。他们从大型强子对撞机的数据中收集样本，以帮助物理学家理解和分析数据。”这种结构意味着 CERN 正在进行国际合作，数百个国家正致力于分析这些数据。归结为一个基本原则，即开源不仅仅是共享代码，还包括人们之间的协作、知识共享，以实现个人、组织或公司无法单独实现的目标。这就是开源世界的希格斯玻色子。via: https://www.linux.com/blog/2018/5/how-cern-using-linux-open-source作者：SWAPNIL BHARTIYA 译者：jessie-pang 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
CIP 的目标是创建一个基本的系统，使用开源软件来为我们现代社会的基础设施提供动力。现如今，现代民用基础设施遍及各处 —— 发电厂、雷达系统、交通信号灯、水坝和天气系统等。这些基础设施项目已然存在数十年，这些设施还将继续提供更长时间的服务，所以安全性和使用寿命是至关重要的。并且，其中许多系统都是由 Linux 提供支持，它为技术提供商提供了对这些问题的更多控制。然而，如果每个提供商都在构建自己的解决方案，这可能会导致分散和重复工作。因此， 民用基础设施平台 Civil Infrastructure Platform （CIP）最首要的目标是创造一个开源基础层，提供给工业设施，例如嵌入式控制器或是网关设备。担任 CIP 的技术指导委员会主席的 Yoshitake Kobayashi 说过，“我们在这个领域有一种非常保守的文化，因为一旦我们建立了一个系统，它必须得到长达十多年的支持，在某些情况下超过 60 年。这就是为什么这个项目被创建的原因，因为这个行业的每个使用者都面临同样的问题，即能够长时间地使用 Linux。”CIP 的架构是创建一个非常基础的系统，以在控制器上使用开源软件。其中，该基础层包括 Linux 内核和一系列常见的开源软件如 libc、busybox 等。由于软件的使用寿命是一个最主要的问题，CIP 选择使用 Linux 4.4 版本的内核，这是一个由 Greg Kroah-Hartman 维护的长期支持版本。合作由于 CIP 有上游优先政策，因此他们在项目中需要的代码必须位于上游内核中。为了与内核社区建立积极的反馈循环，CIP 聘请 Ben Hutchings 作为 CIP 的官方维护者。Hutchings 以他在 Debian LTS 版本上所做的工作而闻名，这也促成了 CIP 与 Debian 项目之间的官方合作。在新的合作下，CIP 将使用 Debian LTS 版本作为构建平台。 CIP 还将支持 Debian 长期支持版本（LTS），延长所有 Debian 稳定版的生命周期。CIP 还将与 Freexian 进行密切合作，后者是一家围绕 Debian LTS 版本提供商业服务的公司。这两个组织将专注于嵌入式系统的开源软件的互操作性、安全性和维护。CIP 还会为一些 Debian LTS 版本提供资金支持。Debian 项目负责人 Chris Lamb 表示，“我们对此次合作以及 CIP 对 Debian LTS 项目的支持感到非常兴奋，这样将使支持周期延长至五年以上。我们将一起致力于为用户提供长期支持，并为未来的城市奠定基础。”安全性Kobayashi 说过，其中最需要担心的是安全性。虽然出于明显的安全原因，大部分民用基础设施没有接入互联网（你肯定不想让一座核电站连接到互联网），但也存在其他风险。仅仅是系统本身没有连接到互联网，这并不意味着能避开所有危险。其他系统，比如个人移动电脑也能够通过接入互联网而间接入侵到本地系统中。如若有人收到一封带有恶意文件作为电子邮件的附件，这将会“污染”系统内部的基础设备。因此，至关重要的是保持运行在这些控制器上的所有软件是最新的并且完全修补的。为了确保安全性，CIP 还向后移植了 内核自我保护 Kernel Self Protection （KSP）项目的许多组件。CIP 还遵循最严格的网络安全标准之一 —— IEC 62443，该标准定义了软件的流程和相应的测试，以确保系统更安全。展望未来随着 CIP 日趋成熟，官方正在加大与各个 Linux 提供商的合作力度。除了与 Debian 和 freexian 的合作外，CIP 最近还邀请了企业 Linux 操作系统供应商 Cybertrust Japan Co., Ltd. 作为新的银牌成员。Cybertrust 与其他行业领军者合作，如西门子、东芝、Codethink、日立、Moxa、Plat'Home 和瑞萨，致力于为未来数十年打造一个可靠、安全的基于 Linux 的嵌入式软件平台。这些公司在 CIP 的保护下所进行的工作，将确保管理我们现代社会中的民用基础设施的完整性。想要了解更多信息，请访问 民用基础设施官网。via: https://www.linux.com/blog/2018/6/cip-keeping-lights-linux作者：Swapnil Bhartiya 选题：lujun9972 译者：wyxplus 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在本文中，我们的目的是让你了解如何设置属于自己的Git服务器。Git 是由 Linux Torvalds 开发的一个版本控制系统，现如今正在被全世界大量开发者使用。许多公司喜欢使用基于 Git 版本控制的 GitHub 代码托管。根据报道，GitHub 是现如今全世界最大的代码托管网站。GitHub 宣称已经有 920 万用户和 2180 万个仓库。许多大型公司现如今也将代码迁移到 GitHub 上。甚至于谷歌，一家搜索引擎公司，也正将代码迁移到 GitHub 上。运行你自己的 Git 服务器GitHub 能提供极佳的服务，但却有一些限制，尤其是你是单人或是一名 coding 爱好者。GitHub 其中之一的限制就是其中免费的服务没有提供代码私有托管业务。你不得不支付每月 7 美金购买 5 个私有仓库，并且想要更多的私有仓库则要交更多的钱。万一你想要私有仓库或需要更多权限控制，最好的方法就是在你的服务器上运行 Git。不仅你能够省去一笔钱，你还能够在你的服务器有更多的操作。在大多数情况下，大多数高级 Linux 用户已经拥有自己的服务器，并且在这些服务器上方式 Git 就像“啤酒一样免费”（LCTT 译注：指免费软件）。在这篇教程中，我们主要讲在你的服务器上，使用两种代码管理的方法。一种是运行一个纯 Git 服务器，另一个是使用名为 GitLab 的 GUI 工具。在本教程中，我在 VPS 上运行的操作系统是 Ubuntu 14.04 LTS。在你的服务器上安装 Git在本篇教程中，我们考虑一个简单案例，我们有一个远程服务器和一台本地服务器，现在我们需要使用这两台机器来工作。为了简单起见，我们就分别叫它们为远程服务器和本地服务器。首先，在两边的机器上安装 Git。你可以从依赖包中安装 Git，在本文中，我们将使用更简单的方法：sudo apt-get install git-core 为 Git 创建一个用户。sudo useradd git passwd git 为了容易的访问服务器，我们设置一个免密 ssh 登录。首先在你本地电脑上创建一个 ssh 密钥：ssh-keygen -t rsa 这时会要求你输入保存密钥的路径，这时只需要点击回车保存在默认路径。第二个问题是输入访问远程服务器所需的密码。它生成两个密钥——公钥和私钥。记下您在下一步中需要使用的公钥的位置。现在您必须将这些密钥复制到服务器上，以便两台机器可以相互通信。在本地机器上运行以下命令：cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 现在，用 ssh 登录进服务器并为 Git 创建一个项目路径。你可以为你的仓库设置一个你想要的目录。现在跳转到该目录中：cd /home/swapnil/project-1.git 现在新建一个空仓库：git init --bare Initialized empty Git repository in /home/swapnil/project-1.git 现在我们需要在本地机器上新建一个基于 Git 版本控制仓库：mkdir -p /home/swapnil/git/project 进入我们创建仓库的目录：cd /home/swapnil/git/project 现在在该目录中创建项目所需的文件。留在这个目录并启动 git：git init Initialized empty Git repository in /home/swapnil/git/project 把所有文件添加到仓库中：git add . 现在，每次添加文件或进行更改时，都必须运行上面的 add 命令。 您还需要为每个文件更改都写入提交消息。提交消息基本上说明了我们所做的更改。git commit -m "message" -a [master (root-commit) 57331ee] message 2 files changed, 2 insertions(+) create mode 100644 GoT.txt create mode 100644 writing.txt 在这种情况下，我有一个名为 GoT（《权力的游戏》的点评）的文件，并且我做了一些更改，所以当我运行命令时，它指定对文件进行更改。 在上面的命令中 -a 选项意味着提交仓库中的所有文件。 如果您只更改了一个，则可以指定该文件的名称而不是使用 -a。举一个例子：git commit -m "message" GoT.txt [master e517b10] message 1 file changed, 1 insertion(+) 到现在为止，我们一直在本地服务器上工作。现在我们必须将这些更改推送到远程服务器上，以便通过互联网访问，并且可以与其他团队成员进行协作。git remote add origin ssh://git@remote-server/repo-<wbr< a="">>path-on-server..git 现在，您可以使用 pull 或 push 选项在服务器和本地计算机之间推送或拉取：git push origin master 如果有其他团队成员想要使用该项目，则需要将远程服务器上的仓库克隆到其本地计算机上：git clone git@remote-server:/home/swapnil/project.git 这里 /home/swapnil/project.git 是远程服务器上的项目路径，在你本机上则会改变。然后进入本地计算机上的目录（使用服务器上的项目名称）：cd /project 现在他们可以编辑文件，写入提交更改信息，然后将它们推送到服务器：git commit -m 'corrections in GoT.txt story' -a 然后推送改变：git push origin master 我认为这足以让一个新用户开始在他们自己的服务器上使用 Git。 如果您正在寻找一些 GUI 工具来管理本地计算机上的更改，则可以使用 GUI 工具，例如 QGit 或 GitK for Linux。使用 GitLab这是项目所有者和协作者的纯命令行解决方案。这当然不像使用 GitHub 那么简单。不幸的是，尽管 GitHub 是全球最大的代码托管商，但是它自己的软件别人却无法使用。因为它不是开源的，所以你不能获取源代码并编译你自己的 GitHub。这与 WordPress 或 Drupal 不同，您无法下载 GitHub 并在您自己的服务器上运行它。像往常一样，在开源世界中，是没有终结的尽头。GitLab 是一个非常优秀的项目。这是一个开源项目，允许用户在自己的服务器上运行类似于 GitHub 的项目管理系统。您可以使用 GitLab 为团队成员或公司运行类似于 GitHub 的服务。您可以使用 GitLab 在公开发布之前开发私有项目。GitLab 采用传统的开源商业模式。他们有两种产品：免费的开源软件，用户可以在自己的服务器上安装，以及类似于 GitHub 的托管服务。可下载版本有两个版本，免费的社区版和付费企业版。企业版基于社区版，但附带针对企业客户的其他功能。它或多或少与 WordPress.org 或 Wordpress.com 提供的服务类似。社区版具有高度可扩展性，可以在单个服务器或群集上支持 25000 个用户。GitLab 的一些功能包括：Git 仓库管理，代码评论，问题跟踪，活动源和维基。它配备了 GitLab CI，用于持续集成和交付。Digital Ocean 等许多 VPS 提供商会为用户提供 GitLab 服务。 如果你想在你自己的服务器上运行它，你可以手动安装它。GitLab 为不同的操作系统提供了软件包。 在我们安装 GitLab 之前，您可能需要配置 SMTP 电子邮件服务器，以便 GitLab 可以在需要时随时推送电子邮件。官方推荐使用 Postfix。所以，先在你的服务器上安装 Postfix：sudo apt-get install postfix 在安装 Postfix 期间，它会问你一些问题，不要跳过它们。 如果你一不小心跳过，你可以使用这个命令来重新配置它：sudo dpkg-reconfigure postfix 运行此命令时，请选择 “Internet Site”并为使用 Gitlab 的域名提供电子邮件 ID。我是这样输入的：xxx@x.com 用 Tab 键并为 postfix 创建一个用户名。接下来将会要求你输入一个目标邮箱。在剩下的步骤中，都选择默认选项。当我们安装且配置完成后，我们继续安装 GitLab。我们使用 wget 来下载软件包(用 最新包 替换下载链接)：wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb 然后安装这个包：sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb 现在是时候配置并启动 GitLab 了。sudo gitlab-ctl reconfigure 您现在需要在配置文件中配置域名，以便您可以访问 GitLab。打开文件。nano /etc/gitlab/gitlab.rb 在这个文件中编辑 external_url 并输入服务器域名。保存文件，然后从 Web 浏览器中打开新建的一个 GitLab 站点。默认情况下，它会以系统管理员的身份创建 root，并使用 5iveL!fe 作为密码。 登录到 GitLab 站点，然后更改密码。密码更改后，登录该网站并开始管理您的项目。GitLab 有很多选项和功能。最后，我借用电影“黑客帝国”中的经典台词：“不幸的是，没有人知道 GitLab 可以做什么。你必须亲自尝试一下。”via: https://www.linux.com/learn/how-run-your-own-git-server作者：Swapnil Bhartiya 选题：lujun9972 译者：wyxplus 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
人们经常用 x 相对于 y 这样的术语来考虑问题，但是它并不是一个技术对另一个技术的问题。Ben Hindman 在这里解释了 Mesos 是如何对另外一种技术进行补充的。Mesos 的起源可以追溯到 2009 年，当时，Ben Hindman 还是加州大学伯克利分校研究并行编程的博士生。他们在 128 核的芯片上做大规模的并行计算，以尝试去解决多个问题，比如怎么让软件和库在这些芯片上运行更高效。他与同学们讨论能否借鉴并行处理和多线程的思想，并将它们应用到集群管理上。Hindman 说 “最初，我们专注于大数据” 。那时，大数据非常热门，而 Hadoop 就是其中的一个热门技术。“我们发现，人们在集群上运行像 Hadoop 这样的程序与运行多线程应用及并行应用很相似。”Hindman 说。但是，它们的效率并不高，因此，他们开始去思考，如何通过集群管理和资源管理让它们运行的更好。“我们查看了那个时期很多的各种技术” Hindman 回忆道。然后，Hindman 和他的同事们决定去采用一种全新的方法。“我们决定对资源管理创建一个低级的抽象，然后在此之上运行调度服务和做其它的事情。” Hindman 说，“基本上，这就是 Mesos 的本质 —— 将资源管理部分从调度部分中分离出来。”他成功了，并且 Mesos 从那时开始强大了起来。将项目呈献给 Apache这个项目发起于 2009 年。在 2010 年时，团队决定将这个项目捐献给 Apache 软件基金会（ASF）。它在 Apache 孵化，并于 2013 年成为顶级项目（TLP）。为什么 Mesos 社区选择 Apache 软件基金会有很多的原因，比如，Apache 许可证，以及基金会已经拥有了一个充满活力的其它此类项目的社区。与影响力也有关系。许多在 Mesos 上工作的人也参与了 Apache，并且许多人也致力于像 Hadoop 这样的项目。同时，来自 Mesos 社区的许多人也致力于其它大数据项目，比如 Spark。这种交叉工作使得这三个项目 —— Hadoop、Mesos，以及 Spark —— 成为 ASF 的项目。与商业也有关系。许多公司对 Mesos 很感兴趣，并且开发者希望它能由一个中立的机构来维护它，而不是让它成为一个私有项目。谁在用 Mesos？更好的问题应该是，谁不在用 Mesos？从 Apple 到 Netflix 每个都在用 Mesos。但是，Mesos 也面临任何技术在早期所面对的挑战。“最初，我要说服人们，这是一个很有趣的新技术。它叫做‘容器’，因为它不需要使用虚拟机” Hindman 说。从那以后，这个行业发生了许多变化，现在，只要与别人聊到基础设施，必然是从”容器“开始的 —— 感谢 Docker 所做出的工作。今天再也不需要做说服工作了，而在 Mesos 出现的早期，前面提到的像 Apple、Netflix，以及 PayPal 这样的公司。他们已经知道了容器替代虚拟机给他们带来的技术优势。“这些公司在容器成为一种现象之前，已经明白了容器的价值所在”， Hindman 说。可以在这些公司中看到，他们有大量的容器而不是虚拟机。他们所做的全部工作只是去管理和运行这些容器，并且他们欣然接受了 Mesos。在 Mesos 早期就使用它的公司有 Apple、Netflix、PayPal、Yelp、OpenTable 和 Groupon。“大多数组织使用 Mesos 来运行各种服务” Hindman 说，“但也有些公司用它做一些非常有趣的事情，比如，数据处理、数据流、分析任务和应用程序。“这些公司采用 Mesos 的其中一个原因是，资源管理层之间有一个明晰的界线。当公司运营容器的时候，Mesos 为他们提供了很好的灵活性。“我们尝试使用 Mesos 去做的一件事情是去创建一个层，以让使用者享受到我们的层带来的好处，当然也可以在它之上创建任何他们想要的东西，” Hindman 说。 “我认为这对一些像 Netflix 和 Apple 这样的大公司非常有用。”但是，并不是每个公司都是技术型的公司；不是每个公司都有或者应该有这种专长。为帮助这样的组织，Hindman 联合创建了 Mesosphere 去围绕 Mesos 提供服务和解决方案。“我们最终决定，为这样的组织去构建 DC/OS，它不需要技术专长或者不想把时间花费在像构建这样的事情上。”Mesos vs. Kubernetes?人们经常用 x 相对于 y 这样的术语来考虑问题，但是它并不是一个技术对另一个技术的问题。大多数的技术在一些领域总是重叠的，并且它们可以是互补的。“我不喜欢将所有的这些东西都看做是竞争者。我认为它们中的一些与另一个在工作中是互补的，” Hindman 说。“事实上，名字 Mesos 表示它处于 ‘中间’；它是一种中间的操作系统”， Hindman 说，“我们有一个容器调度器的概念，它能够运行在像 Mesos 这样的东西之上。当 Kubernetes 刚出现的时候，我们实际上在 Mesos 的生态系统中接受了它，并将它看做是在 Mesos 上的 DC/OS 中运行容器的另一种方式。”Mesos 也复活了一个名为 Marathon（一个用于 Mesos 和 DC/OS 的容器编排器）的项目，它成为了 Mesos 生态系统中最重要的成员。但是，Marathon 确实无法与 Kubernetes 相比较。“Kubernetes 比 Marathon 做的更多，因此，你不能将它们简单地相互交换，” Hindman 说，“与此同时，我们在 Mesos 中做了许多 Kubernetes 中没有的东西。因此，这些技术之间是互补的。”不要将这些技术视为相互之间是敌对的关系，它们应该被看做是对行业有益的技术。它们不是技术上的重复；它们是多样化的。据 Hindman 说，“对于开源领域的终端用户来说，这可能会让他们很困惑，因为他们很难去知道哪个技术适用于哪种任务，但这是这个被称之为开源的本质所在。“这只是意味着有更多的选择，并且每个都是赢家。via: https://www.linux.com/blog/2018/6/mesos-and-kubernetes-its-not-competition作者：Swapnil Bhartiya 选题：lujun9972 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在前一篇文章中，我们谈到了 容器 container 是什么以及它是如何培育创新并助力企业快速发展的。在以后的文章中，我们将讨论如何使用容器。然而，在深入探讨这个话题之前，我们需要了解关于容器的一些术语和命令。掌握了这些术语，才不至于产生混淆。让我们来探讨 Docker 容器世界中使用的一些基本术语吧。 容器 Container ：到底什么是容器呢？它是一个 Docker 镜像 image 的运行实例。它包含一个 Docker 镜像、执行环境和说明。它与系统完全隔离，所以可以在系统上运行多个容器，并且完全无视对方的存在。你可以从同一镜像中复制出多个容器，并在需求较高时扩展服务，在需求低时对这些容器进行缩减。Docker 镜像 Image ：这与你下载的 Linux 发行版的镜像别无二致。它是一个安装包，包含了用于创建、部署和执行容器的一系列依赖关系和信息。你可以在几秒钟内创建任意数量的完全相同的容器。镜像是分层叠加的。一旦镜像被创建出来，是不能更改的。如果你想对容器进行更改，则只需创建一个新的镜像并从该镜像部署新的容器即可。 仓库 Repository （repo）：Linux 的用户对于仓库这个术语一定不陌生吧。它是一个软件库，存储了可下载并安装在系统中的软件包。在 Docker 容器中，唯一的区别是它管理的是通过标签分类的 Docker 镜像。你可以找到同一个应用程序的不同版本或不同变体，他们都有适当的标记。 镜像管理服务 Registry ：可以将其想象成 GitHub。这是一个在线服务，管理并提供了对 Docker 镜像仓库的访问，例如默认的公共镜像仓库——DockerHub。供应商可以将他们的镜像库上传到 DockerHub 上，以便他们的客户下载和使用官方镜像。一些公司为他们的镜像提供自己的服务。镜像管理服务不必由第三方机构来运行和管理。组织机构可以使用预置的服务来管理内部范围的镜像库访问。 标签 Tag ：当你创建 Docker 镜像时，可以给它添加一个合适的标签，以便轻松识别不同的变体或版本。这与你在任何软件包中看到的并无区别。Docker 镜像在添加到镜像仓库时被标记。现在你已经掌握了基本知识，下一个阶段是理解实际使用 Docker 容器时用到的术语。Dockerfile ：这是一个文本文件，包含为了为构建 Docker 镜像需手动执行的命令。Docker 使用这些指令自动构建镜像。 构建 Build ：这是从 Dockerfile 创建成镜像的过程。 推送 Push ：一旦镜像创建完成，“push” 是将镜像发布到仓库的过程。该术语也是我们下一篇文章要学习的命令之一。 拉取 Pull ：用户可以通过 “pull” 过程从仓库检索该镜像。 编组 Compose ：复杂的应用程序会包含多个容器。docker-compose 是一个用于运行多容器应用程序的命令行工具。它允许你用单条命令运行一个多容器的应用程序，简化了多容器带来的问题。总结容器术语的范围很广泛，这里是经常遇到的一些基本术语。下一次当你看到这些术语时，你会确切地知道它们的含义。在下一篇文章中，我们将开始使用 Docker 容器。via: https://www.linux.com/blog/intro-to-linux/2017/12/container-basics-terms-you-need-know作者：Swapnil Bhartiya 译者：jessie-pang 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出