分类 观点 下的文章

现在比以往任何时候都更是为开源做出贡献的理想时机。下面是为什么。

开源软件已经遍及世界。从 Linux 和 MySQL 的早期开始,开源就以前所未有的方式推动创新,仅 GitHub 上就有 180,000 个公共仓库

对于尚未进入开源世界的那些人,下面是如今天开始的三个原因。

建立你作为开发人员的信心

如果你还很年轻,在职业生涯初期,甚至只是在学习一种新的编程语言,那么开源是入门的最佳方法。

通过参与一个开源项目,你会立即收到有关你的开发和编程技能的反馈。你可能会获得有关如何选择函数名称、条件逻辑的使用方式或如何使用不了解的 goroutine 来加快程序执行速度的建议。这是你在学习新东西时获得的宝贵反馈。

此外,随着你创建更多的拉取请求并应用从先前提交的内容中学到的知识,你将开始学习如何编写良好的代码并提交优秀的拉取请求进行代码审查。最后,许多开源项目提供指导计划,以帮助指导你完成前几个贡献。这是一个非常友好、安全的环境,可树立你作为开发人员的信心。

有关例子故事,请阅读 Allan Guwatudde 作为一名自学开发者在开源方面的经验这篇文章。

丰富你的简历

即使你是一位经验丰富的开发人员,你也可能希望丰富自己的简历,以帮助职业发展和未来的寻找工作。也许你有兴趣探索新的前沿框架或新的编程模块,而你却没有机会在工作中用到。

你可以通过报名一个课程或在日常工作中找到一个方式引入这些概念来获得经验。但是,当这些选项不可用(或不希望使用)时,开源将提供绝佳的机会!除了建立技能和提高信心之外,所有开源贡献都是公开的,它们可以证明你已掌握的技能和已完成的项目。实际上,你的开源方面的个人资料本身可以为你提供强大的作品集,从而使你与其他应聘者脱颖而出。

此外,许多开源项目,例如 Mattermost,允许你在 LinkedIn 上添加自己为贡献者,以直接提升自己的专业形象。

阅读 Siyuan Liu 的旅程这篇文章,了解如何从第一次开源贡献到两次成为 Mattermost 项目 MVP。

建立你的专业网络

建立强大的专业网络可以帮助你实现职业目标,了解有关你自己或相邻领域的更多信息,并有助于寻找工作。为开源做贡献是建立该网络的绝佳方法。你加入了一个由成百上千的贡献者组成的温馨社区,在开源空间中与志趣相投的开发人员进行互动,并一路建立联系。你甚至可能会被介绍给行业中的关键人物,例如知名的开源工具的维护者。这样的关系可以变成改变职业生涯的关系。

最后,为开源项目做贡献甚至可以让你找到工作!例如,Mattermost 已经从它的开源社区聘请了一些贡献者,全职在工程团队中工作。

从今天开始为开源做贡献

开源让你能够树立开发者的信心,建立简历和建立专业网络。而且,无论你的贡献大小,它都会对开源项目的未来产生直接影响。因此,许多项目都会向贡献者发放礼物以表示感谢(例如,为所有首次贡献者送上一个定制的杯子)。

准备开始进入开源了吗?查看这些开源项目来进行首次开源贡献,或了解如何为 Mattermost 做贡献


via: https://opensource.com/article/20/6/why-contribute-open-source

作者:Jason Blais 选题:lujun9972 译者:geekpi 校对:wxy

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

开发者需要快速编程的工具和自由,而不会因为合规性和安全性所困扰。

一个人需要合适的工具来完成工作。比如说没有比修车修到一半,却发现你没有完成工作的专业工具更沮丧的事情了。同样的道理也适用在开发者身上:你需要工具来发挥你的才能,而不会因为合规性和安全性的需求打断你的工作流程,这样你才可以更快速地编码。

根据 ActiveState 的研究《2018 年开发者调查:开源运行时的痛苦》显示,超过一半的开发人员(具体为 51%),每天只需要花费 1-4 小时的时间进行编程。换句话说,大多数开发人员花费不到一半的时间编程。根据调查,一半的开发人员认为安全是他们最大的担忧之一,但是由于公司政策方面的原因,67% 的开发人员选择在编程时不添加新的语言。

结果是开发人员不得不投入更多的精力在非编码的活动上,例如在构建软件和语言之后检查软件的安全性和合规性标准。而且由于公司政策的原因,他们无法选择适合的开发工具或语言。他们的满意度会下降,同时风险提高。

因此,开发人员无法将时间投入在高价值的工作上。这会带来额外的商业风险,因为他们的软件上市时间变慢了,并且公司因为没有授权开发人员在不受公司政策影响的前提下决定“最佳的”技术的能力,从而增加了技术债务。

纳入安全性和合规性的工作流程

我们如何解决这个问题呢?一种方式是通过四个简单的步骤将安全性和合规性的工作流程集成到软件开发中:

1、集中你的力量

获得所有相关人员的支持,这是一个经常被遗忘但却至关重要的第一步。确保考虑到了广泛的利益相关者,包括:

  • 开发运维(DevOps)
  • 开发人员
  • 信息安全
  • 合法/合规
  • IT 安全

利益相关者想要了解相关的商业利益,因此要为消除软件构建后的安全和合规性检查点提供坚实的理由。你可以在构建你的商业案例中考虑以下任何一个(或者全部)因素:节省时间、机会成本和开发人员生产力。在开发流程中,你也可以通过集成安全性和合规性来避免语言的改造。

2、寻找可信赖的资源

接下来,选择可使用的可信资源,以及他们的许可证和安全要求。考虑到如下相关信息:

  • 基于环境或应用程序类型的使用限制以及每种语言的版本控制
  • 允许哪些开源组件,例如,特定的程序包
  • 哪种环境类型可以使用哪种许可证(例如,研究与生产)
  • 安全级别的定义、可接受的脆弱性风险等级、什么样的风险级别会触发一个措施,这个措施是什么并且谁来负责它的执行

3、从一开始就纳入安全性和合规性

纳入安全性和合规性的工作流程的结果是,它最终将安全性和合规性融入到代码的第一行。它消除了公司政策的拖累,因为你是按照规范进行编码,而不是必须事后解决问题。但要做到这一点,请考虑在构建代码时采用自动扫描代码的机制,以及使用无代理监控你的运行时代码。你可以节省时间,还可以通过编程实施策略来确保整个组织的合规性。

4、监控、报告和更新

出现新的漏洞,新的补丁和版本也会出现。所以,将代码部署到生产中以及运行代码时,需要考虑安全性和合规性。你需要知道哪些(如果有的话)代码存在风险以及该代码在何处运行。所以,部署和运行代码的过程应该包括监视、报告和更新生产中的代码。

通过一开始就在你的软件开发过程中集成安全性和合规性,你还可以在部署后跟踪代码的运行位置,并在新的威胁出现时获得警报。你也能追踪当你的应用程序何时受到攻击,并通过自动执行软件策略做出响应。

如果你的软件开发过程中已经引入了安全性和合规性的工作流程,你将会提高你的生产率。你将能够通过增加编码时间、提高安全性和稳定性、以及在维护和发现安全性和合规性的威胁方面节省的成本和时间来衡量价值。

集成所带来的幸福

如果你不开发和更新软件,你的组织将无法前进。开发人员是公司成功的关键,这意味着他们需要快速编写代码的工具和自由。尽管合规性和安全性至关重要,但你不能让这个需求阻碍你的发展。开发人员显然很担心安全性,因此最好的办法就是“左移”,从一开始就集成安全性和合规性的工作流程。你将可以做更多的事情,在第一次就可以完成,而花费更少的时间进行代码更新。


via: https://opensource.com/article/19/2/developer-happiness

作者:Bart Copeland 选题:lujun9972 译者:chenmu-kk 校对:wxy

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

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客第一季(1):操作系统战争(上)音频脚本。

Saron Yitbarek: 有些故事如史诗般,惊险万分,在我脑海中似乎出现了星球大战电影开头的滑动文本。你知道的,就像 ——

配音: “第一集,操作系统大战”

Saron Yitbarek: 是的,就像那样子。

00:00:30 - 配音: 这是一个局势加剧紧张的时期。 比尔·盖茨 Bill Gates 史蒂夫·乔布斯 Steve Jobs 的帝国发起了一场无可避免的专有软件之战。盖茨与 IBM 结成了强大的联盟,而乔布斯则拒绝开放它的硬件和操作系统授权。他们争夺统治地位的战争,简直席卷了操作系统的“银河系”。与此同时,在这些“帝王们”所不知道的偏远之地,信奉开源的“反叛者们”开始聚集。

00:01:00 - Saron Yitbarek: 好吧。这也许有点戏剧性,但当我们谈论上世纪八九十年代和 2000 年左右的操作系统之争时,这也不算言过其实。确实曾经发生过一场史诗级的统治之战。史蒂夫·乔布斯和比尔·盖茨确实掌握着许多人的命运。掌控了操作系统,你就掌握了绝大多数人使用计算机的方式、互相通讯的方式、获取信息的方式。我可以一直罗列下去,不过你知道我的意思。掌握了操作系统,你就是帝王。

00:01:30 - Saron Yitbarek: 我是 Saron Yitbarek,你现在收听的是代码英雄,一款红帽公司原创的博客节目。你问什么是 代码英雄 Command Line Hero ?嗯,如果你愿意用创造代替使用,如果你相信开发者拥有构建美好未来的能力,如果你希望拥有一个大家都有权利用科技塑造生活的世界,那么你,我的朋友,就是一位代码英雄。在本系列节目中,我们将为你带来那些“白码起家”(LCTT 译注:原文是 “from the command line up”,应该是演绎自 “from the ground up” —— 白手起家)改变技术的程序员故事。

00:02:00 - Saron Yitbarek: 那么我是谁,凭什么指引你踏上这段艰苦的旅程?Saron Yitbarek 是哪根葱?嗯,事实上我觉得我跟你差不多。我是一名为初学者服务的开发人员,我做的任何事都依赖于开源软件,我的世界就是如此。通过在博客中讲故事,我可以跳出无聊的日常工作,鸟瞰全景,希望这对你也一样有用。

00:02:30 - Saron Yitbarek: 我迫不及待地想知道,开源技术从何而来?我的意思是,我对 林纳斯·托瓦兹 Linus Torvalds 和 Linux^® 的荣耀有一些了解,我相信你也一样。但是说真的,开源并不是一开始就有的对吗?如果我想发表对这些最新、最棒的技术 —— 比如 DevOps 和容器的感激,我感觉我亏欠那些早期的开发者许多,我有必要了解这些东西来自何处。所以,让我们暂时先不用担心内存泄露和缓冲溢出。我们的旅程将从操作系统之战开始,这是一场波澜壮阔的桌面控制之战。

00:03:00 - Saron Yitbarek: 这场战争亘古未有,因为:首先,在计算机时代,大公司拥有指数级的规模优势;其次,从未有过这么一场控制争夺战是如此变化多端。比尔·盖茨和史蒂夫·乔布斯? 目前为止他们也不知道事情会如何发展,但是到这个故事进行到一半的时候,他们所争夺的所有东西都将发生改变、进化,最终上升到云端。

00:03:30 - Saron Yitbarek: 好的,让我们回到 1983 年的秋季,还有六年我才出生。那时候的总统还是 罗纳德·里根 Ronald Reagan ,美国和苏联扬言要把地球拖入核战争之中。在檀香山(火奴鲁鲁)的市政中心正在举办一年一度的苹果公司销售会议。一群苹果公司的员工正在等待史蒂夫·乔布斯上台。他 28 岁,热情洋溢,看起来非常自信。乔布斯很严肃地对着麦克风说,他邀请了三个行业专家,来就他的软件进行了一次小组讨论。

00:04:00 - Saron Yitbarek: 然而随后发生的事情你肯定想不到。超级俗气的 80 年代音乐响彻整个房间,一堆多彩灯管照亮了舞台,然后一个播音员的声音响起 ——

配音: 女士们,先生们,现在是麦金塔软件的约会游戏时间。

00:04:30 - Saron Yitbarek: 当乔布斯意识到这三个 CEO 都要向他轮流示好的时候,脸上露出一个大大的笑容。他简直就是 80 年代科技界的钻石王老五。两个软件大佬讲完话后就轮到第三个人讲话了,事情就这样结束了?才不是呢。新面孔比尔·盖茨带着一个大大的,遮住了半张脸的方框眼镜。他宣称在 1984 年,微软的一半收入将来自于麦金塔软件。他的这番话引来了观众热情的掌声。

00:05:00 - Saron Yitbarek: 但是他们不知道的是,在一个月后,比尔·盖茨将会宣布发布 Windows 1.0 的计划。你永远也猜不到乔布斯正在跟苹果未来最大的敌人打情骂俏,但微软和苹果即将举行科技史上最糟糕的婚礼。他们会彼此背叛、相互毁灭,但又深深地、痛苦地捆绑在一起。

00:05:30 - James Allworth: 我猜从哲学角度上来讲,苹果是更理想化、注重用户体验高于一切,一体化的组织,而微软则更务实,更模块化 ——

Saron Yitbarek: 这位是 James Allworth。他是一位高产的科技作家,曾在苹果零售的企业团队工作。注意他对苹果的定义,一个一体化的组织,那种只对自己负责,不想依赖别人的公司,这是关键。

00:06:00 - James Allworth: 苹果是一家一体化的公司,它希望专注于令人愉悦的用户体验,这意味着它希望控制整个技术栈以及交付的一切内容:从硬件到操作系统,甚至运行在操作系统上的应用程序。新的,重要的创新需要横跨软硬件才能很好地进入市场。当你能够根据自己意愿来改变软件和硬件时,你就有了极大的优势。例如 ——

00:06:30 - Saron Yitbarek: 很多人喜欢这种一体化的模式,并因此成为了苹果的铁杆粉丝,不过还有是很多人则选择了微软。让我们回到檀香山的销售会议上,在同一场活动中,乔布斯向观众展示了他即将发布的超级碗广告,你可能已经亲眼见过这则广告了。想想 乔治·奥威尔 George Orwell 的 《一九八四》。在这个冰冷、灰暗的世界里,无意识的机器人正在独裁者投射的凝视下徘徊。

00:07:00 - Saron Yitbarek: 这些机器人就像是 IBM 的用户们。然后,代表苹果公司的,漂亮而健美的 安娅·梅杰 Anya Major 穿着鲜艳的衣服跑过大厅。她向着大佬们的屏幕猛地投出大锤,将它砸成了碎片。老大哥的咒语解除了,一个低沉的声音响起,苹果公司要开始介绍麦金塔了。

配音: 这就是为什么我们的 1984 年,跟小说《一九八四》描写的不一样。

00:07:30 - Saron Yitbarek: 是的,现在回顾那则广告,认为苹果是一个致力于解放大众的自由斗士的想法有点过分,但这件事触动了我的神经。Ken Segal 曾在为苹果制作这则广告的广告公司工作过,他为史蒂夫·乔布斯工作了十多年。

00:08:00 - Ken Segal: 1984 这则广告的负担的风险很大。事实上,它的风险实在太大,乃至苹果公司在看到它的时候都不想播出它。你可能听说了史蒂夫喜欢它,但苹果公司董事会的人并不喜欢它。事实上他们很愤怒,为什么这么多钱被花在这样一件事情上,以至于他们想解雇广告代理商。史蒂夫则为我们公司辩护。

Saron Yitbarek: 乔布斯一如既往地,慧眼识英雄。

Ken Segal: 这则广告在公司内、在业界内都引起了共鸣,成为了苹果产品的代表。无论人们那天是否有在购买电脑,它都带来了一种持之以恒的影响,并让大家在心里定义了这家公司的立场:我们是叛军,我们是拿着大锤的人。

00:08:30 - Saron Yitbarek: 因此,在争夺数十亿潜在消费者心智的过程中,苹果公司和微软公司的帝王们正在学着把自己塑造成救世主、非凡的英雄,选择自己就是选择一种生活方式。但比尔·盖茨明白一些苹果难以理解的事情,那就是在一个相互连接的世界里,没有人 —— 即便他是帝王,能独自完成任务。

00:09:00 - Saron Yitbarek: 1985 年 6 月 25 日。盖茨给当时的苹果 CEO John Scully 发了一份备忘录。那是一个迷失的年代。乔布斯刚刚被逐出公司,直到 1996 年才回到苹果。也许正是因为乔布斯离开了,盖茨才敢写这份东西。在备忘录中,他鼓励苹果授权制造商分发他们的操作系统。我想读一下备忘录的最后部分,让你们知道这份备忘录是多么的有洞察力。

00:09:30 - Saron Yitbarek: 盖茨写道:“如果没有其他个人电脑制造商的支持,苹果现在不可能让他们的创新技术成为标准。苹果必须开放麦金塔的架构,以获得个人建造商的支持来快速发展和建立标准。”换句话说,你们不要再自己玩自己的了。你们必须有与他人合作的意愿。你们必须与开发者合作。

00:10:00 - Saron Yitbarek: 多年后你依然可以看到这条思想的哲学性,当微软首席执行官 史蒂夫·鲍尔默 Steve Ballmer 上台做主题演讲时,他开始大喊:“开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者。”你懂我的意思了吧。微软喜欢开发人员。虽然目前(LCTT 译注:本播客发布于 2018 年初)他们不打算与这些开发人员共享源代码,但是他们确实想建立起整个为合作伙伴服务的生态系统。

00:10:30 - Saron Yitbarek: 而当比尔·盖茨建议苹果公司也这么做时,如你可能已经猜到的,这个想法被苹果公司抛到了九霄云外。他们的关系产生了间隙,五个月后,微软发布了 Windows 1.0。战争开始了。

开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者、开发者。

00:11:00 - Saron Yitbarek: 你正在收听的是来自红帽公司的原创播客《代码英雄》。本集是第一集,我们将回到过去,重温操作系统战争的史诗,我们将会发现,科技巨头之间的战争,是如何为我们今天所生活的开源世界开辟前路的。

00:11:30 - Saron Yitbarek: 好的,让我们先来个背景故事吧,它很经典。如果你已经听过了,那么请原谅我。当时是 1979 年,史蒂夫·乔布斯开车去 帕洛阿尔托 Palo Alto 施乐公园研究中心 Xerox Park research center 。那里的工程师一直在为他们所谓的图形用户界面,开发一系列的元素。也许你听说过,它们有菜单、滚动条、按钮、文件夹和层叠的窗口。这是对计算机界面的一个前所未有的美丽新设想。作家兼记者 Steve Levy 谈到了它的潜力。

00:12:00 - Steven Levy: 这个新界面有很多令人感到激动的地方,它比以前的交互界面更友好,以前用的交互界面被称为命令行 —— 这不是在现实生活中使用的交互方式。鼠标和电脑上的图像,让你可以像指向现实生活中的东西一样,指向电脑上的东西。这让事情变得简单多了,你不需要记住那些代码。

00:12:30 - Saron Yitbarek: 不过,施乐的高管们并没有意识到他们正坐在金矿上。一如既往地,工程师比主管们更清楚它的价值。因此那些工程师,在被要求向乔布斯展示这些东西是如何工作时,有点紧张。然而这毕竟是高管的命令。用乔布斯的话来说,他认为“这个天才产品本来能够让施乐公司垄断整个行业,可是它最终会被公司的经营者毁掉,因为他们对产品的好坏没有概念。”

00:13:00 - Saron Yitbarek: 这话有些苛刻,但是,乔布斯带着一卡车施乐高管忽视的想法离开了会议。这几乎包含了所有,他革新桌面计算体验需要的东西。1983 年,苹果发布了 Lisa 电脑,1984 年又发布了 Mac 电脑。这些设备的创意都是抄袭自施乐公司的。

00:13:50 - Saron Yitbarek: 让我感兴趣的是,乔布斯对控诉他偷了图形用户界面的反应。他对此很冷静,他引用毕加索的话:“好的艺术家抄袭,伟大的艺术家偷窃。”他告诉一位记者,“我们总是无耻地窃取伟大的创意。”伟大的艺术家偷窃,好吧,我的意思是,我们说的并不是严格意义上的“偷窃”。没人拿到了专有的源代码并公然将其集成到他们自己的操作系统中去。这事情更温和些,更像是创意的借用。但乔布斯自己即将学到,这东西很难以控制。传奇的软件奇才、真正的代码英雄 Andy Hertzfeld 就是麦金塔开发团队的最初成员。

00:14:00 - Andy Hertzfeld: 是的,微软是麦金塔电脑软件的第一个合作伙伴。当时,我们并没有把他们当成是竞争对手。他们是苹果之外,我们第一家交付麦金塔电脑原型的公司。我通常每周都会和微软的技术主管聊一次,他们是第一个试用我们所编写软件的外部团队。

00:14:30 - Andy Hertzfeld: 他们给了我们非常重要的反馈,总的来说,我认为我们的关系非常好。但我也注意到,在我与技术主管的交谈中,他开始问一些系统实现方面的问题,而他本无需知道这些,我觉得他们想要复制麦金塔电脑。我很早以前就向史蒂夫·乔布斯反馈过这件事,但在 1983 年秋天,这件事发展到了高潮。

00:15:00 - Andy Hertzfeld: 我们发现,他们在 1983 年 11 月的 COMDEX 上发布了 Windows,但却没有提前告诉我们。对此史蒂夫·乔布斯勃然大怒,他认为那是一种背叛。

00:15:30 - Saron Yitbarek: 很明显,微软从苹果那里学到了,苹果从施乐那里学来的所有想法。随着新版 Windows 的发布,乔布斯变得很易怒。他发表的伟大艺术家善于偷窃的毕加索名言被别人学去了 —— 盖茨也正是这么做的。据报道,当乔布斯怒斥盖茨偷了他们的东西时,盖茨回应道:“史蒂夫,我觉得这更像是我们都有一个叫施乐的富有邻居,我闯进他家偷电视机,却发现你已经偷过了”。苹果最终以窃取 GUI 的外观和风格为名起诉了微软。这个案子持续了好几年,但是在 1993 年,第 9 巡回上诉法院的一名法官最终站在了微软一边。

00:16:00 - Saron Yitbarek: Vaughn Walker 法官宣布外观和风格不受版权保护,这是非常重要的事情。这一决定让苹果再无法垄断桌面计算的界面。很快,苹果短暂的领先优势消失了。以下是 Steven Levy 的观点。

00:16:30 - Steven Levy: 他们之所以失去领先地位,不是因为微软方面窃取了知识产权,而是因为他们无法巩固自己在上世纪 80 年代就拥有的,更优越的操作系统的优势。坦率地说,他们的电脑索价过高。微软从 20 世纪 80 年代中期开始开发 Windows 系统,但直到 1990 年才开发出来 Windows 3。我想,这算是第一个开启黄金时代的版本,真正可供大众使用。

00:17:00 - Steven Levy: 从此以后,微软能够将数以亿计的用户迁移到图形界面,而这是苹果无法做到的。虽然苹果公司有一个非常好的操作系统,但是那已经是 1984 年的产品了。

00:17:30 - Saron Yitbarek: 现在微软主导着操作系统的战场。他们占据了 90% 的市场份额,并且针对各种各样的个人电脑进行了标准化。操作系统的未来看起来会由微软掌控。在此后发生了什么?1997 年,波士顿 Macworld 博览会上,你看到了一个几近破产的苹果,一个比之前谦逊得多的史蒂夫·乔布斯走上舞台,开始谈论伙伴关系的重要性 —— 特别是他们与微软的。史蒂夫·乔布斯呼吁双方缓和关系,停止火拼,微软将坐享巨大的市场份额。从表面看,我们可能会认为世界和平了。

00:18:00 - Saron Yitbarek: 但当利益如此巨大时,事情就没那么简单了。就在苹果和微软在数十年的争斗中伤痕累累、最终败退到死角之际,一名 21 岁的芬兰计算机科学专业学生出现了。十分偶然的,他彻底改变了一切。

我是 Saron Yitbarek,这里是代码英雄。

00:18:30 - Saron Yitbarek: 正当某些科技巨头正忙着就专有软件相互攻击时,自由软件和开源软件的新领军者如雨后春笋般涌现。其中一位优胜者就是 理查德·斯托曼 Richard Stallman ,你也许对他的工作很熟悉,他想要拥有自由软件的自由社会。这就像言论自由一样的 自由 free ,而不是像免费啤酒一样的 免费 free 。早在 80 年代,斯托尔曼就发现,除了昂贵的专有操作系统(如 UNIX)外,没有其他可行的替代品,因此他决定自己做一个。斯托尔曼的 自由软件基金会 Free Software Foundation 开发了 GNU,当然,它的意思是 “GNU's not UNIX”。它将是一个像 UNIX 一样的操作系统,但不包含 UNIX 代码,而且所有用户可以自由共享它。

00:19:00 - Saron Yitbarek: 为了让你体会到上世纪 80 年代自由软件概念的重要性,从不同角度来说拥有 UNIX 代码的两家公司, AT&T 贝尔实验室 AT&T Bell Laboratories 以及 UNIX 系统实验室 UNIX System Laboratories 威胁将会起诉任何看过 UNIX 源代码后又创建自己操作系统的人。这些人是次级专利所属。

00:19:30 - Saron Yitbarek: 用这两家公司的话来说,所有这些程序员都在“精神上受到了污染”,因为他们都见过 UNIX 代码。在 UNIX 系统实验室和 伯克利软件设计公司 Berkeley Software Design 之间的一个著名的法庭案例中,有人认为即使它本身没有使用 UNIX 代码,拥有类似功能的系统也侵犯版权。Paul Jones 当时是一名开发人员。他现在是数字图书馆 ibiblio。org 的主管。

00:20:00 - Paul Jones: 他们的观点是,任何看过代码的人,都受到了精神污染。因此,几乎所有在安装有与 UNIX 相关操作系统的电脑上工作过的人,以及任何在计算机科学部门工作的人都受到精神上的污染。在 USENIX 的一年里,我们都得到了一个写着红色字母的白色小别针,上面写着“精神受到了污染”。我们很喜欢带着这些别针到处走,以表达我们曾经跟着贝尔实验室混,所以我们的精神受到了污染。

00:20:30 - Saron Yitbarek: 整个世界都被精神污染了。想要保持纯粹、保持事物的美好,和完整地拥有一个软件的旧思想正变得越来越不现实。正是在这被污染的现实中,历史上最伟大的代码英雄之一诞生了,他是一个芬兰男孩,名叫 林纳斯·托瓦兹 Linus Torvalds 。如果这是《星球大战》,那么林纳斯·托瓦兹就是我们的 卢克·天行者 Luke Skywalker 。他是赫尔辛基大学的一名温文尔雅的研究生。

00:21:00 - Saron Yitbarek: 有才华,但缺乏大志,典型的被逼上梁山的英雄。和其他年轻的英雄一样,他也感到沮丧。他想把 386 处理器整合到他的新电脑中。他对自己兼容 IBM 的电脑上运行 MS-DOS 操作系统并不感冒,也负担不起 UNIX 软件 5000 美元的价格,但只有 UNIX 才能让他自由地编程。解决方案是,托瓦兹在 1991 年春天基于 MINIX 开发了一个名为 Linux 的操作系统内核,他自己的操作系统内核。

00:21:30 - Steven Vaughan-Nichols: 林纳斯·托瓦兹真的只是想找点乐子而已。

Saron Yitbarek: Steven Vaughan-Nichols 是 ZDNet.com 的特约编辑,而且他从科技行业出现以来就一直在写科技行业相关的内容。

Steven Vaughan-Nichols: 当时有几个类似的操作系统。他最关注的是一个名叫 MINIX ,旨在让学生学习如何构建操作系统的项目。林纳斯看到了这些并且觉得这个它很有趣,所以他打算建立自己的操作系统。

00:22:00 - Steven Vaughan-Nichols: 所以,Liunux 实际上始于赫尔辛基的一个 DIY 项目。一切就这样开始了,基本上就是一个大孩子在玩耍,学习如何做些什么。但不同之处在于,他足够聪明、足够执着,也足够友好,能让其他人都参与进来,然后他开始把这个项目进行到底。

00:22:30 - Steven Vaughan-Nichols: 27 年后,这个项目变得比他想象的要大得多。

00:23:00 - Saron Yitbarek: 到 1991 年秋季,托瓦兹发布了 10000 行代码,世界各地的人们开始评头论足,然后进行优化、添加和修改代码。对于今天的开发人员来说似乎很正常,但请记住,在那个时候,微软、苹果和 IBM 已经在系统开发上做得很完善,虽然同时这些软件也是专有的。因此像这样的开放协作操作系统,是对这些公司一种精神上的侮辱,但随后这种开放性被奉上神坛。托瓦兹将 Linux 置于 GNU 通用公共许可证 GPL 之下。曾经保障斯托尔曼的 GNU 系统自由的许可证,现在也将保障 Linux 的自由。Vaughan-Nichols 解释道,GPL 许可基本上能永远保证软件的自由和开放性,它的重要性被怎么强调都不过分。

00:23:30 - Steven Vaughan-Nichols: 事实上,根据 Linux 所遵循的许可协议,即 GPL 第 2 版,如果你想贩卖 Linux 或者向全世界展示它,你必须与他人共享代码。所以如果你对其做了一些改进,仅仅给别人使用打包的代码是不够的,你必须和他们分享这些变化的所有细节代码。然后这些改进足够好时,也许就会被 Linux 所吸收。

00:24:00 - Saron Yitbarek: 事实证明,这种公开的方式极具吸引力。 埃里克·雷蒙德Eric Raymond 是这场运动的早期传道者之一,他在他那篇著名的文章中写道:“微软和苹果这样的公司一直在试图建造软件大教堂,而 Linux 及类似的软件则提供了一个由不同议程和方法组成的巨大集市,集市比大教堂有趣多了。”

Stormy Peters: 我认为在那个时候,真正吸引人们的是 —— 他们终于可以掌控这个属于他们的世界了。

Saron Yitbarek: Stormy Peters 是一位行业分析师,也是自由和开源软件的倡导者。

00:24:30 - Stormy Peters: 当开源软件第一次出现的时候,所有的操作系统都是专有的。如果不使用专有软件,你甚至不能添加打印机,不能添加耳机,不能自己开发一个小型硬件设备,然后让它在你的笔记本电脑上运行。你甚至不能放入 DVD 并复制它,因为你不能改变软件,即使你拥有这张 DVD,你也无法改变它的内容。

00:25:00 - Stormy Peters: 你无法掌控你购买的硬件 / 软件系统。你不能从中创造出任何新的、更大的、更好的东西。这就是为什么开源操作系统在一开始就如此重要。我们需要一个开源协作环境,在那里我们可以构建更大更好的东西。

00:25:30 - Saron Yitbarek: 请注意,Linux 并不是一个纯粹的平等乌托邦。林纳斯·托瓦兹并没有负责批准所有对内核的修改,但他主导了内核的变更。他安排了十几个人来管理内核的不同部分。这些人也会信任自己下面的人,以此类推,形成信任金字塔。变化可能来自任何地方,但它们都经过了判断和策划。

00:26:00 - Saron Yitbarek: 然而,考虑到到林纳斯的 DIY 项目一开始是多么的简陋和随意,这项成就令人十分惊讶。他完全不知道自己就是这一切中的卢克·天行者。当时他已经编程了半辈子,但当时只有 21 岁。不过当魔盒第一次被打开时,人们开始给他反馈。几十个,然后几百个,成千上万的贡献者。有了这样的众包基础,Linux 很快就开始成长,而且成长得很快,甚至最终引起了微软的注意。他们的首席执行官 史蒂夫·鲍尔默 Steve Ballmer 将 Linux 称为是“一种癌症,从知识产权的角度来看,它传染了任何它接触的东西”。Steven Levy 将会描述 Ballmer 的立场。

00:26:30 - Steven Levy: 一旦微软真正巩固了它的垄断地位 —— 而且它也确实被联邦法院判定为垄断,他们将会对任何可能对其构成威胁的事情做出强烈反应。它们很自然的将自由软件看成是一种癌症,因为微软要通过软件来赚钱。他们试图提出一个知识产权理论,来解释为什么开源对消费者不利。

00:27:00 - Saron Yitbarek: Linux 在不断传播,微软也开始担心起来。到了 2006 年,Linux 成为仅次于 Windows 的第二大常用操作系统,约有 5000 名开发者在世界各地开发它。5000 名开发者!还记得比尔·盖茨给苹果公司的备忘录吗?在那份备忘录中,他向苹果公司的员工们论述了与他人合作的重要性。事实证明,开源将把伙伴关系的概念提升到一个全新的水平,这是比尔·盖茨从未预见到的。

00:27:30 - Saron Yitbarek: 我们一直在谈论操作系统之间的大战,但是到目前为止,无名英雄和开发者们还没有完全介入战场。在下集中,情况就不同了。第二集讲的还是操作系统大战,关于 Linux 崛起的第二部分。资本们醒悟过来,认识到了开发人员的重要性。

00:28:00 - Saron Yitbarek: 这些开源反叛者变得越来越强大,战场从桌面转移到了服务器领域。这里有商业间谍活动、新的英雄人物,还有科技史上最不可思议的改变。这一切都在操作系统大战的后半集内达到了高潮。

00:28:30 - Saron Yitbarek: 要想免费自动获得新一集的代码英雄,请点击订阅苹果播客、Spotify、Google Play,或其他应用获取该播客。在这一季剩下的时间里,我们将参观最新的战场,相互争斗的版图,这里是下一代的代码英雄留下印记的地方。更多信息,请访问 https://www.redhat.com/en/command-line-heroes 。我是 Saron Yitbarek,在下次节目之前,请坚持编程。

什么是 LCTT SIG 和 LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。也欢迎更多贡献者加入 LCRH SIG :</article-12436-1.html>

关于重制版

本系列第一季的前三篇我们已经发布过,这次根据新的 SIG 规范重新修订发布。


via: https://www.redhat.com/en/command-line-heroes/season-1/os-wars-part-1

作者:redhat 选题:lujun9972 译者:lujun9972 校对:acyanbird

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

随着业务的现代化和规模化,Kubernetes 和其背后的云原生成为如今软件系统的唯一选择。而对于众多的开发者来说, Kubernetes 并不是一个简单的问题,使用 Kubernetes 意味着需要理解 Kubernetes 背后的众多概念,你需要理解 Kubernetes 背后复杂的一套生态。但,对于一个企业来说,业务才是核心,Kubernetes 对于企业来说,更多只是一个基础设施,这个基础设施很重要,不得不有,但又无法产生价值,企业不会投入太多精力

在这种情况下,选择使用开源社区提供的发行版和各种管理工具,就成为一个并不经济的选项。对于企业来说,找到一个可以以最低心智负担接入的 Kubernetes 服务,才是最佳选择。相比于社区的众多发行版,Amazon EKS 屏蔽了 Kubernetes 底层的基础设施的部分,将 Worker 层面的工作保留给用户,既可以给予用户一定的自由,同时又可以让用户可以无痛的从传统架构切换至云原生架构上。

对于企业而言,Amazon EKS 服务,可能是一个最佳的选择。

做一个敢于承诺 SLA 的 Kubernetes 服务

和很多 Kubernetes 服务/开源软件不同,Amazon 的 EKS 服务主打的是一个高度可用、可扩展且安全的 Kubernetes 服务,并且,EKS 承诺,为客户提供了 99.95% 的可用性,让自己的客户可以安全高效的运转业务。在众多 Kubernetes 服务中,敢于提出向企业承诺可用性保障的 Kubernetes 服务,Amazon 是其中之首。这让 Amazon EKS 脱颖而出。

EKS 工作模式

Amazon EKS 通过托管控制平面节点,尽可能的降低用户在维护整个集群的成本。在使用 Amazon EKS 后,企业只需要维护执行业务所需的 Worker 节点,就可以搞定整个集群的运转。剩下的工作,就交给 AWS 来完成。AWS 为用户提供了一个可以跨多个 AWS 可用区,可扩展且高度可用的控制平面,从而确保无论在什么情况下 Kubernetes API 和 etcd 服务都可以正常运转。从而确保业务的可用性。

不仅如此,Amazon EKS 还通过整合 AWS 的其他业务,诸如 Elastic Load BalancingAWS CloudWatch 等服务,让整个 Kubernetes 集群可以更加动态的完成业务的请求而不会崩溃。

做一个功能强大的 Kubernetes 服务

企业之所以选择 AWS ,很大程度是因为 AWS 为企业提供了足够多的能力支持和足够强大的业务范围,只要你需要,AWS 就可以为你提供相应的服务。

基于用户的需求, AWS 在标准的 Kubernetes 服务的基础之上,引入了对于 AWS 更多能力的支持,包括:

  • 基于 AWS Cloud Map 的服务发现能力
  • 基于 Amazon VPC CNI 的网络能力
  • 基于 AWS IAM 验证器的权限管理能力
  • 基于 Elastic Load Balancing 的负载均衡能力
  • 基于 AWS Fargate 的无服务器计算能力
  • 基于 AWS Outposts 的混合云部署对接能力
  • 给予 AWS CloudTrail 的日志记录能力
  • 给予 AWS CloudWatch 的云监控能力

这些能力源自底层云计算强大实力的能力,非一般的云计算服务商所能比拟的。但,对于企业来说,也正是这些能力,给了企业无限的可能,企业可以放心大胆的拓展自己的业务,而无需担心自己的业务底层出现任何问题,源自于 AWS 多年的云计算研究的底气,非一般的云计算服务商所能比拟的。

做一个开放开源的 Kubernetes 服务

Kubernetes 的强大,源自于其生态链中的各种各样的软件和服务,而一个 Kubernetes 服务想要发挥最强的性能,就离不开和社区的 Kubernetes 服务进行整合,享受到来自社区的种种新能力的接入。

和一般的 Kuberntes 服务相比, Amazon EKS 提供了和上游 Kubernetes 一致的 API,这意味着如果企业希望使用 Kubernetes 生态中的插件或工具,都可以直接无痛接入,从而享受到来自 Kubernetes 社区的赋能。

同时,Amazon EKS 和上游保持一致也使得 Amazon EKS 可以十分轻松的完成 Kubernetes 集群的升级。Amazon EKS 会自动将正在运行的集群更新到最新的 Kubernetes 版本,对于企业来说,无需任何关注,集群就已经完成了整体的升级,让企业的集群可以享受到 Kubernetes 的最新特性。

不仅如此,Amazon EKS 还积极的参与到 Kubernetes SIG 的建设中,并开源出了诸如 CDK8s、FireCracker 这样的项目,来增强 Kubernetes 社区生态,帮助整个 Kubernetes 社区成长。

做一个不仅仅是 Kubernetes 的 Kubernetes 服务

Kubernetes 是云原生的未来,但对于专心于业务的企业来说,Kubernetes 可能还是太重了。如果你使用了 Amazon EKS ,则可以有一个更加简单的方案,就是在 Amazon EKS 基础之上,运行 AWS Fargate,从而将容器使用的成本进一步降低。

从 EKS 到 Fargate,变化的是提供的服务,不变的是让企业可以更加简单、低成本、无负担的切换到更好的基础设施的心态,也正是这样的心态,让 Amazon EKS 基于 Kubernetes ,但有提供了超出 Kubernetes 的服务。

总结

当你需要一个足够好用、足够安全、足够稳定的 Kubernetes 服务时, Amazon EKS 就会成为一个不错的选择;当你希望用尽可能少的精力去维护基础设施,希望将更多的精力投放在业务的研发上时,Amazon EKS 就会成为一个值得你选择的选项。如果你想要试一试 Kubernetes ,那为什么不从 Amazon EKS 开始呢?

我是词典里 “失败” 一词旁边的插图,这就是为什么我擅长我的工作的原因。

我的职称是高级软件工程师,但我最亲近的同事并不这么称呼我。由于我摧毁一切,他们管我叫“樱桃炸弹”(正巧我姓“樱桃”)。我定期会遇到的失败已经可以影响到我们的季度性收益和停机时间。简单的来说,我就是你所听说过的生产灾难:“别动,啥都别做,无论何时何地。”

我的职业生涯始于支持服务台,在那里我写了一些循环,破坏了高端客户的服务器。我曾在没有警告的情况下将生产应用程序关闭了长达八个小时,并且在试图使得情况好转的过程中摧毁了无数个集群,有几次只是因为我打错了字。

我是我们在 Kubernetes 中设有灾难恢复(DR)集群的原因。我是个混乱的工程师,我们有一个应用程序,它的故障恢复计划还从未测试过,而我在没有警告的情况下,就教人们如何快速行动和排除故障。我作为可能失败的最好例子而存在,这实际上是有史以来最酷的事情。

我和消失的 K8s 集群

我的正式职责之一涉及到我们的应用架构。对于任何形式的架构改动,我都要进行代码的编写与测试,看看有什么可能性。近来,据说这成了我老板史诗级的痛苦,这只是轻描淡写。

我们在 Kubernetes 上运行我们的大多数基础架构,Kubernetes 以其弹性著称。尽管有这样的声誉,我还是使得两个集群,好吧,消失了。你可能会好奇我是怎么做到的,很容易,terraform destroy。我们通过 Terraform 以代码的方式管理我们的基础架构,并且不需要任何软件知识就知道 destroy 可做坏事。在你惊慌失措之前,好吧,是开发集群,所以我还活着。

鉴于此,你们肯定会问我为什么还没丢掉饭碗,以及为什么我要写下这些事情。这很好回答:我仍然有工作,是因为我更新的基础架构代码比起起初的代码工作得更好更快了。我写下这些是因为每个人都会经常性地遭遇失败,这是非常非常正常的。如果你没有时不时遭遇失败,我认为你并没有足够努力地学习。

破坏东西并培训人们

你可能还会认为永远不会有人让我去培训任何人。那是最糟糕的主意,因为(就像我的团队开玩笑说的)你永远都不应该做我所做的事情。但是我的老板却让我定期去训练新人。我甚至为整个团队提供使用我们的基础设施或代码的培训,教人们如何建立自己的基础设施。

原因是这样的:失败是你迈向成功的第一步。失败的教训绝不只是“备份是个绝佳的主意”。不,从失败中,你学会了更快地恢复、更快地排除故障并且在你工作中取得惊人的进步。当你在工作中变得惊人的时候,你就可以培训其他人,教给他们什么事情不要做,并且帮助他们去理解一切是如何工作的。由于你的经验,他们会比你开始时更进一步 —— 而且他们也很可能以新的、惊人的、史诗般的方式失败,每个人都可以从中学到东西。

你的成功取决于你的失败

没有人生来就具有软件工程和云基础架构方面的天赋,就像没有人天生就会走路。我们都是从滚动和翻爬开始的。从那时起,我们学会爬行,然后能够站立一会儿。当我们开始走路后,我们会跌倒并且擦伤膝盖,撞到手肘,还有,比如像我哥哥,走着走着撞上桌子的尖角,然后在眉毛中间缝了针。

凡事都需要时间去学习。一路上阅读手边能获得的一切来帮助你,但这永远只是个开始。完美是无法实现的幻想,你必须通过失败来取得成功。

每走一步,我的失败都教会我如何把事情做得更好。

最终,你的成功和你累积的失败一样多,这标志着你成功的程度。


via: https://opensource.com/article/20/3/failure-driven-development

作者:Jessica Cherry 选题:lujun9972 译者:JonnieWayy 校对:wxy

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

每周关注开源社区和行业趋势。

我在一家采用开源软件开发模型的企业软件公司任高级产品营销经理,我的一部分职责是为产品营销人员、经理和其他相关人定期发布有关开源社区、市场和业界发展趋势的更新。以下是该更新中我和他们最喜欢的几篇文章。

《随着云原生计算的兴起,它和代码一样在改变文化》

现在是围绕一套云原生计算的共同原则进行行业整合的时候了,因为许多企业已经意识到,他们最初进入云计算的回报有限。国际数据公司去年的一项调查发现,80% 的受访者曾将工作负载从公有云环境遣返到企业内部,平均而言,他们预计在未来两年内将一半的公有云应用转移到私有场所。

分析:在云端的第一次运行主要是大量的“提升和转移”尝试,以提取工作负载并将其投放到云端。第二次运行将涉及更多的工作,以确定转移什么以及如何转移,但随着开发人员对理所当然的事情越来越满意,最终应该会带来更多价值。

《为什么云原生基础设施的自动化是所有参与者的胜利》

开发的圣杯是创建和维护安全的应用程序,产生强大的投资回报率和满意的客户。但如果这种开发不是高效、高速和可扩展的,那么这个圣杯很快就会变得遥不可及。如果你发现自己对当前的基础设施有更高的期望,那么可能是时候考虑云原生了。它不仅可以检查所有这些机器,而且为云原生基础设施进行自动化可以提高效率和结果。

分析:我还要补充一点,如果没有大量的自动化,真正采用云原生方法是不可能的;涉及的移动部件数量太多,不可能用人的头脑来处理。

《Linkerd 案例研究:满足安全要求、减少延迟和从 Istio 迁移》

最后,Subspace 分享了其使用 Linkerd 提供“光速”多人游戏的经验。虽然在超低延迟环境中使用服务网状物起初似乎有悖常理,但 Subspace 发现 Linkerd 的战略使用实际上降低了总延迟 —— 服务网状物是如此轻巧,以至于它增加的最小延迟被它通过可观察性降低的延迟所掩盖。简而言之,Linkerd 的这一独特用例使 Subspace 在运营结果上获得了巨大的净收益。阅读完整的用户故事

分析:我听说过这样一个观点:你并不能真正降低一个系统的复杂性,你只是把它抽象化,改变它的接触对象。似乎对延迟也有类似的观察:如果你仔细选择你接受延迟的地方,你可以因此减少系统中其他地方的延迟。

一位高层管理人员解释了 IBM 的“重要支点”,以赢得开发者、初创企业和合作伙伴的青睐,这是其从微软等竞争对手手中赢得混合云市场计划的一部分

蓝色巨人正在转向一个新的战略,专注于建立一个由开发者、合作伙伴和初创公司组成的生态系统。“我们的服务组织无法接触到所有客户。获取这些客户的唯一方法是激活一个生态系统。”

分析:越来越多的公司开始接受这样的理念:有些客户的问题,他们没有帮助就无法解决。也许这可以减少从每个单独客户身上赚到的钱,因为它扩大了更广泛地参与更多问题空间的机会。

希望你喜欢这个列表,下周再见。


via: https://opensource.com/article/20/7/cloud-native-expanding-and-more-industry-trends

作者:Tim Hildred 选题:lujun9972 译者:wxy 校对:wxy

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