分类 观点 下的文章

昨天,一名推特用户“EmacsTW”发布了一条新的推文,告诫希望使用 Emacs 的人放弃 Emacs,转用一些现代化的编辑器比如 VSCode。

一时间,技术圈炸了锅,尤其是在 Emacs 用户群体,大家议论纷纷:

  • “中出了个叛徒”
  • “什么鬼?虽然我现在 VSCode 用的也比 Emacs 多,但说 Emacs 害人有点过了”
  • “哼哼哼… VSCode 又不能煮咖啡、不能玩遊戲”
  • “哈哈哈哈太突然了。作为一个 Emacs 使用者觉得他说的很有道理,我也从来不向他人推荐 Emacs,太浪费时间了。”
  • “我司如果只看 Vim vs. Emacs 的话,Vim 完胜,但是大部分还是 VSCode……”

一个 Emacs 忠实粉丝眼中的 Emacs 背刺事件

由于笔者本人并不是 Emacs 的粉丝(Vim 更合我的口味,XD),所以我去采访了 LCTT 翻译组内的 Emacs 铁粉,我们的选题负责人 DarkSun(lujun9972),问一问他的看法。

当我问起这个背刺的事件时,DarkSun 给我的第一个反应是:

欢迎背叛,舒服就成

在我表现出了不解之后,DarkSun 又进一步详细的解释了一下他的意思:

我觉得如果只是把 Emacs 当成写代码的工具,那真的不如用 IDE 了。

我把 Emacs 当成是工具信息交流的平台,类似终端那样的东西。Emacs 插件可以看成是 UNIX 工具,它们之间可以通过文本或 lisp 对象进行交流,只不过 Emacs 可以比普通终端更方便的利用这些文本(谁让它本来就是编辑器呢)。 举个例子说,我可以用 Emacs 看 PDF 文档,然后看到不懂的单词可以用有道词典进行翻译,翻译的结果可以直接存到 Anki 里当做背单词的素材。在这个过程中,Emacs 本身起的是信息交流平台的作用,至于解释 PDF、请求有道翻译,请求 anki 添加卡片都是由第三方程序或第三方的包来实现的。

一百个人有一百零一种使用 Emacs 的方法,我想 Emacs 的这种多样性才是其魅力所在吧。

在看了他对 Emacs 的理解以后,再联想到“Emacs煮咖啡”的梗,我对他的话深以为然。

Emacs 是什么?
目前我们所熟悉和使用的 Emacs 是由自由软件领袖 Richard Matthew Stallman (RMS)于 1984 年开发的,并维护至 2008 年。

Emacs 追求大的哲学,它希望在一个编辑器中去完成所有的功能,希望用户只需要借助快捷键与无处不在的宏,就可以完成任何事情,也正因为如此,Emacs 常常被戏称为“被误以为编辑器的操作系统”,而不是一个编辑器。

新旧技术的更迭

不可否认,近年来 VSCode 的良心功能和 Sublime Text 3 的舒适好用,使得越来越多的人开始使用这些现代化的开发工具。而对于一些比较重型的语言(比如 C/C++、Java、Golang 等),会借助 IDE 来完成开发的工作。

对于 Emacs 这样一个似乎是文本编辑器但好像又不是文本编辑器的工具来说,现代化的开发工具显然更能获取年轻人的喜爱。

不过,如果可以,我更希望说 “Emacs 不是一个工具,而是代表了一种生活方式”,在 Emacs 里,你可以完成任何事情,它就好像融入你的生活一般,改变了你的生活。从这个层面来看,Emacs 无人能敌。

被钉在耻辱柱上的社群背叛者 —— azazabc123

抛开 Emacs 和 VScode 的孰优孰劣不谈,就该推特维护者本身的行为来说,这是一种非常不妥的行为,这让 Emacs TW 社群蒙羞于整个技术社群。这种公器私用毫无疑问是背叛了整个社群,作为社群对外窗口的维护者,发布一条与本社群背道而驰的内容难免会让人觉得不妥。而且,这种行为使得对于 Emacs 的背叛行为从个人行为上升到了群体行为,Emacs TW 中的其他人是否同意这样的行为,还不甚明了——但笔者对该社团的管理能力和未来的前途不报什么期望。

笔者非常不支持这种公器私用的行为,固然其可能存在一定的吐槽、任性的想法,但对于整个社群而言,这种无脑行为只会损伤社群整体的信用度,也降低了对其个人的品行评价。

英雄迟暮?

诞生于 1984 年的 Emacs,迄今已经走过了 35 个年头。Emacs 从曾经的风头正劲,到如今已经略显包罗庞杂。不过,虽然经过了这么多年发展,Emacs 已经足够好用,但依然在坚持不断地更新。在刚刚过去的四月份,Emacs 发布了它的 26.2 版本。

Emacs 依然好用,但时代已经变了,对于如今的 Hacker 们,工具不是最重要的,工具所产生的价值要更加重要。在这种观念下,学习成本极高的 Emacs 难免不受欢迎,简单易用易上手的 VSCode、Sublime 就成为了必然的选择。

但无论如何,虽然我们欢迎新技术,也拥抱新变化,但是该推特维护者的这种让社区蒙羞的行为,依然让我们非常遗憾,表以谴责。

一份 Informa Engage 和 Data Center Knowledge 的报告调查发现,在数据中心工作的人很满意他们的工作,因此他们将会鼓励他们的孩子从事这份工作。

Thinkstock

一份由 Informa Engage 和 Data Center Knowledge 主导的调查报告显示,数据中心的工作者总体上对他们的工作很满意。尽管对时间和大脑的要求很高,但是他们还是鼓励自己的孩子能从事这项工作。

总体满意度非常好,72% 的受访者普遍同意“我喜欢我目前的工作”这一说法,三分之一的受访者则表示非常同意。75% 的人同意声明,“如果我的孩子、侄女或侄子问,我将建议他们进入 IT 行业。”

在数据中心工作的员工之中,有一种很重要的感觉,88% 的人觉得他们自己对于雇主的成功非常重要。

尽管存在一些挑战,其中最主要的是技能和认证的缺乏。调查的受访者认为缺乏技能是最受关注的领域。只有 56% 的人认为他们需要完成工作所需的培训,74% 的人表示他们已经在 IT 行业工作了十多年。

这个行业提供认证计划,每个主要的 IT 硬件供应商都有,但是 61% 的人表示在过去的 12 个月里他们并没有完成或者重新续订证书。有几个原因:

三分之一(34%)说是由于他们工作的组织缺乏培训预算,而 24% 的人认为是缺乏时间,16% 的人表示管理者认为不需要培训,以及另外 16% 的人表示在他们的工作地点没有培训计划。

这并不让我感到惊讶,因为科技是世界上最开放的行业之一,在那里你可以找到培训和教育材料并自学。已经证实了许多程序员是自学成才,包括行业巨头比尔·盖茨、史蒂夫·沃兹尼亚克、约翰·卡马克和杰克·多尔西。

数据中心工作者们的薪水

数据中心工作者不会抱怨酬劳。当然,大部分不会。50% 的人每年可以赚到 $100,000 甚至更多,然而 11% 的人赚的少于 $40,000。三分之二的受访者来自于美国,因此那些低端收入人士可能在国外。

有一个值得注意的差异。史蒂夫·布朗是伦敦数据中心人力资源的总经理,他说软件工程师获得的薪水比硬件工程师多。

布朗在这篇报道中说,“数据中心软件工程方面的工作可以与高收入的职业媲美,而在物理基础设施——机械/电气方面的工作——情况并非如此。它更像是中层管理。”

数据中心的专业人士仍然主要是男性

最不令人惊讶的发现?10 个受访者中有 9 个是男性。该行业正在调整解决性别歧视问题,但是现在没什么改变。

这篇报告的结论有一点不太好,但是我认为是错的:

“随着数据中心基础设施完成云计算模式的过渡,软件进入到容器和微服务时代,数据中心剩下来的珍贵领导者——在 20 世纪获得技能的人——可能会发现没有任何他们了解的东西需要管理,也没有人需要他们领导。当危机最终来临时,我们可能会感到震惊,但是我们不能说我们没有受到警告。"

我说过了很多次,数据中心不会消失


via: https://www.networkworld.com/article/3389359/most-data-center-workers-happy-with-their-jobs-despite-the-heavy-demands.html

作者:Andy Patrizio 选题:lujun9972 译者:arrowfeng 校对:wxy

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

二月初春,在西子湖畔的细雨中,我拜访了蚂蚁金服中间件团队,和 SOFA 技术负责人鲁直做了一次深入交谈,更妙的是,鲁直也是负责 SOFA 开源事务推进的人,而这样一个切实践行开放核心模式的开源项目,也正是我非常感兴趣的。

两个技术人的谈话,自然是朴实而直白的,话题主要围绕着 SOFA 和开源主题展开,希望也能一样引起同是技术人的你的共鸣。

人物介绍

受访者:鲁直,蚂蚁金服 SOFA 开源负责人。

采访者:老王,开源布道人,有 20 年互联网从业经历的技术老兵。

虽然我和鲁直在微信上已经联系很久了,但这还是第一次见面。交谈中,我了解到鲁直是 2009 年加入阿里巴巴工作,已经有十年了。刚开始是在 1688.COM 做业务系统,对中间件技术非常感兴趣,也会经常研究各种中间件的实现和功能。后来在 2013年时,为了更深入地学习研究中间件框架,转到了蚂蚁金服中间件团队,从那个时候开始就一直在做 SOFA。

目前鲁直在 SOFA 的团队主要负责的工作包括几个部分。其中一个主要部分就是 SOFA 开源相关的工作。SOFA 的产品体系非常广,包括已经对外开源的部分、内部整个微服务体系,以及 SOFA 框架等等——而这些开源相关的工作主要是由鲁直负责推动的。

当然,作为技术负责人,鲁直既要带技术团队也要做技术工作。谈及这一点,鲁直说:

“我觉得做技术管理,跟普通的管理不太一样,因为技术管理最重要的一个点是除了管理之外,还要保持一定的技术判断力和敏锐度。对一些新技术,包括团队中遇到一些重大的技术问题,你都要有一些方向性的判断。虽然最后不一定是你具体解决的,但是在整个团队的技术攻坚和技术选型上,要一起确立方向。”

我以前也做过十余年的技术管理,我很能够感受这种情况,重大问题技术负责人更要迎难而上。

SOFA 5 落子 Service Mesh

就我了解的情况,现在 SOFA 已经发展到了 SOFA5 了。在 SOFA4 阶段,主要的任务是将开源体系捋清楚了,然后开始按步骤地开源;到现在发展到了 SOFA5。我想知道从 SOFA4 发展到 SOFA5,是什么让蚂蚁金服中间件团队判断 SOFA4 的阶段性目标已经达成,可以迈进到新的 SOFA5 阶段了呢?

“从整个业界趋势上来讲,SOFA4 的架构相对来说还是偏传统一些,更多是对我们之前的技术框架的整理和梳理。在这个阶段,SOFA 的代码经过了非常多的优化和重构,才达到了对外开源的要求,从而 SOFA 走上了开源核心的模式,逐步分阶段的将各个部分进行了开源。”鲁直讲到,“但是,从我们对业界的整体判断上来说,未来无疑是云的时代,所以说要考虑怎么让所有的业务系统能够提供云的能力,比如说 Serverless。”

接着这个话题,鲁直讲了他对云计算的理解:“一方面云计算肯定要为整个业务的发展提供更加方便的基础资源,可以不用去关心底层的基础设施。Serverless 字面的意思就是说‘无服务器’——我不用关心服务器怎么来的,不用关心基础设施,只要关心业务代码就可以了。那反过来对于云服务商来说,经过了这一层抽象,其资源利用率会更高,可以有更多的利润空间,这是一个双赢的局面。对于用户来讲,这种好处是实实在在的,可以更少关注基础设施,只关心代码就可以了。

“我们希望在 SOFA5 的方向上,在这个新的迭代中,去让业务——包括让未来我们开源出来各种功能、各样服务模式——都更多地去关心自己的业务代码,而不用再过多地关心基础设施。”鲁直说。

在 SOFA5 中,一个重要的方向就是 Service Mesh 这个方向,这将是 SOFA5 中非常重要的特性。鲁直强调了其对 Service Mesh 技术的看好:“我认为 Service Mesh 是迈向未来往前走的非常关键的一步,让业务不用再关心基础设施。通过 Service Mesh,我们可以将很多技术能力直接放到基础设施里面,而业务可以不用感知到这一层。原来可能需要花几个小时或者更多的时间解决的基础设施问题,现在可以通过 Service Mesh 解决掉。”

“目前我们我们已经在生产环境中应用了 Service Mesh。我们在这方面有非常大的决心,我们希望能够在今年,在更大的范围中去落地 Service Mesh。当前这个阶段更聚焦在这种技术的内部落地上,希望用好了,再给社区做更多的贡献。”

Service Mesh 这个词最早是由开发 Linkerd 的 Buoyant 公司于 2016 年提出的,随着 Linkerd 的传入,Service Mesh 也进入国内技术社区的视野。Service Mesh 也被翻译为“服务网格”。Linkerd 则是业界第一个 Service Mesh。

Service Mesh 是一个基础设施层,用于处理服务间通信,负责实现请求的可靠传递。在实践中,服务网格通常实现为轻量级网络代理,通常与应用程序部署在一起,但是对应用程序透明。

Service Mesh 的部署模型,有两种情况:

  • 对于一个简单请求,作为请求发起者的客户端应用实例,会首先用简单方式将请求发送到本地的 Service Mesh 实例。这是两个独立进程,它们之间是远程调用。Service Mesh 会完成完整的服务间调用流程,如服务发现负载均衡,最后将请求发送给目标服务。这就是 Sidecar,它在原有的客户端和服务端之间加多了一个代理。
  • 多个服务调用的情况,Service Mesh 出现在所有的服务的下面,这一层被称之为服务间通讯专用基础设施层。Service Mesh 会接管整个网络,把所有的请求在服务之间做转发。在这种情况下,上面的服务不再负责传递请求的具体逻辑,只负责完成业务处理。服务间通讯的环节就从应用里面剥离出来,呈现出一个抽象层。

如果有大量的服务,Sidecar 之间的连接就会形成一个网络,这个就是服务网格名字的由来。

“我们将以 Service Mesh 为跳板再往前走。”鲁直表示,“Serverless 更多的还是应该聚焦在其字面本身,其含义就是‘无服务器’,后面的技术都是为了让无服务器承载具体的业务。

Serverless 这个概念虽然提出来已经有几年了,目前 AWS 在 Serverless 和 FaaS 方面处于比较前沿的位置,但是在国内,Serverless、FaaS 这些技术的发展还是相对比较滞后。

鲁直指出,“我觉得 Serverless 想要成功,还是要从覆盖业务的整个广度上打开,否则可能还是停留在 FaaS 上,那场景就比较受限。”

Service Mesh 将是微服务的下一个时代,关于它还在持续进行理论研究和实践探索。

鲁直说:“坦白来讲,我觉得 istio 的理念非常好,但是在整个工程设计上,如果放到蚂蚁金服这样体量较大的环境里面,可能跑起来还需要做一些工作。我们希望今年 Service Mesh 在蚂蚁金服有了更大规模落地之后,可以把我们在 Service Mesh 方面的一些实践经验用到产品环境的工程中去实践,然后贡献出去。目前更多的一些工作,是将整个体系上进一步完善,铺到更多业务上,然后将这些经验反哺到整个 Service Mesh 的设计上,让它走的更远。”

也就是说,蚂蚁金服在 Service Mesh 上跟 istio 的技术路线是一致的,但是会从工程的角度更多地推动它的发展。

我们希望能够在我们进行了生产验证之后,再慎重地推送给开源社区。这也是蚂蚁做开源贡献的一贯理念。

鲁直:“我们希望能够在我们进行了生产验证之后,再慎重地推送给开源社区。这也是蚂蚁做开源贡献的一贯理念——我们希望一个东西经过了内部一段时间的成熟之后,再去开源。经过了大规模的内部验证之后,它的稳定性上有了一定的保障,就贡献给外部社区使用,再去拓展更多一些使用场景,包括完善和解决一些之前没有遇到一些问题。”

合力 Seata 分布式事务框架

2007 开始,蚂蚁金服自主研发了分布式事务中间件 XTS,在内部广泛应用并解决金融核心场景下的跨数据库、跨服务数据一致性问题,最终以 DTX 的云产品化展现并对外开放。而与此同时,阿里巴巴中间件团队发布 TXC,为集团内应用提供分布式事务服务,经过多年的技术沉淀,于 2016 年产品化改造为 GTS,通过阿里云解决方案在众多外部客户中落地实施。

2019 年 1 月,基于技术积累,阿里巴巴中间件团队发起了开源项目 Fescar,蚂蚁金服也开源了自己的分布式事务框架,并与 Fescar 合并一起共建分布式事务解决方案。这个发展既在情理之中,也在意料之外,我确实好奇这期间发生了什么,是如何和 SOFA 中间件团队的发展结合的,他们下一步会有什么计划?

鲁直说:“分布式事务是蚂蚁金服在 2007 年做的创新,是基于 TCC 原理,我们在内部实现了这个模式。TCC 理论相对还是比较简单的,但是它要落地,需要花费比较长的工程实现上的打磨才行。分布式事务这个技术在蚂蚁金服已经走过了 12 年的时间了。在蚂蚁金服最核心一些业务上,包括支付、交易、账务等等系统都在使用这套分布式事务框架解决和孵化的。”

在分布式事务这一块领域上,在业界来看目前相对来说比较空白,还没有非常好的分布式事务框架。说起来合并的初衷,鲁直表示,“既然阿里巴巴和蚂蚁金服都在这个方向做了一些开源的工作,所以我们把这两个部分的努力结合起来,取长补短,以适用于更多的分布式事务业务场景,蚂蚁金服加入 Seata 社区共建,在 Seata 0.4.0 版本中加入了 TCC 模式,为大家提供一个更加宽泛的分布式事务的解决方案。”

具体来说,“阿里巴巴的 Seata 提供是 AT 模式,对业务来说,不用有太多感知,但是它覆盖的场景有限,如果可以接受这样的情况,用 AT 模式更好。而蚂蚁金服因为有更强的金融方面的要求,就需要采用 TCC 模式,业务接入成本更高,但是它能做到非常好的分布式执行。未来还会提供像 XA 这样的模式,去适应更宽泛业务场景,这在这一块上,蚂蚁金服和阿里巴巴会结合在一起提供一个融合的框架。”

Seata 为解决微服务架构下的分布式事务问题交出了一份与众不同的答卷。而 Seata 的愿景是让分布式事务的使用像本地事务的使用一样简单和高效,希望可以让 Seata 适用于所有的分布式事务场景。

如何做开源

作为开源核心模式的项目,我希望了解蚂蚁金服中间件的开源一般会做哪些工作,是否有比较完善的流程和规则?

“首先,最基础的肯定是代码,并提供对应的示例,然后我们会提供贡献者指南这样的指引文档,因为本质上我们希望打造成一个开源社区,社区的参与度对我们来说是非常重要的东西,有人会上来提 issue,也有人来解答,有人提功能需求,有人提 PR 等等”,鲁直说。

Linux 中国曾经开发过一个用于测算开源项目活跃度的一个模型,我们认为从过去感性地看一个开源项目是不是活跃,已经开始逐渐进步到通过理性数据评估了,但是这需要排除一些数据作弊的情况,就像之前很多人会用项目的星标数来评估项目的活跃度,这当然很粗糙。我们今年还会继续配合 2019 年度的开源年报,而提供数据支持,到时候我们肯定会给 SOFA 相关的项目做一个考察。希望可以切实地反映出来 SOFA 在开源方面的工作。

从之前的脉络上看,到了 SOFA5,还会继续沿袭开放核心的模式,即:核心部分开源,与本地业务强关联,但是跟核心不是强关联的部分不开源。

从蚂蚁金服自身的实践来看,他们已经切实地践行了开源核心模式。

而对于开源核心模式,有人唱衰,也有人说好,各种观点都有。但从蚂蚁金服自身的实践来看,他们已经切实地践行了开源核心模式,这是我在国内第一个深入了解过的真实落地的开源核心模式项目。

说到开源模式,鲁直表示:“做开源,我觉得首先肯定要做一个心理准备,就是说你要有一个核心部分,再在这个基础上做扩展,在维护的成本上肯定有一定的上升,但是你要接受这样的成本——我觉得这种成本是可以接受的。……项目本身要设计好,具备一定分拆的可能性。如果不具备分拆可能性,那没法做了。像微内核这样的设计方式就会比较适合——就是开源一个核心模块,然后再去扩展,各种模块是可插拔的。”

而对于开源工作是如何做的,鲁直说:“我们没有专门做开源的人,也没有专门做内部代码的人,我们是把这两部分放在一起,既做开源又做内部代码,因为这样一个好处是,既熟悉外部的代码,又熟悉内部的代码,这个边界自己可以把握比较好。我们更多是制定一些规则。比如说跟业务层强相关的部分,你开源出去也没人用;如果说跟业务不相关的,你为什么不开源?因为你开源的这个产品想要做得更好,这些能力开源出去其实没有太大问题,所以一般我们的标准就是看是不是跟内部系统相关,是不是跟业务强相关,如果不相关就可以开源。”

谈话中,鲁直反问的“你为什么不开源?”这句话让我印象深刻。

谈话中,鲁直反问的“你为什么不开源?”这句话让我印象深刻,这其实代表了他们开源的初心,但是从商业者从公司的角度来说,开源有没有给公司带来真正的好处?这不仅仅是情怀的问题,我相信每一个热爱开源的人,其实存在开源情怀或者是更理想化的想法,但是从另一方面来说,无论是从公司的机制上,还是公司的业绩上,开源还是要有实实在在的收益,能够推动公司业务发展才行。作为一个开源项目的负责人,他是怎么感受到开源的好处呢?

对这个问题,显然他有过成熟的思考:

“最直接的好处就是更长效。从眼前看,你的名声出去了招聘是不是也容易找到更合适的人?这是最短期的收益。长期的好处,开源社区里面大家分享了非常多的观点,从实践来看,也是这样。比如说你在一家公司里面去做的话,公司的业务场景是有限的,虽然说蚂蚁金服覆盖了各种各样的业务,金融方面的基本上全覆盖了。但是其他的行业不一定都有,他们遇到这个问题,我们可能并不会遇到,但这些问题可能是未来能够遇到的,如果把一个项目以开源的方式运作,就意味着说,更大的用例场景更容易发现 bug,用的人越多,越有可能会触发这个bug,那对于就是有了进一步完善的可能。

另外,有了这样的一个社区化的发展,有更多人参与进来之后,这个项目可以更快往前发展,而不是只有你自己在。在一家公司里边,团队的人员数量肯定是有限的,而有这么多人来参与,那对于这个项目的往前演进来说有非常大的好处,反过来对公司也会带来更多好处——无论是潜在的还是直接的。

最后,如果你的产品有商业化的支持,比如说其他系统的支撑,也能够更好提供商业化的支持。”

SOFA 开源以来,就我目前了解到的情况,大概已经有 30 家左右的企业用户在使用这套开源框架——就是直接拿开源的部分去用了。当然这主要是国内的用户,那么在国外影响力没有像国内这么大的原因在哪儿呢?是因为我们的项目不够国际化呢,还是知道这个框架的人不够多呢?

鲁直说:“我觉得可能是两方面的原因。一方面,我们的确在国际化方面做的并不是很多,在今年我们会去尝试做更多的国际化工作。另外一方面,更多的是文化方面的差异,大家的思维方式可能不太一样。当然我们会尝试走一下国际化的路线,因为开源本来就是不分国界的。”

进一步,SOFA 在社区治理这方面,“我们希望能够采用和参考 Apache 基金会的方式,这是一个很完善的治理模式,我们会尝试采用这样的方式去社区治理。这对于国际化产品是有很多好处的,它更多强调的是一种治理模式,是不是以社区的方式在运作,是不是在尊重整个社区等等。”鲁直表示,“我们会考虑跟 Apache 基金会、CNCF 进行直接接触,如果合适的话,我们会捐献项目给基金会。如果只是一家商业公司而没有基金会的支持,大家也会有更多的顾虑。把项目捐献给基金会,给大家更多的信心,通过基金会的托管,让更多一些参与方参与,而不只是有蚂蚁金服,大家也会有更大的信心参与进来。”

最后,鲁直希望致语开源社区,“其实蚂蚁金服开源的东西,也不只是 SOFA 中间件框架,未来会开源更多的东西,包括 AI 方面的一些技术,也希望整个社区能够多关注蚂蚁金服在开源上面未来的举措。”

“穿山甲专访”栏目是 Linux 中国社区推出的面向开源界、互联网技术圈的重要领军人物的系列采访,将为大家介绍中国开源领域中一些积极推动开源,谙熟开源思想的技术人,并辨析其思考、挖掘其动因,揭示其背后所发生的事情,为关注开源、有志于开源的企业和技术人标出一条路径。

取名为“穿山甲”寓意有二:取穿山甲挖掘、深入之意来象征技术进步和表征技术领袖的作用;穿山甲是珍稀保护动物,宣传公益。

Netflix 是世界上最受欢迎的流媒体服务之一。对,你已经知道了。但你可能不知道的是 Netflix 使用 FreeBSD 向你提供内容。

是的。Netflix 依靠 FreeBSD 来构建其内部内容交付网络(CDN)。

CDN 是一组位于世界各地的服务器。它主要用于向终端用户分发像图像和视频这样的“大文件”。

Netflix 没有选择商业 CDN 服务,而是建立了自己的内部 CDN,名为 Open Connect

Open Connect 使用自定义硬件:Open Connect Appliance。你可以在下面的图片中看到它。它可以每秒处理 40Gb 的数据,存储容量为 248 TB。

Netflix’s Open Connect Appliance runs FreeBSD

Netflix 免费为合格的互联网服务提供商(ISP) 提供 Open Connect Appliance。通过这种方式,大量的 Netflix 流量得到了本地化,ISP 可以更高效地提供 Netflix 内容。

Open Connect Appliance 运行在 FreeBSD 操作系统上,并且几乎完全运行开源软件

Open Connect 使用最新版 FreeBSD

你或许会觉得 Netflix 会在这样一个关键基础设施上使用 FreeBSD 的稳定版本,但 Netflix 会跟踪 FreeBSD 最新/当前版本。Netflix 表示,跟踪“最新版”可以让他们“保持前瞻性,专注于创新”。

以下是 Netflix 跟踪最新版 FreeBSD 的好处:

  • 更快的功能迭代
  • 更快地使用 FreeBSD 的新功能
  • 更快的 bug 修复
  • 实现协作
  • 尽量减少合并冲突
  • 摊销合并“成本”

运行 FreeBSD “最新版” 可以让我们非常高效地向用户分发大量数据,同时保持高速的功能开发。

Netflix

请记得,甚至谷歌也使用 Debian 测试版而不是 Debian 稳定版。也许这些企业更喜欢最先进的功能。

与谷歌一样,Netflix 也计划向上游提供代码。这应该有助于 FreeBSD 和其他基于 FreeBSD 的 BSD 发行版。

那么 Netflix 用 FreeBSD 实现了什么?以下是一些统计数据:

使用 FreeBSD 和商业硬件,我们在 16 核 2.6 GHz CPU 上使用约 55% 的 CPU,实现了 90 Gb/s 的 TLS 加密连接。

Netflix

如果你想了解更多关于 Netflix 和 FreeBSD 的信息,可以参考 FOSDEM 的这个演示文稿。你还可以在这里观看演示文稿的视频。

目前,大型企业主要依靠 Linux 来实现其服务器基础架构,但 Netflix 已经信任了 BSD。这对 BSD 社区来说是一件好事,因为如果像 Netflix 这样的行业领导者重视 BSD,那么其他人也可以跟上。你怎么看?


via: https://itsfoss.com/netflix-freebsd-cdn/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

边缘计算环境带来的安全风险迫使公司必须特别关注它的安全措施。

说数据安全是高管们和董事会最关注的问题已经是陈词滥调了。但问题是:数据安全问题不会自己消失。

骇客和攻击者一直在寻找利用缺陷的新方法。就像公司开始使用人工智能和机器学习等新兴技术来自动化地保护他们的组织一样,那些不良分子们也在使用这些技术来达成他们的目的。

简而言之,安全问题是一定不能忽视的。现在,随着越来越多的公司开始使用边缘计算,如何保护这些边缘计算环境,需要有新的安全考量。

边缘计算的风险更高

正如 Network World 的一篇文章所说,边缘计算的安全架构应该将重点放在物理安全上。这并不是说要忽视保护传输过程中的数据。而是说,实际的物理环境和物理设备更加值得关注。

例如,边缘计算的硬件设备通常位于较大的公司或者广阔空间中,有时候是在很容易进入的共享办公室和公共区域里。从表面上看,这节省了成本,能更快地访问到相关的数据,而不必在后端的数据中心和前端的设备之间往返。

但是,如果没有任何级别的访问控制,这台设备就会暴露在恶意操作和简单人为错误的双重风险之下。想象一下办公室的清洁工意外地关掉了设备,以及随之而来的停机所造成的后果。

另一个风险是 “影子边缘 IT”。有时候非 IT 人员会部署一个边缘设备来快速启动项目,却没有及时通知 IT 部门这个设备正在连接到网络。例如,零售商店可能会主动安装他们自己的数字标牌,或者,销售团队会将物联网传感器应用到电视中,并在销售演示中实时地部署它们。

在这种情况下,IT 部门很少甚至完全看不到这些边缘设备,这就使得网络可能暴露在外。

保护边缘计算环境

部署微型数据中心(MDC)是规避上述风险的一个简单方法。

“在历史上,大多数这些[边缘]环境都是不受控制的,”施耐德电气安全能源部门的首席技术官和创新高级副总裁 Kevin Brown 说。“它们可能是第 1 级,但很可能是第 0 级类型的设计 —— 它们就像开放的配线柜。它们现在需要像微型数据中心一样的对待。你管理它需要像管理关键任务数据中心一样”

单说听起来的感觉,这个解决方案是一个安全、独立的机箱,它包括在室内和室外运行程序所需的所有存储空间、处理性能和网络资源。它同样包含必要的电源、冷却、安全和管理工具。

而它最重要的是高级别的安全性。这个装置是封闭的,有上锁的门,可以防止非法入侵。通过合适的供应商,DMC 可以进行定制,包括用于远程数字化管理的监控摄像头、传感器和监控技术。

随着越来越多的公司开始利用边缘计算的优势,他们必须利用安全解决方案的优势来保护他们的数据和边缘环境。

在 APC.com 上了解保护你的边缘计算环境的最佳方案。


via: https://www.networkworld.com/article/3388130/enhanced-security-at-the-edge.html#tk.rss_all

作者:Anne Taylor 选题:lujun9972 译者:hopefully2333 校对:wxy

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

学习一门新的编程语言是在你的职业生涯中继续前进的好方法,但是应该学习哪一门呢?

如果你想要开始你的编程生涯或继续前进,那么学习一门新语言是一个聪明的主意。但是,大量活跃使用的语言引发了一个问题:哪种编程语言是最好的?要回答这个问题,让我们从一个简单的问题开始:你想做什么样的程序?

如果你想在客户端进行网络编程,那么特定语言 HTML、CSS 和 JavaScript(看似无穷无尽的方言之一)是必须要学习的。

如果你想在服务器端进行 Web 编程,那么选择包括常见的通用语言:C++、Golang、Java、C#、 Node.js、Perl、Python、Ruby 等等。当然,服务器程序与数据存储(例如关系数据库和其他数据库)打交道,这意味着 SQL 等查询语言可能会发挥作用。

如果你正在为移动设备编写原生应用程序,那么了解目标平台非常重要。对于 Apple 设备,Swift 已经取代 Objective C 成为首选语言。对于 Android 设备,Java(带有专用库和工具集)仍然是主要语言。有一些特殊语言,如与 C# 一起使用的 Xamarin,可以为 Apple、Android 和 Windows 设备生成特定于平台的代码。

那么通用语言呢?通常有各种各样的选择。在动态脚本语言(如 Perl、Python 和 Ruby)中,有一些新东西,如 Node.js。而 Java 和 C# 的相似之处比它们的粉丝愿意承认的还要多,仍然是针对虚拟机(分别是 JVM 和 CLR)的主要静态编译语言。在可以编译为原生可执行文件的语言中,C++ 仍在使用,还有后来出现的 Golang 和 Rust 等。通用的函数式语言比比皆是(如 Clojure、Haskell、Erlang、F#、Lisp 和 Scala),它们通常都有热情投入的社区。值得注意的是,面向对象语言(如 Java 和 C#)已经添加了函数式构造(特别是 lambdas),而动态语言从一开始就有函数式构造。

让我以 C 语言结尾,它是一种小巧、优雅、可扩展的语言,不要与 C++ 混淆。现代操作系统主要用 C 语言编写,其余部分用汇编语言编写。任何平台上的标准库大多数都是用 C 语言编写的。例如,任何打印 Hello, world! 这种问候都是通过调用名为 write 的 C 库函数来实现的。

C 作为一种可移植的汇编语言,公开了其他高级语言有意隐藏的底层系统的详细信息。因此,理解 C 可以更好地掌握程序如何竞争执行所需的共享系统资源(如处理器、内存和 I/O 设备)。C 语言既高级又接近硬件,因此在性能方面无与伦比,当然,汇编语言除外。最后,C 是编程语言中的通用语言,几乎所有通用语言都支持某种形式的 C 调用。

有关现代 C 语言的介绍,参考我的书籍《C 语言编程:可移植的汇编器介绍》。无论你怎么做,学习 C 语言,你会学到比另一种编程语言多得多的东西。

你认为学习哪些编程语言很重要?你是否同意这些建议?在评论告知我们!


via: https://opensource.com/article/19/2/which-programming-languages-should-you-learn

作者:Marty Kalin 选题:lujun9972 译者:MjSeven 校对:wxy

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