Harbor开源镜像仓库的设计理念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q48S71bCzBeYLOu9T0n/article/details/81369888

640?wx_fmt=jpeg

题图摄于慕田峪 - 飞越长城


今天,全球顶级开源组织云原生计算基金会 CNCF ( Cloud Native Computing Foundation )宣布,接纳 Harbor 开源镜像仓库成为 CNCF 旗下的托管项目,中国的云原生用户们无不欢呼雀跃。


2年前发布的 Harbor 是首个原创于中国的 CNCF 项目,也是首先由中国用户使用再推广到全世界的。Harbor 扎根、成长和壮大于中国社区,从开源的第一天开始就原生支持中文,在 CNCF 众多的项目中是绝无仅有的一个。Harbor 在国外内有数以千计的用户,包括大型金融、电信和互联网等行业的企业。


640?wx_fmt=png

部分Harbor用户(由于用户太多,恕不能一一列出)


作为 Harbor 项目的创始人,和朋友们一起见证项目从零开始,一点一点地发展到被全球用户接受和使用,我感到无比的兴奋和荣幸。一路走来,需要感谢的人实在太多。


首先要感谢的是 VMware 中国研发中心总经理任道远先生,从4年前内部项目开始持续支持着 Harbor 的研发和社区的拓展,为 Harbor 的成功奠定了坚实基础。其次是要感谢我司先后参与过 Harbor 项目研发的20多位同事(部分已离开公司 ),特别是姜坦,邹佳,尹文开、王岩等核心开发工程师,为项目成功付出了艰辛的努力。还要感谢众多社区的朋友帮助、代码贡献者的添砖加瓦以及广大用户们不断的支持和反馈,这些都是 Harbor 项目突飞猛进的源动力。

 

640?wx_fmt=jpeg

Harbor研发团队(2017.7)


和大多数项目一样,Harbor 初始人员很少,每个成员往往身兼数职,我几乎担任过“从看门人到 CEO ”之间的所有角色(^_^),包括项目经理、产品经理、架构师、程序员、布道师、文档编辑、翻译和社区运营等等。

 

之前的文章曾介绍过创建 Harbor 这个项目的初衷:主要是为了解决容器用户面对的种种镜像管理难题。本文分享一下 Harbor 的产品设计理念。有两段经历影响到了我在 Harbor 设计上的构思。

 

第一段经历是在移动互联时代,我曾是国内最早一批写 app 的程序员,那是个人英雄驰骋的年代,我开发了几个 iOS 的工具类 app,都在一天之内冲到了 app store 全站免费榜榜首和付费榜前三。凭借这个战绩,我挖到了人生“第一桶银”,这是为什么我目前所有的手机都是 iPhone 的原因。

 

我分析了那些 app 的成功经验,就是功能定位要少而精准,不要有 over engineering (过渡工程)的地方,否则只会事倍功半。

 

不少产品经理或工程师总爱追求 perfect (完美),凡事都要讲究优雅的设计、灵活的扩展能力,一劳永逸的解决方案。可是我们往往发现这些“优秀”的方案还没走向市场和用户,就已经胎死腹中。


有个例子,某 SaaS 应用为了支持多种云服务商,如 AWS,Azure,GCP 什么的,设计和预留了很多复杂的 IaaS 接口,结果上线AWS后因达不到要求而失败了,那些为 Azure 和 GCP 等留下的接口根本没有发挥热度的机会。当初把精力集中在做好功能实现上,结果可能会不同。

 

过渡追求产品功能和技术上的完整性,只会增加研发的周期,推迟走向市场的时间。这个思路在体现在 Harbor 上就是要解决用户最痛的点,永远在做MVP(Minimum Viable Product,最小可行产品),不多做无用功,以最少的投入,满足用户更多的需求。


640?wx_fmt=png

Harbor快速迭代发展的历程


第二段经历是在前一家IT公司为企业提供身份认证管理服务,在 RBAC(Role Based Access Control, 基于角色的权限管理)、LDAP 多种复制协议等场景中积累了一定的经验,对企业IT系统安全管理有较深入的理解。在容器镜像管理场景中,我意识到企业对镜像访问的控制、操作审计和镜像的传输备份都有较高的要求,因此在 Harbor 最早的设计中仅实现了4个主要功能,以安全控制为主:


1)RBAC ,支持 LDAP/AD 认证

2)日志审计 (操作可追溯性)

3)镜像复制(多数据中心或云环境之间的镜像自动同步)

4)图形化管理界面(几乎是企业应用必备)

 

这4个功能的思路是受到之前的身份管理领域经验的启发,如镜像复制的灵感来源于 LDAP 服务器的主从复制,镜像的 RBAC 来源于企业对应用的权限管理等等。这些很接地气的功能构成了Harbor 的 MVP,满足了用户70%以上的需求,因此Harbor 开源之后一炮而红,迅速获得了大量用户,推出仅半年,在 Github 上就获得1000多星。

640?wx_fmt=png

Harbor是最早实现镜像复制的Registry


在 Harbor 的设计思路中还很注重听取用户的反馈意见,遵循“从用户中来,到用户中去”的原则,不断完善、修正和迭代。被用户初步接受后,Harbor 增加了镜像漏洞扫描和镜像验真的能力,这些都是社区用户提出后增加到 Harbor 里面来的功能。Harbor 有微信群,邮件组,Slack,Github Wiki 和 Issue,Twitter,定期在线会议等用户交互的途径(文后有介绍加入的方式)。

 

精准的定位和恰当的设计确立了产品的整体格局,使产品具有了良好的开端。随后是高效地实现产品和目标明确的市场推广。有机会再和大家分享这方面的心得。


640?wx_fmt=jpeg

Harbor北京研发团队(2018.7)


Harbor 加入到 CNCF 之后,将会吸引更多的社区用户的参与,Harbor 项目正在招募社区代码贡献者和维护者(maintainer)。在国际顶级开源组织 CNCF 中成为 Harbor 的代码贡献者和维护者,不仅可以实现开发人员的自我价值,而且能够扩大社区的知名度和影响力,感兴趣的朋友可在公众号号台留言,或者邮件联系我们。


好消息分享:如果你是 Harbor 项目的代码贡献者(以 commit 为准),可免门票参加今年11月上海举行的 KubeCon 大会。具体办法参见报名网站。

 

预告:Harbor 项目将在今年上海的 KubeCon 上举行多场技术讲座,并邀请用户进行案例分享,欢迎用户提供案例给我们,可以留言告知。

 

加入 Harbor 邮件组、Slack 和参见定期社区在线会议的方式,请参见 Harbor Github首页:

https://github.com/vmware/harbor

 


640?wx_fmt=jpeg

如果你是 Harbor 的用户或开发者,可申请加入“Harbor开源项目群”交流,入群需要真实身份,并改昵称:姓名@单位。请先关注“亨利笔记”公众号,在公众号后台发送"入群"信息即可。

640?wx_fmt=jpeg

亨利笔记

 

猜你喜欢

转载自blog.csdn.net/q48S71bCzBeYLOu9T0n/article/details/81369888