今天的分享大致分为五个部分:容器运行时的统一、多语言 Binding、平行容器模式、插件系统、以及多种云原生对象兼容。
在2022年年初的时候,我们诞生了一个想法,能不能开发一套 SDK:它让开发者操作所有的云原生对象就像操作主机一样简单直接。比如可以打开一个镜像,或者打开一个容器,同时它可以屏蔽同对象不同类别的差异化实现(比如对于容器运行时来说,我们不需要考虑是 docker 还是 containerd),基于这套 SDK,开发者只需要关心核心的检测逻辑,而不需要担心任何的兼容和适配性问题。
同时可以基于插件机制进行拓展,进一步降低开发者的工作成本。针对部分可以复用的服务,比如缓存服务,远程镜像加载服务,不需要自行研发。我们这样的想法促使了问脉 SDK 的诞生。今天的分享主要就是揭秘这套 SDK 的设计思路,以及研发过程。
1、容器运行时的统一
抽象不同容器运行时的公共行为,不需要关心底层交互。
2、多语言 Binding
基于 Binding 机制,提供多语言生态。
3、平行容器模式
以平行容器模式运行,开箱即用。
4、插件系统
以插件机制调用云原生安全能力。
5、多种云原生对象兼容
支持扫描集群,IaC 等非容器运行时对象。
回馈开源社区,我们作为开源生态拥抱者在 Github 开放了两个项目。第一个项目是 libVeinMind,是一个容器安全的 SDK,它可以帮助我们快速实现一些安全检测,比如扫描镜像或者容器时直接使用即可,不需要自己单独写一套完整的底座。另一个项目是容器安全工具集 veinmind-tools,以宿主加插件的模式运行,包含敏感信息扫描、漏洞扫描、容器逃逸扫描等十余种插件。大家可以扫描左侧二维码加入讨论群进行详细交流。
直播视频查看:「问脉」底层架构大揭秘|云原生安全公开课第二期
项目地址:https://github.com/chaitin/veinmind-tools
这次分享干货满满,剖析了许多「问脉」底层架构的设计思路的原理,在今后的分享中,我们会结合这两次直播的经验,用更生动有趣的方式分享更多技术细节的干货!希望营造云原生社区良好的讨论氛围,让我们一起学习,共同进步!大家可以持续追更,敬请期待!我们下期见!
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)