商务服务
「开源软件供应链点亮计划——暑期 2020」USTCLUG 项目提案
2024-11-19 03:05

「开源软件供应链点亮计划」是由中国科学院软件研究所发起并长期支持一项活动,旨在解决基础开源软件面临的许可、质量、维护和技术支持等问题,进而影响整个软件产业的供应链。而「开源软件供应链点亮计划——暑期 2020」是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。

「开源软件供应链点亮计划——暑期 2020」USTCLUG 项目提案

此活动与 GSoC (Google Summer of Code) 的模式类似:开源项目/社区提供项目需求与导师 (mentor);学生申请项目通过后利用暑期的时间进行开发,将成果贡献给社区;主办方(中科院软件所与 openEuler 社区)根据评估结果给学生发放奖金。所有参与的社区列表可查看 https://isrc.iscas.ac.cn/summer2020/#/organisations。

今年夏天,USTCLUG (中科大学生 Linux 用户协会) 计划以社区身份加入此暑期活动。以下是我们计划的项目提案,也欢迎社团的各位同学提出建议。

本提案参考了清华大学 TUNA 协会(清华大学学生网络与开源软件协会)的项目提案,在此表示感谢。

在报名前,请先阅读由主办方提供的学生指南。

项目描述:目前,科大镜像站的前端架构仍然沿用着 2013 年的设计,但是随着时间的发展,我们也发现目前的镜像站前端架构在用户体验、维护与部署上带来了一些不便。目前的镜像站主页是由一套 Python 脚本每小时从模板生成得到的,虽然足够使用,但是在维护中也遇到了一些问题,诸如界面设计的实用性、主页与 status 页面显示不一致等问题。本项目希望能够通过调整镜像站前端架构,提高用户体验,降低维护的复杂度,也方便其他需要的镜像站部署页面显示的解决方案。

项目难度:

项目社区导师:付佳伟

导师联系方式:ibug@ustclug.org

合作导师联系方式:陶柯宇 taoky@ustclug.org

项目产出要求:以下要求不需要全部达到,选择感兴趣的方向即可

  • 调整页面结构,与 Nginx FancyIndex 结合,提供美观的文件列表页面
  • 改进页面功能,提供准确的仓库最近更新时间(可以参考 status 页面)
    • 为了得到准确的更新时间,需要能够与多种同步后端结合,包括科大镜像站目前使用的镜像同步工具 Yuki,以及传统的 crontab + 同步脚本的方式
  • 与帮助页面更好的结合,例如
    • 自动为新的帮助页添加首页上的链接
  • 提升易用性,例如
    • 提供一个各大发行版的软件源配置生成器,方便用户快速切换软件源
  • 美化页面,例如
    • 使用响应式设计在不同平台上都能提供良好的显示效果
    • 提供对深色模式的支持
  • 前端工程化,提高可维护性,例如
    • 使用 Sass 或 LESS 重构 CSS 结构
    • 使用 Vue.js 实现前端模板和(部分)动态页面效果
    • 分离获取更新时间等仓库信息的这部分逻辑,更方便与其他数据源对接
  • 改善部署文档,方便其他需要的镜像站部署

项目技术要求:

  • 熟练一种方便灵活的编程语言及该语言常用的模板框架,例如
    • Python 和 Jinja2
    • Ruby 和 ERB
  • 或者熟悉一种静态网站生成器的使用,例如
    • Jekyll
    • Hugo
  • 熟悉 web 纯前端开发

相关的开源软件仓库列表:

  • https://git.lug.ustc.edu.cn/mirrors/mirrors-index
  • https://github.com/ustclug/yuki

License: GNU GPLv2

项目描述:Hackergame 是 USTCLUG 开发的一套开源 CTF 比赛平台,主要用于每年举办的科大信息安全大赛,随真实需求不断进行技术迭代,并且重视生产环境下的安全性和可靠性。目前使用的是 Django + Vue.js 框架,但前后端解耦仍然不够充分,代码中写死了一些不合理的规则,很多地方缺少通用性和灵活性,测试和部署也不够方便。本项目希望能通过调整架构设计,重构部分代码,得到一个更加通用、健壮的比赛平台,让将来比赛中的实际需求更容易实现。

项目难度:

项目社区导师:王子博

导师联系方式:hypercube@0x01.me

合作导师联系方式(选填):暂无。

项目产出要求:以下要求不需要全部达到,选择感兴趣的方向即可

  • 在不影响安全性和可靠性的前提下,用 Django REST framework 重构后端,用现代前端工具链(Yarn、webpack 等)重构前端
  • 增加自动测试、Docker 化部署、持续集成等工具
  • 通过重构去除代码中写死的规则,如登录方式、参赛组列表、每个参赛组需要收集的个人信息
  • 改正一些不正确的业务模型,如:
    • 题目应该支持打开链接、下载源代码、下载文件等操作,而不是只能打开一个 URL
    • 用户组、用户属性和权限的模型需要重新设计
    • 比赛应该有尚未开始、正在进行、暂停、结束等多种状态,而不是只有开/关两种
  • 增加一些新功能,如:
    • 让出题、导入题目、审查题目、修改题目等操作更容易
    • 所有操作保留历史记录以便审计和回滚
    • 支持动态分数题目
    • 支持 I18N

项目技术要求:

  • 熟练使用 Python 和 Django
  • 了解前后端开发和运维全过程
  • 会避免常见的 web 安全漏洞

相关的开源软件仓库列表:

  • https://github.com/ustclug/hackergame

License: MIT

项目描述:

传统文件系统(如 XFS)、ZFS、RAID 等解决方案对于镜像站的负载类型来说并不高效:首先在用户读取文件时,RAID 会带来读取放大,在用户读取小文件时影响尤甚;其次文件系统的元数据无法确保一直缓存于内存中,从而使列目录等操作容易成为性能瓶颈。

而使用单副本的对象存储可以解决以上的两个问题:由于镜像站的数据更像是缓存,允许丢失,因此可以采用单副本的方式存储,免去冗余保护。坏盘后只需更新元数据删除对应的文件,触发增量同步即可;而关于元数据,在对象存储的实现中,大多使用数据库存放元数据,而数据库性能调优有许多成熟的工具和经验。这对元数据访问优化是比较有利的。

本项目的难点在于:对象存储的实现需要考虑坏盘更新元数据,删除对应文件,平滑过渡、平衡各个磁盘的读负载,避免负载集中在同一块磁盘上,以及使用 SSD 加速读取请求。目前开源的对象存储实现(如 OpenIO 和 minio)都无法很好满足需求;另外,下游的 rsync 同步会带来较高的并发量,fuse 可能会带来性能问题。

在工业界中,CDN 缓存的需求(数据可靠性不敏感、数据量大、吞吐量高)与本项目希望解决的问题也是类似的。

项目难度:

项目社区导师:高一凡

导师联系方式:yifan@ustclug.org

合作导师联系方式(选填):暂无。

项目产出要求:

  • 基于现有的对象存储实现进行修改,支持以上提到的部分特性,包括:
    • 坏盘更新元数据,删除对应文件,平滑过渡
    • 平衡各个磁盘的读负载,避免负载集中在同一块磁盘上
    • SSD 加速读请求(可选)
  • 测量下游的 rsync 同步为对象存储方案带来的性能影响。(可选)
  • 服务器集群(可选)
    • 使用单副本的方式,一旦磁盘故障,在下次成功同步之前,将会出现镜像不完整的问题。此时可以从集群中的其他节点获取数据。
    • 镜像分级。对于不重要的镜像(或目录),可以在多个节点之间共享一个副本,从而提高可用空间,为更多镜像服务。

项目技术要求:

  • 熟悉任何一种高性能的编程语言
  • 能够阅读并理解现有对象存储的实现,以提出改进方案
  • 对文件系统的实现有一定了解

相关的开源软件仓库列表:

  • https://www.openio.io (开源对象存储实现)
  • https://github.com/minio/minio (开源对象存储实现)
  • https://github.com/openstack/swift (开源对象存储实现)
  • https://rclone.org/ (S3 API fuse 实现)
  • https://github.com/kahing/goofys/ (S3 API fuse 实现)

License: 与指定修改的开源对象存储实现相同。

项目描述:

镜像站通常会借助 rsync 协议,在上下游之间同步数据。在实践中,我们遇到的问题是:当有两台服务器分别存储不同的镜像内容(例如,一台存储热门内容,另一台存储冷门镜像),对外提供 rsync 服务时,接入点无法统一。

本项目希望以反向代理 rsync 服务的方式解决此问题。即:所有 rsync 请求通过一台统一的反向代理服务器,根据请求的 module name 代理至不同后端服务器。

项目难度:

项目社区导师:高一凡

导师联系方式:yifan@ustclug.org

合作导师联系方式(选填):暂无。

项目产出要求:

  • 实现 rsync 反向代理
    • 解析 rsync 握手协议
    • 处理不同协议版本号间的兼容性
  • 支持透明代理特性(可选)

项目技术要求:

  • 对网络编程有一定了解
  • 能够阅读并理解 rsync 工具源代码,理解其协议

相关的开源软件仓库列表:

  • https://git.samba.org/?p=rsync.git (原版 rsync)
  • https://github.com/tuna/rsync (TUNA 实现的 rsync,缓存元数据在内存中以减少磁盘开销。科大镜像站目前亦使用此版本的 rsync 为下游提供服务。)
    以上就是本篇文章【「开源软件供应链点亮计划——暑期 2020」USTCLUG 项目提案】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/27530.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
WordPress企业主题制作(定制)应该注意哪些事项?
选择制作方是首要关键的一个环节,几年前那种百度几百元买的网站,现在几百元又套在WordPress上作为企业主题,能用吗?能,但是基本是
Win10连接wifi显示“无Internet,安全”的解决方法【详解】
  电脑升级到 win10 64位系统 后难免会遇到一些故障问题,比如连接WiFi网络无线的时候都会出现无Internet,安全的提示,怎么办
TCLAI应用助力经济增长 2024年创效5.4亿元
在2024TCL全球技术创新大会上,TCL宣布通过AI技术应用,创造经济效益达5.4亿元,引发业界广泛关注。此次大会于12月11日在深圳举
如何通过SEO分享提升网站流量与排名
关键词是SEO的基础,也是提升排名的关键因素之一。通过深入的关键词分析,找出与自己业务相关且有较高搜索量的关键词,然后合理
企业互联网营销必备《SEO攻略》
原标题:企业互联网营销必备《SEO攻略》 从这里了解互联网 解读热点 推送营销新思维 自从我们千享科技推出SEO推广业务以来,收到
如何找到可靠的100个免费软件下载安装入口必备神器助你畅享互联时代!
如何找到可靠的免费软件下载安装入口在互联网时代,软件已经成为我们日常生活和工作中不可或缺的一部分。然而,寻找可靠的免费软
收获颇丰!黄金白银期货保证金(为投资者提供一个全面的理解框架)
黄金白银期货,作为全球金融市场中的重要组成部分,以其独特的避险属性和投资价值,吸引了无数投资者的目光。而在这一市场中,保
acfan 软件下载最新版
acfan软件下载最新版是一款非常火爆的动漫视频播放软件,这款软件里面为用户们提供了丰富多样的资源,在观看的时候,用户们还能
从收录检测到安全防护的SEO工具大全
总是有朋友问我们,有没一套较为完整的SEO所需工具大全,省得找来找去了,今天我们就给大家带来从收录到安全的SEO工具大全! 综
曝明年多家手机厂商将测试北斗通信 华为领先一个身段
  虽然其他国产厂商也在积极研发相关技术,但它们目前尚未获得使用北斗卫星通信系统的批准。这些厂商主要使用的是天通卫星通信