ELT.ZIP《CCF开源高校行第一期》观后感

Posted OpenHarmony技术社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELT.ZIP《CCF开源高校行第一期》观后感相关的知识,希望对你有一定的参考价值。

@[toc]

前言

  • 本次《开源高校行第一期》直播活动由CCF主办、三位业界开源大咖带来分享,分别是LVS自由软件项目创始人章文嵩、2022 Apache软件基金会董事姜宁、OpenHarmony开源与开发者运营总监欧建深三位先生。而我们有幸作为OpenHarmony成长计划的学员参加了本次会议的直播,完会后自觉收获颇丰,有必要作一个总结性的梳理思考,因此,希望在投资自己的同时也具有供他人参考的价值。特别说明,文中相关资源均取自直播原文,回放链接见末尾。

议题分享

1. 从LVS项目说起与一点开源感悟

The Linux Virtual Server Project

  • 分享会的第一项议题是章文嵩博士的《从LVS项目说起与一点开源感悟》。首先,大部分朋友在日常生活中可能很少听说过 "LVS" 这个名词,它是面向服务器端的一种负载均衡调度器,全称Linux Virtual Server,字面意思即Linux 虚拟服务器,类似的项目还有nginx、HAProxy、F5、Keepalived等。其在官网The Linux Virtual Server Project中这样对其说明:++Linux 虚拟服务器是一个高度可扩展和高度可用的服务器,构建在真实服务器集群上,负载均衡器在 Linux 操作系统上运行。服务器集群的架构对最终用户是完全透明的,用户之间的交互就像一个高性能的虚拟服务器一样++。我们所熟知的百度、阿里、腾讯、Google、SourceForge等公司网站都有使用到这项技术,典型的场景就是淘宝双11上百亿购物额的订单量背后的支撑。

LVS开源经过

  • 章文嵩博士风趣地阐述了他从大学本科阶段一路走过来的历程与趣事,以下是简单的概括:
    1. 1995年底接触Linux,主要是玩,后在系统集成中应用
    2. 1998年5月,LVS第一个版本发布,Linux kernel 2.0上的一个patch,只支持VS/NAT,实现Round-Robin调度算法,很简单
    3. 实现了更多的调度算法,还有bug fix等
    4. 1998年11月实现了VS/IPTunneling机制
    5. 1999年5月实现了VS/Direct Routing机制,移植到Linux kernel 2.2
    6. 更多的人参与LVS项目
    7. 2000年5月开始移植到Linux kernel 2.4
    8. 2002年9月开始移植到Linux kernel 2.5
    9. 2003年10月收录到Linux kernel 2.5开发版
    10. 2003年11月Linux kernel 2.4.23包含LVS
    11. 2003年12月Linux kernel 2.6.0包含LVS
    12. 2008年11月Google工程师帮忙实现了IPv6支持
    13. 2010年2月实现了SCTP传输层协议支持
    14. ...

LVS既然有诸多优势,那么它在实际情况中该如何使用呢?

LVS在大型网站的用法

  • 云计算里有两个叫地域和可用区的概念:地域是指物理的数据中心,资源创建成功后不能更换地域;可用区(Availability Zone,简称AZ)是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。这里引用阿里云的相关实例供参考:
地域名称 所在城市 Region ID 可用区数量
华北 1 青岛 cn-qingdao 2
华北 2 北京 cn-beijing 12
华东 1 杭州 cn-hangzhou 8
华东 2 上海 cn-shanghai 11
华南 1 深圳 cn-shenzhen 6
西南 1 成都 cn-chengdu 2
... ... ... ...
  • 在一个可用区的结构内,其最前端是一个超级路由器Router,后端数据中心设置百十台左右的LVS服务器,背后再设置万台的Service Endpoint服务节点。然后,Router使用ECMP和Equal Cost Multipath算法,对源地址和目标地址IP做一个一致性Hash映射,将前端Router投射到后端LVS,以实现更细腻化的服务

开源文化

  • 章文嵩博士在阿里就职期间引入开源文化,推动了阿里的发展进程,2020年阿里发布了开源10年全景图:

  • 开源在当今的商业服务中更是达成了三项一致性原则:
    1. 开源是更高效的开发模式
    2. 开源带货是获客最高效的手段之一
    3. 基础软件必须开源,不开源客户不敢用

因此,对开源项目来说,建立竞争优势,就是要构建良好的开源开发者社区和开源生态。

  • 最后,章文嵩博士分享了他对开源的一些感悟。这一部分,前辈一点一滴积攒的经历对我们小生来说是无比珍贵的滋养:
    1. 通过开源,可以得到更多用户,用户会帮助测试和反馈,最重要的是收集更多的客户需求
    2. 通过开源,可以得到更多开发人员和高手的帮助,不断提高自己的能力
    3. 通过开源,可以让自己的代码有更长的生命周期
    4. 用户的用法,会超出我们自己的想象
    5. 不要把开源想得太难,写了软件,开源了再说
    6. 开源项目文档很重要,尤其是QuickStart
    7. 发展开源社区,一定要把Credit给别人
    8. 做开源项目是很好的经历,未来还有商业机会
    9. 把东西做好,回报自然会来;平常心,享受过程

2. 参与开源 拥抱世界

开源是什么

  • 第二项议题是姜宁先生的《参与开源 拥抱世界》。从开源的源头说起,有三个重要人物发起了三项里程碑式事件,分别是Richard Stallman的 “自由软件运动” 、Linus Torvalds的 “Linux兴起” 、Eric Steven Raymond的 “开源软件运动”
  1. Richard Stallman早年在MIT的人工智能实验室已经开发了许多软件,为了支撑这些项目的发展,成立了GNU Free Software Foundation(FSF)基金会并撰写了被后续广泛使用的GPL协议,倡导学习、使用、修改、分发软件的自由
  2. 1991年Linux项目初版诞生,同样使用GPL协议,真正地把开源推动了起来。
  3. Eric Steven Raymond建立了open source initiative组织、发起了Debian Free Software Guidelines项目,现今的许多Deb系Linux发行版都基于Debian维护得到。

Apache软件基金会治理架构

Apache之道

  1. 公开透明
  2. 精英之治
  3. 共同体
精英之治
  • 根据提出的最佳方案做决定方式
  • 才能是选择的唯一标准,而非地位、偏见或特权
  • 把权力交给那些具体干活的人
  • 功绩定义为实现项目目标所做的有价值的工作
  • 通过功绩来赢得相应的职位
共同体
  1. 共同的兴趣、爱好
  2. 需要有一定的场所进行交流
  3. 大家扮演不同的角色:用户、开发者、布道师
  • 为什么要加入开源共同体
    1. 可以学习到平时书本里学不到的知识
    2. 可以帮助我们解决工作上的实际问题
    3. 可以和一群志同道合的人一起成长
    4. 可以和世界级的开发者一起工作
    5. 工作会被更多人看到
    6. 可以找到更好的工作或者更喜欢的工作

开源共同体固然有许多理由值得我们加入,但姜宁先生强调到我们不能忽略阻挡自己的惰性,开源社区里的许多事物都是开放的,我们尤其需要培养自己的好奇心

培养好奇心
  • 好奇心是对新的事物有兴趣,想要探索、研究与学习的特质
  • 开源世界阻碍成长的是你的惰性,好奇心会帮你克服这样的惰性

融入开源共同体

  • 找到感兴趣的项目,培养好奇心
  • 围观开源开发记录,看问题是如何解决的
  • 参加开源项目实习活动
  • 找个项目做贡献成为committer

3. 看透开源 玩转开源项目

  • 第三项议题是欧建深先生的《看透开源 玩转开源项目》。首先,欧建深先生把“开源”这一概念看作名词和动词两条主线来剖析:名词上理解开源,它是一种软件技术的承载方式(解构一个好产品,看优质技术哪里拿);动词上理解开源,它是一种构建生态的方式(起浪人如何掀起浪潮)。

名词

看透:找到顶级开源技术

  • 如何找到顶级开源技术? 欧建深先生为我们指引了明确的路线:
    1. 从社区文章开始,边看文章,边建立与大家的共同语言
    2. 学术池探索,随便看看,大把宝藏
      学术研究大概是下图这样一个过程:

      其中,综述类论文是描述边界的工具,阐述一个领域最近正在发生什么事情、进行什么动作。
      那么,综述既然这么专业,它是谁写的,在什么情况下写的呢?其实,它是一些行业泰斗为了获得学术上的突破而对本行业已知研究方向所做的统筹归纳

为了使大家具有一个更清晰直观的认识,欧建深先生举了相关实例:

  • 分门别类型

    这种是对各种技术整体架构的分类概括,就像高中一些理科学科的教辅,经常会有一些思维导图式的框架,一张图的背后藏着一本书。因此,顺着结构图走,基本上就能把某个领域的内容和研究方向摸透,达到与学术前沿齐平的水平。

  • 结构原理型


    这种是讲解各个技术配件之间是如何配合的,由于硬件或软件天生的结构特点造成存在某些问题,例如EROFS文件系统为什么要采用改造的固定输出大小LZ4算法,而不直接采用已有的LZ4,是因为Flash的存储节点是4k大小的扇区,为了实现4k对齐提高存储利用率,需要对原本的LZ4进行相应优化。

玩转:科研玩成短途旅程

  • 用 “老子到此一游” 的轻松心情,看待复杂高难度的啃论文

    学术研究诚然平淡无味,但以一种“老子到此一游”的心态来玩,再冷酷无情的科研,也终将转变成轻松愉快的奋斗日记。

动词

数学模型中的开源社区运营

  • 开源社区运营体系中同样蕴涵着数学模型的对应,欧建深先生用了两本著作进行解析,感兴趣的读者可参考下方相关链接,具体内容这里不再展开。


总结

  • 我们回顾了活动的绝大部分主体分享内容,从LVS项目到数学模型的应用,无不传达出巨大的信息量。温故而知新,笔者自己也有了新的认识。这是一次难得的高规格学习机会,期待后续仍有幸参加相关活动,也希望能够对读者有所帮助,如有不周之处敬请指出,直播回放:《CCF开源高校行第一期》

附件链接:https://ost.51cto.com/resource/1811

想了解更多关于鸿蒙的内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://ost.51cto.com/#bkwz

::: hljs-center

:::

以上是关于ELT.ZIP《CCF开源高校行第一期》观后感的主要内容,如果未能解决你的问题,请参考以下文章

#打卡不停更#ELT.ZIP啃论文俱乐部——统计压缩编码机理分析

CCF GitLink开源编程夏令营 · 学生开放报名

#夏日挑战赛#ELT.ZIP啃论文俱乐部——学术科研方法论沉淀辑

ELT.ZIPOpenHarmony啃论文俱乐部——多维探秘通用无损压缩

ELT.ZIPOpenHarmony啃论文俱乐部——即刻征服3D网格压缩编码

ELT.ZIPOpenHarmony啃论文俱乐部——计算机视觉数据压缩应用