分类 观点 下的文章

6 月 24 ~ 26 日,Linux 基金会暨 CNCF 热推的 KubeCon + CloudNativeCon + OSS 2019 峰会于上海世博中心盛大揭幕。这是 Kubecon 大会在中国第二次举办,而距上一次在上海同一地点举办的 Kubecon 2018才仅过去半年,虽然调整会期有种种因素的考虑,但这么密集的再次举办也折射出云原生领域的发展速度——在本次大会上我们发现,各大云厂商和开源组织依然有很多值得分享的最新动态。

KubeCon + CloudNativeCon + OSS 2019 峰会于上海世博中心盛大揭幕

秉持 LC/CNCF 旗下会议一向的风格,这次大会在专业、丰富的各式讲演、专题分享之外,依旧是满场流动的人群、四处摆放的餐点,你甚至可以一整天泡在场馆,早中晚都吃在这里。嗯,要是有几个懒人沙发就更好了 :D

这次大会,我们 Linux 中国异步社区开源社掘金等几个国内知名的开源社区也得到了大会主办方的鼎力支持,赠送给各家社区一块非常不错的独立展位。为此,我们也精心准备了各种礼物和展板,在社区的志愿者 ONLY、cycoe、XYenChi、TK 等人的帮助下,得以在这样的国际性大会上和大家进行了面对面交流。

Linux 中国的展台 ,感谢我们的社区志愿者!

由于我在这次展会期间有好多新老朋友要见面,也预约了几个专访,因此很多心仪的演讲都失之交臂,这应该是我本次参会最大的遗憾了吧。

大家都在说“云原生”,而它到底是什么?CNCF 执行董事 Dan Kohn 给出了官方的定义:

云原生定义 v1.0

这次大会上,CNCF 宣布蚂蚁金服成为其新的黄金会员。CNCF 执行董事 Dan Kohn 表示,“CNCF 非常欢迎蚂蚁金服的加入,蚂蚁金服大规模的使用 Kubernetes 集群来构建其金融服务,是一个在中国拥抱云原生热潮中很好的案例。”

而中国更是与 CNCF 结下了不解之缘,超过 10% 的 CNCF 会员来自中国,包括 16% 的铂金会员和 35% 的黄金会员。

中国与 CNCF 的不解之缘

中国已经是 Kubernetes 的第二大贡献者,在 Kubernetes 上做出了很大的贡献,在其它的 CNCF 的项目也是如此。

也是在这次大会上,蚂蚁金服的王旭做了有关安全容器的演讲。他是安全容器项目 runV的创始人,在 runV 和 Clear 容器项目合并为 Kata 容器之后,一直在继续领导该项目的发展。他同时宣布了 Kata 容器1.7 的发布。作为容器安全领域的两大解决方案之一,Kata 容器得到了社区的积极支持,并进一步和蚂蚁金服开源的 SOFAStack 相结合,目前已经完成了和 SOFAMesh 的集成。

KubeCon NA 2018 之后 Kata 容器发布了 3 个版本

作为国内领先的云服务商,阿里云自然也出现在了这次大会上,并发布了若干重要产品/服务,其中包括国内首个“开放云原生应用中心 - Cloud Native App Hub”。开放云原生应用中心,是云原生“高速公路”上的托管和分发应用的集散地,同时也是国内开发者使用云原生应用的重要基础仓库。在 Kubernetes 生态中,“应用”是一组 YAML 格式的描述文件,而云原生应用中心,则为搜索、使用和分享这些应用描述文件提供了一个完全开源与开放的交互平台。

开放云原生应用中心 - Cloud Native App Hub

在当前的 Kubernetes 应用生态当中,Helm 是目前最被广泛使用的应用定义标准之一。所以在本次云原生应用中心的发布当中,对 Helm 格式应用的托管、搜索和分发能力成为了中心首次上线的能力。为了能够让中国的开发者更好的使用 Helm Hub 的能力,阿里云开发者中心与 Helm 社区达成了一系列技术合作,在开放云原生应用中心提供了国内首个 Helm Hub 北美官方站的同步镜像仓库与 Hub 站点。这使得中国的开发者终于可以随心所欲的搜索云原生应用,然后直接使用 helm install 命令将这些应用安装在全世界任何一个 Kubernetes 集群当中。

除了开放云原生应用中心之外,阿里云容器平台团队还正式宣布开源了重量级项目 OpenKruise。该项目源自于阿里巴巴经济体应用过去多年的大规模应用部署、发布与管理的最佳实践,源于容器平台团队对集团应用规模化运维,规模化建站的能力,源于阿里云Kubernetes服务数千客户的需求沉淀。Kruise 核心在于自动化,从不同维度解决了Kubernetes之上应用的自动化,包括,部署、升级、弹性扩缩容、Qos调节、健康检查、迁移修复等等。此次Kruise开源的内容主要在应用部署,升级方面,即一套增强版控制器组件用于应用的部署和级和运维。

目前,伴随着 5G 的到来,边缘计算也是一个热点,在本次大会上阿里云发布了托管版边缘集群 ACK@edge,致力于实现云-边-端一体化协同,通过非侵入增强方式,完美拓展云原生的边界。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台。形成边缘位置的计算、网络、存储、安全等能力全面的弹性云平台,并与中心云和物联网终端形成“云边端三体协同” 的端到端的技术架构,通过将网络转发、存储、 计算,智能化数据分析等工作放在边缘处理,降低响应时延、减轻云端压力、降低带宽成本,并提供全网调度、算力分发等云服务。

而此前华为云的开源智能边缘项目 KubeEdge 已经加入 CNCF 社区,成为 CNCF 在智能边缘领域的首个正式项目,这意味着云原生社区对智能边缘领域的关注与重视。

从本次大会的参会感受来看,特别明显的一点就是针对云原生生态的各种项目层出不穷。除了上面提及的 OpenKruise、Kata 容器之外,还有青云 QingCloud 也推出了自己的产品 KubeSphere(QKE),可以在 QingCloud 公有云上交付 KubeSphere 容器平台全能力,提供托管的原生 Kubernetes 集群、极简的人机交互实现 CI/CD、微服务、以及集群运维管理,帮助用户更敏捷地构建云原生应用,并一站式实现应用全生命周期的统一管理,从而全面释放企业的核心业务生产力。QKE 相较于原生的 Kubernetes 集群,提供了更多完善易用的开发工具集,能够实现极简开发、强劲支持和高效交付,可以帮助用户解除核心业务开发以外的平台工作负担。除了拥有强大的平台能力,QKE 还可以无缝支持混合云与多云环境。KubeSphere 交付的公有云与私有云具有完全一致的体验,无缝打通两种环境中的应用,用户可将应用在跨公、私环境的 Kubernetes 集群中进行混合部署,赋予业务更大的灵活性。

除了云原生技术方面的突破和进展之外,本次 Kubecon 大会也同时召开了开源峰会,对开源治理提出了诸多见解和分享。

来自开源社的 Ted Liu 做了题为《开源治理实践和企业案例研究》的演讲,为企业在采用、使用开源软件以及为 OSS 社区做出贡献方面提供了明确的指导和步骤。Ted Liu 还将分享一些案例研究,探讨龙头企业如何建立他们的开源项目办公室,以简化开源治理和政策,同时还将介绍开源许可和合规性。

开源社 Ted Liu 在发表演讲

而来自阿里巴巴的 Frank Zhao 则开始探索新的开源社区管理方式,将重点放在协作自动化和开发人员行为分析,这有助于社区维护人员的管理工作。在其演讲《阿里巴巴数字推动的开源社区探索》中展示了他们是如何构建阿里巴巴开源社区机制,以及为实施该机制而构建的工具背后的思考。

本次大会的内容之丰富、话题之深入,让人深切感受到了云原生领域的如火如荼的发展,而这篇文章已经太长了,本次大会上更多值得关注的数字和消息还有:

  • Linux 已经成长为世界上最重要的软件平台:100% 的超级计算机市场份额;82% 的手机市场份额;68% 的企业服务器市场份额;90% 的大型机客户;90% 的公有云工作负载;62% 的嵌入式市场份额。
  • 世界上有 51% 的关键项目是在“云”上运行的,而在中国达到了 72%;世界上有 45% 的项目,仍然是在传统的环境当中,但是在中国,这个数字仅仅只是 28% 。
  • Linux 基金会最新成立了一个子基金会 LFAI,领域主要是人工智能、机器学习和深度学习。中国有很多的企业都成为其成员,包括:百度、华为、嘀嘀等等。
  • 京东谈论了他们是《如何运行全球最大的 Vitess》以及《在 Kubernetes 中经济高效地调度大量容器》,并透露消息其区块链 BI 数据服务将在今年 7-8 月上线公测。

让我们期待今年 11 月在圣地亚哥举办的 KubeCon + CloudNativeCon 2019 北美峰会的更多消息,据称将会迎来 1.2 万名与会者,这会成为历史上最大的一个“开源峰会”!

简单介绍一下编程方式的历史演变。

在计算机诞生不久的早期年代,硬件非常昂贵,而程序员比较廉价。这些廉价程序员甚至都没有“程序员”这个头衔,并且常常是由数学家或者电气工程师来充当这个角色的。早期的计算机被用来快速解决复杂的数学问题,所以数学家天然就适合“编程”工作。

什么是程序?

首先来看一点背景知识。计算机自己是做不了任何事情的,它们的任何行为都需要程序来引导。你可以把程序看成是非常精确的菜谱,这种菜谱读取一个输入,然后生成对应的输出。菜谱里的各个步骤由操作数据的指令构成。听上去有点儿复杂,不过你或许知道下面这个语句是什么意思:

1 + 2 = 3

其中的加号是“指令”,而数字 1 和 2 是数据。数学上的等号意味着等式两边的部分是“等价”的,不过在大部分编程语言中对变量使用等号是“赋值”的意思。如果计算机执行上面这个语句,它会把这个加法的结果(也就是“3”)储存在内存中的某个地方。

计算机知道如何使用数字进行数学运算,以及如何在内存结构中移动数据。在这里就不对内存进行展开了,你只需要知道内存一般分为两大类:“速度快/空间小”和“速度慢/空间大”。CPU 寄存器的读写速度非常快,但是空间非常小,相当于一个速记便签。主存储器通常有很大的空间,但是读写速度就比寄存器差远了。在程序运行的时候,CPU 不断将它所需要用到的数据从主存储器挪动到寄存器,然后再把结果放回到主存储器。

汇编器

当时的计算机很贵,而人力比较便宜。程序员需要耗费很多时间把手写的数学表达式翻译成计算机可以执行的指令。最初的计算机只有非常糟糕的用户界面,有些甚至只有前面板上的拨动开关。这些开关就代表一个内存“单元”里的一个个 “0” 和 “1”。程序员需要配置一个内存单元,选择好储存位置,然后把这个单元提交到内存里。这是一个既耗时又容易出错的过程。

 title=

程序员Betty Jean Jennings (左) 和 Fran Bilas (右) 在操作 ENIAC 的主控制面板

后来有一名 电气工程师 认为自己的时间很宝贵,就写了一个程序,能够把人们可以读懂的“菜谱”一样的输入转换成计算机可以读懂的版本。这就是最初的“汇编器”,在当时引起了不小的争议。这些昂贵机器的主人不希望把计算资源浪费在人们已经能做的任务上(虽然又慢又容易出错)。不过随着时间的推移,人们逐渐发现使用汇编器在速度和准确性上都胜于人工编写机器语言,并且计算机完成的“实际工作量”增加了。

尽管汇编器相比在机器面板上切换比特的状态已经是很大的进步了,这种编程方式仍然非常专业。上面加法的例子在汇编语言中看起来差不多是这样的:

01 MOV R0, 1
02 MOV R1, 2
03 ADD R0, R1, R2
04 MOV 64, R0
05 STO R2, R0

每一行都是一个计算机指令,前面是一个指令的简写,后面是指令所操作的数据。这个小小的程序首先会将数值 1 “移动”到寄存器 R0,然后把 2 移动到寄存器 R1。03 行把 R0 和 R1 两个寄存器里的数值相加,然后将结果储存在 R2 寄存器里。最后,04 行和 05 行决定结果应该被放在主存储器里的什么位置(在这里是地址 64)。管理内存中存储数据的位置是编程过程中最耗时也最容易出错的部分之一。

编译器

汇编器已经比手写计算机指令要好太多了,不过早期的程序员还是渴望能够按照他们所习惯的方式,像书写数学公式一样地去写程序。这种需求推动了高级编译语言的发展,其中有一些已经成为历史,另一些如今还在使用。比如 ALGO 就已经成为历史了,但是像 FortranC) 这样的语言仍然在不断解决实际问题。

 title=

ALGO 和 Fortran 编程语言的谱系树

这些“高级”语言使得程序员可以用更简单的方式编写程序。在 C 语言中,我们的加法程序就变成了这样:

int x;
x = 1 + 2;

第一个语句描述了该程序将要使用的一块内存。在这个例子中,这块内存应该占一个整数的大小,名字是 x。第二个语句是加法,虽然是倒着写的。一个 C 语言的程序员会说这是 “X 被赋值为 1 加 2 的结果”。需要注意的是,程序员并不需要决定在内存的什么位置储存 x,这个任务交给编译器了。

这种被称为“编译器”的新程序可以把用高级语言写的程序转换成汇编语言,再使用汇编器把汇编语言转换成机器可读的程序。这种程序组合常常被称为“工具链”,因为一个程序的输出就直接成为另一个程序的输入。

编译语言相比汇编语言的优势体现在从一台计算机迁移到不同型号或者品牌的另一台计算机上的时候。在计算机的早期岁月里,包括 IBM、DEC、德州仪器、UNIVAC 以及惠普在内的很多公司都在制造除了大量不同类型的计算机硬件。这些计算机除了都需要连接电源之外就没有太多共同点了。它们在内存和 CPU 架构上的差异相当大,当时经常需要人们花费数年来将一台计算机的程序翻译成另一台计算机的程序。

有了高级语言,我们只需要把编译器工具链迁移到新的平台就行了。只要有可用的编译器,高级语言写的程序最多只需要经过小幅修改就可以在新的计算机上被重新编译。高级语言的编译是一个真正的革命性成果。

 title=

1983 发布的 IBM PC XT 是硬件价格下降的早期例子。

程序员们的生活得到了很好的改善。相比之下,通过高级语言表达他们想要解决的问题让事情变得轻松很多。由于半导体技术的进步以及集成芯片的发明,计算机硬件的价格急剧下降。计算机的速度越来越快,能力也越来越强,并且还便宜了很多。从某个时间点往后(也许是 80 年代末期吧),事情发生了反转,程序员变得比他们所使用的硬件更值钱了。

解释器

随着时间的推移,一种新的编程方式兴起了。一种被称为“解释器”的特殊程序可以直接读取一个程序将其转换成计算机指令以立即执行。和编译器差不多,解释器读取程序并将它转换成一个中间形态。但和编译器不同的是,解释器直接执行程序的这个中间形态。解释型语言在每一次执行的时候都要经历这个过程;而编译程序只需要编译一次,之后计算机每次只需要执行编译好的机器指令就可以了。

顺便说一句,这个特性就是导致人们感觉解释型程序运行得比较慢的原因。不过现代计算机的性能出奇地强大,以至于大多数人无法区分编译型程序和解释型程序。

解释型程序(有时也被成为“脚本”)甚至更容易被移植到不同的硬件平台上。因为脚本并不包含任何机器特有的指令,同一个版本的程序可以不经过任何修改就直接在很多不同的计算机上运行。不过当然了,解释器必须得先移植到新的机器上才行。

一个很流行的解释型语言是 perl。用 perl 完整地表达我们的加法问题会是这样的:

$x = 1 + 2

虽然这个程序看起来和 C 语言的版本差不多,运行上也没有太大区别,但却缺少了初始化变量的语句。其实还有一些其它的区别(超出这篇文章的范围了),但你应该已经注意到,我们写计算机程序的方式已经和数学家用纸笔手写数学表达式非常接近了。

虚拟机

最新潮的编程方式要数虚拟机(经常简称 VM)了。虚拟机分为两大类:系统虚拟机和进程虚拟机。这两种虚拟机都提供一种对“真实的”计算硬件的不同级别的抽象,不过它们的作用域不同。系统虚拟机是一个提供物理硬件的替代品的软件,而进程虚拟机则被设计用来以一种“系统独立”的方式执行程序。所以在这个例子里,进程虚拟机(往后我所说的虚拟机都是指这个类型)的作用域和解释器的比较类似,因为也是先将程序编译成一个中间形态,然后虚拟机再执行这个中间形态。

虚拟机和解释器的主要区别在于,虚拟机创造了一个虚拟的 CPU,以及一套虚拟的指令集。有了这层抽象,我们就可以编写前端工具来把不同语言的程序编译成虚拟机可以接受的程序了。也许最流行也最知名的虚拟机就是 Java 虚拟机(JVM)了。JVM 最初在 1990 年代只支持 Java 语言,但是如今却可以运行 许多 流行的编程语言,包括 Scala、Jython、JRuby、Clojure,以及 Kotlin 等等。还有其它一些不太常见的例子,在这里就不说了。我也是最近才知道,我最喜欢的语言 Python 并不是一个解释型语言,而是一个 运行在虚拟机上的语言

虚拟机仍然在延续这样一个历史趋势:让程序员在使用特定领域的编程语言解决问题的时候,所需要的对特定计算平台的了解变得越来越少了。

就是这样了

希望你喜欢这篇简单介绍软件背后运行原理的短文。有什么其它话题是你想让我接下来讨论的吗?在评论里告诉我吧。


via: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters

作者:Erik O'Shaughnessy 选题:lujun9972 译者:chen-ni 校对:wxy

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

翻斗车是解决各种基本业务问题的优雅解决方案。

这篇文章写于 Kubernetes 的生日(6 月 7 日星期五)前夕。

翻斗车很优雅。说真的,不信你听我说。它们以优雅的方式解决了各种各样的技术问题。它们可以搬动泥土、砾石、岩石、煤炭、建筑材料或道路上的障碍。它们甚至可以拉动拖车及它们上面的其他重型设备。你可以给一辆翻斗车装上五吨泥土,然后自驾游遍全国。对于像我这样的电脑极客来说,那就是优雅。

但是,它们并不容易使用。驾驶翻斗车需要特殊的驾驶执照。它们也不容易装配和维护。购买翻斗车和各种维护时要做很多选择。但是,它们可以优雅的搬动那些垃圾。

你知道搬动垃圾有什么不优雅的地方吗?假如你有一款新型的紧凑型轿车,它们到处可以买到,易于驾驶、更易于维护。但是,用它们来装泥土就很糟糕。这需要跑 200 趟才能运走 5 吨垃圾,而且,之后没人再会想要这辆车了。

好吧,你可以买一辆出售的翻斗车,而不是想自己造一辆。但是我不同,我是个极客,我喜欢自己造东西。但……

如果你拥有一家建筑公司,你就不会想着自己造一辆翻斗车。你肯定不会维持一条供应链来重构翻斗车(这可是一条很大的供应链)。但你可以学会驾驶一辆。

好吧,我的这个比喻很粗糙,但很容易理解。易用性是相对的,易于维护是相对的,易于装配也是相对的。这实际上取决于你想要做什么。Kubernetes 也不例外。

一次性构建 Kubernetes 并不太难。配置好 Kubernetes 呢?好吧,这稍微难一些。你如何看待 KubeCon?它们又宣布了多少新项目?哪些是“真实的”呢?而你应该学习哪些?你对 Harbour、TikV、NATD、Vitess,开放策略代理有多深入的了解?更不用说 Envoy、eBPF 和 Linux 中的一系列底层技术?这就像是 1904 年工业革命爆发时建造翻斗车一样,你要弄清楚使用的螺钉、螺栓、金属和活塞。(有没有蒸汽朋克在这里吗?)

像翻斗车一样构造和配置 Kubernetes 是一个技术问题,如果你从事金融服务、零售、生物研究、食品服务等等,这可能不是你应该做的事情。但是,学习如何驾驶 Kubernetes 肯定是你应该学习的东西。

Kubernetes 就像一辆翻斗车,因其可以解决的各种技术问题(以及它所拖带的生态系统)而优雅。所以,我会给你一句引用的话,这是我的一位计算机科学教授在我大学的第一年告诉我们的,她说,“有一天,你会看到一段代码并对自己说,‘真特么优雅!’”

Kubernetes 很优雅。


via: https://opensource.com/article/19/6/kubernetes-dump-truck

作者:Scott McCarty 选题:lujun9972 译者:wxy 校对:wxy

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

几乎每个行业都可以利用边缘计算来加速数字化转型。

边缘计算的发展将取得一次巨大的飞跃。据 Gartner 数据,现在公司有 10% 的数据是在传统数据中心或云之外生成的。但在未来六年内,这一比例将升至 75%。

这很大程度上取决于处理来自设备数据的需要,比如物联网(IoT)数据传感器。早期采用这一方法的包括:

  • 制造商:设备与传感器似乎是这个行业特有的,因此需要为产生的数据找到更快速的方法也就不足为奇。一份 Automation World 最近的研究发现 43% 的制造商已经部署了边缘计算项目。最常用用途包括生产/制造数据分析与设备数据分析。
  • 零售商:与大多数深受数字化运营需求影响的产业一样,零售商也不得不革新了其客户体验。为此,这些组织“正在积极投资贴近于买家的计算能力”,施耐德电气公司 IT 部门执行副总裁 Dave Johnson 如是说。他列举了一些例子,例如在试衣间的增强现实(AR)镜子,提供了不同的服装选择,而不用顾客试用这些服装。又如用于显示店内导航的基于信标的热图。
  • 医疗保健机构:随着医疗保健成本的不断上升,这一行业已经具备了提高生产能力与成本效率方面的创新能力。管理咨询公司麦肯锡已经确定,至少有 11 个有益于患者、医疗机构或两者的医疗保健用例。举两个例子:提高护理效率并有助于优化设备的跟踪移动医疗设备;跟踪用户锻炼并提供健康建议的可穿戴设备。

虽然以上这些是明显的用例,随着边缘计算市场的扩大,采用它的行业也会增加。

数字化转型的优势

随着边缘计算的快速处理能力完全符合数字化转型的目标:提高效率、生产能力和加速产品上市和客户体验。以下是一些有潜力的应用及将被边缘计算改变的行业:

农业:农民和组织已经使用无人机将农田和气候环境传给灌溉设备。其他的应用可能包括了对工人、牲畜和设备的监测与位置跟踪,从而改善生产能力、效率和成本。

能源:在这一领域有许多的潜在的应用,可以使消费者与供应商都受益。例如,智能电表有助于业主更好地管理能源使用,同时减少电网运营商对手动抄表的需求。同样的,水管上的传感器能够监测到漏水,同时提供实时漏水数据。

金融服务:银行正在采取交互式 ATM 机,这种交互式 ATM 机能够快速地处理数据以提供更好的用户体验。在管理层次,可以更快速地分析交易数据中的欺诈行为。

物流:由于消费者需要更快速地交付商品和服务,物流公司将需要转换其地图和寻路功能以获取实时数据,尤其在最后一公里计划和跟踪方面。这可能涉及到基于街道、包裹及汽车的传感器数据传输处理过程。

得益于边缘计算,所有行业都有转型的潜力。但是,这将取决于他们如何处理计算基础设施。可以在 APC.com 找到如何克服任何 IT 阻碍的解决方案。


via: https://www.networkworld.com/article/3391016/edge-computing-is-in-most-industries-future.html

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

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

Dokit 曾经怀疑将自己的知识开源可能是一个失败的商业决策,然而正是这个选择奠定了它的成功。

回想一个项目开展最初期的细节并不是一件容易的事情,但这有时候可以帮助你更清晰地理解这个项目。如果让我来说,关于 Dokit 这个用来创建用户手册和文档的平台的最早的想法来自我的童年。小时候我家里都是 Meccano(LCTT 译注:一种类似乐高的拼装玩具)和飞机模型之类的玩具,对于我来说,游戏中很重要的一部分就是动手制作,把独立的零件组装在一起来创造一个新的东西。我父亲在一家 DIY 公司工作,所以家里到处都建筑、修理,以及使用说明书。小的时候父母还让我参加了童子军,在那里我们制作桌子和帐篷,还有泥巴做的烧烤炉,这些事情都培养了我在共同学习中感受到的乐趣,就像我在开源活动中感受到的一样。

在童年学到的修理东西和回收产品的本领成为了我工作的一部分。后来我决心要用线上的方式,还原这种在家里或者小组里学习如何制作和修理东西时的那种非常棒的感觉。Dokit 就从这个想法中诞生了。

创业初期

事情并非一帆风顺,在我们的公司于 2017 年成立之后,我很快就意识到那些最庞大、最值得奋斗的目标一般来说也总是最困难的。如果想要实现我们的计划 —— 彻底改变 老式的说明书和用户手册的编写和发行方式,并且在这个细分市场(我们非常清楚这一点)里取得最大的影响力 —— 那么确立一个主导任务就十分关键,它关乎项目的组织方式。我们据此做出了第一个重要决策:首先 在短时间内使用一个已有的开源框架 MediaWiki 制作产品原型来验证我们的想法,然后将我们的全部代码都作为开源项目发布。

当时 MediaWiki 已经在正常运作了,事后看来,这一点让我们的决策变得容易了许多。这个平台已经拥有我们设想的最小可用产品(MVP)所需要的 90% 的功能,并且在全世界范围内有 15000 名活跃的开发者。MediaWiki 因为是维基百科的驱动引擎而小有名气,如果没有来自它的支持,事情对我们来说无疑会困难很多。还有一个许多公司都在使用的文档平台 Confluence 也有一些不错的功能,但是最终在这两者之间做出选择还是很容易的。

出于对社区的信赖,我们把自己平台的初始版本完全放在了 GitHub 上。我们甚至还没有真正开始进行推广,就已经可以看到世界各地的创客们开始使用我们的平台,这种令人激动的感觉似乎说明我们的选择是正确的。尽管 创客以及 Fablab 运动(LCTT 译注:Fablab 是一种向个人提供包括 3D 打印在内的电子化制造服务的小型工坊)都在鼓励用户积极分享说明材料,并且在 Fablab 章程 中也写明了这一点,但现实中像模像样的文档还是不太多见。

人们喜欢使用我们这个平台的首要原因是它可以解决一个非常实在的问题:一个本来还不错的项目,却使用了非常糟糕的文档 —— 其实这个项目本来可以变得更好的。对我们来说,这有点儿像是在修复创客及 DIY 社区里的一个裂缝。在我们的平台发布后的一年之内,Fablabs、WikifabOpen Source EcologyLes Petits DebrouillardsAdeme 以及 Low-Tech Lab 都在他们的服务器上安装了我们的工具,用来制作逐步引导的教程。

甚至在我们还没有发新闻稿之前,我们的其中一个用户 Wikifab 就开始在全国性媒体上收到“DIY 界的维基百科”这样的称赞了。短短两年之内,我们看到有数百的社区都在他们自己的 Dokits 上开展了项目,从有意思的、搞笑的,到那种很正式的产品手册都有。这种社区的力量正是我们想要驾驭的,并且有这么多的项目 —— 从风力涡轮机到宠物喂食器 —— 都在使用我们创建的平台编写非常有吸引力的产品手册,这件事情真的令我们赞叹不已。

项目开源

回头看看前两年的成功,很明显选择开源是我们能迅速取得成果的关键因素。最有价值的事情就是在开源项目中获得反馈的能力了。如果一段代码无法正常运行,会有人立刻告诉我们。如果可以从这些已经在使用你提供的服务的人那里学到这么多东西,为什么还要需要等着和顾问们开会呢?

社区对我们这个项目的关注程度也反映出了这个市场的潜力(包括利润上的潜力)。巴黎有一个非常好的、成长迅速的开发者社区(LCTT 译注:Dokit 是一家设立在巴黎的公司),但是开源将我们从一个只有数千当地人的小池子里带到了全世界数百万的开发者身边,他们都将成为我们的创作中的一部分。与此同时,代码的开放性也让我们的用户和客户更加放心,因为即使我们这个公司不在了,代码仍然会存续下去。

如果说上面这些都是在我们之前对开源的预期之中的话,其实这一路上也有不少惊喜。因为开源,我们获得了更多的客户、声望以及精准推广,这种推广本来以我们有限的预算是负担不起的,现在却不需要我们支付费用。我们发现开源代码还改善了我们的招聘流程,因为在雇佣之前就可以通过我们的代码来测试候选人,并且被雇佣之后的入职过程也会更加顺利。

开发者在完全公开的情况下写代码,既有一点尴尬,同时也很团结,这对我们提升产品质量很有帮助。人们可以互相发表意见和反馈,并且因为工作都是完全公开的,人们似乎会尽可能地想做到最好。为了不断优化、不断重构 Dokit 的运行方式,我们明白未来应该在对社区的支持上做得更好。

下一步是什么?

尽管我们对正在做的事情一直都很有信念,并且看到很多出色的产品说明书都是用我们的软件制作出来的,我们还是会对这个项目的成长不断地感到兴奋,并且非常确信未来一定会很好。

在创业初期,我们对将自己的知识免费分发出去这件事还是非常担心的。事实证明正好相反 —— 正是开源让我们能够迅速构建起一个可持续的初创企业。Dokit 平台的设计初衷是通过社区的支持,让它的用户有信心去构建、组装、修理和创造全新的发明。事后看来,我们用开源的方式去构建了 Dokit 这个平台,这和 Dokit 本身想做的其实正好是同一件事情。

如同修理或者组装一件实体产品一样,只有当你对自己的方法有信心的时候,事情才会越来越顺利。现在,在我们创业的第三个年头,我们开始注意到全世界对这个领域的兴趣在增加,因为它迎合了出于不断变化的居家和生活方式的需求而 想要使用或重复利用以及组装产品的新一代客户。我们正是在通过线上社区的支持,创造一个让大家能够在自己动手做东西的时候感到更加有信心的平台。


via: https://opensource.com/article/19/5/startups-release-code

作者:Clément Flipo 选题:lujun9972 译者:chen-ni 校对:wxy

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

让我们来看看国外是如何看优麒麟的。

Ubuntu 有几个官方特色版本,优麒麟(Ubuntu Kylin)是它们中的一个。在这篇文章中,你将了解到优麒麟,它是什么,它为什么被创建,它的特色是什么。

麒麟操作系统最初由中华人民共和国的国防科技大学的院士在 2001 年开发。名字来源于麒麟,这是一种来自中国神话的神兽。

麒麟操作系统的第一个版本基于 FreeBSD,计划用于中国军方和其它政府组织。麒麟 3.0 完全基于 Linux 内核,并且在 2010 年 12 月发布一个称为 NeoKylin 的版本。

在 2013 年,Canonical (Ubuntu 的母公司) 与中华人民共和国的工业和信息化部 达成共识,共同创建和发布一个针对中国市场特色的基于 Ubuntu 的操作系统。

Ubuntu Kylin

优麒麟是什么?

根据上述 2013 年的共识,优麒麟现在是 Ubuntu 的官方中国版本。它不仅仅是语言本地化。事实上,它决心服务中国市场,就像 Ubuntu 服务全球市场一样。

优麒麟的第一个版本与 Ubuntu 13.04 一起到来。像 Ubuntu 一样,优麒麟也有 LTS (长期支持)和非 LTS 版本。

当前,优麒麟 19.04 LTS 采用了 UKUI 桌面环境,修改了启动动画、登录/锁屏程序和操作系统主题。为给用户提供更友好的体验,它修复了一些错误,带有文件预览、定时注销等功能,最新的 WPS 办公组件搜狗 输入法集成于其中。

银河麒麟 4.0.2 是一个基于优麒麟 16.04 LTS 的社区版本。它包含一些带有长期稳定支持的第三方应用程序。它非常适合服务器和日常桌面办公使用,欢迎开发者下载。麒麟论坛积极地获取来自提供的反馈以及解决问题来找到解决方案。

UKUI:优麒麟的桌面环境

Ubuntu Kylin 19.04 with UKUI Desktop

UKUI 由优麒麟开发小组设计和开发,有一些非常好的特色和预装软件:

  • 类似 Windows 的交互功能,带来更友好的用户体验。安装导向易于使用,用户可以快速使用优麒麟。
  • 控制中心对主题和窗口采用了新的设置。如开始菜单、任务栏、文件管理器、窗口管理器和其它的组件进行了更新。
  • 在 Ubuntu 和 Debian 存储库上都可用,为 Debian/Ubuntu 发行版和其全球衍生版的的用户提供一个新单独桌面环境。
  • 新的登录和锁定程序,它更稳定和具有很多功能。
  • 包括一个反馈问题的实用的反馈程序。

麒麟软件中心

Kylin Software Center

麒麟有一个软件中心,类似于 Ubuntu 软件中心,并被称为优麒麟软件中心。它是优麒麟软件商店的一部分,该商店也包含优麒麟开发者平台和优麒麟存储库,具有一个简单的用户界面,并功能强大。它同时支持 Ubuntu 和优麒麟存储库,并特别适用于由优麒麟小组开发的中文特有的软件的快速安装!

优客:一系列的工具

优麒麟也有一系列被命名为优客的工具。在麒麟开始菜单中输入 “Youker” 将带来麒麟助手。如果你在键盘上按 “Windows” 按键,像你在 Windows 上一样,它将打开麒麟开始菜单。

Kylin Assistant

其它麒麟品牌的应用程序包括麒麟影音(播放器)、麒麟刻录,优客天气、优客 Fcitx 输入法,它们更好地支持办公工作和个人娱乐。

Kylin Video

特别专注于中文

通过与金山软件合作,优麒麟开发者也致力于 Linux 版本的搜狗拼音输入法、快盘和优麒麟版本的金山 WPS,并解决了智能拼音、云存储和办公应用程序方面的问题。拼音 是中文字符的拉丁化系统。使用这个系统,用户用英文键盘输入,但在屏幕上将显示中文字符。

有趣的事实:优麒麟运行在中国超级计算机上

Tianhe-2 Supercomputer. Photo by O01326 – Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=45399546

众所周知世界上最快的超级计算机 500 强都在运行 Linux。中国超级计算机天河-1天河-2都使用优麒麟的 64 位版本,致力于高性能的并行计算优化、电源管理和高性能的虚拟化计算

总结

我希望你喜欢这篇优麒麟世界的介绍。你可以从它的官方网站获得优麒麟 19.04 或基于 Ubuntu 16.04 的社区版本(银河麒麟)。


via: https://itsfoss.com/ubuntu-kylin/

作者:Avimanyu Bandyopadhyay 选题:lujun9972 译者:robsean 校对:wxy

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