最近几年发生了很多事,我的个人项目纸小墨因为一些原因鸽掉了,已经打算在后面整理下开源。我也从前端转向了后端,在做和容器镜像相关的工作,最近两年我都在和同事小伙伴们维护开源项目 Nydus ,一个容器镜像 /数据分发加速框架。
发挥了下我的业余设计和前端技能,写了个简单的页面:
Nydus 简单来说就是实现了容器镜像的按需加载,利用 FUSE 技术,做到在容器启动后,再开始从远端(镜像中心)拉取必须使用的镜像数据(有一篇 FAST 论文研究分析说镜像拉取占了大约容器 76% 的启动时间,但却只有 6.4% 的数据是会被容器读取的)。这个思路并不新鲜,我们只是在镜像构建到运行做了很多优化工作,甚至为了提升性能,把它做到了内核态( Linux 5.19-rc1+)里去,让内核支持了 Nydus 格式。
也许对于小公司来说,镜像加速是完全用不到的,但对于大公司或者有大规模集群,对冷启动扩容延迟要求较高的场景(大促扩容,游戏服务器扩容,函数计算)来说,镜像加速技术不仅能将容器启动分钟级延迟降低到秒级,还能大量节省网络 /存储开销。
另外,nydus 实际上也是一个数据分发加速框架,比如很快要开源的 [tnpm](( https://dev.to/atian25/in-depth-of-tnpm-rapid-mode-how-could-we-fast-10s-than-pnpm-3bpp)) 项目,用 smallfish 测试 npm 包安装速度,基于 nydus 的 tnpm 可以把原生 npm 的 67s 降低到 8s 。其原理就是 nydus 能解决海量小文件( node_modules 黑洞)解压落盘很慢的问题,所以可以做到非常快。
在国内做开源并不容易,大家总是对国内开源项目持怀疑或者不信任的态度,我们是想做好开源的,我们的团队也是 KataContainers 的主要发起人。
这里有篇详细的介绍,如果对 nydus 感兴趣,可以帮忙在 github 给个 star :)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.