在云原生生态中,容器镜像和其他云原生制品的管理与分发是至关重要的一环。本书对开源云原生制品仓库Harbor展开全面讲解,由Harbor开源项目维护者和贡献者倾力撰写,内容涵盖Harbor的架构、原理、功能、部署与配置、运维、定制化开发、API、项目治理和成功案例等,很多未公开发表的内容在本书中都有详尽讲解,如:Harbor的架构原理;OCI制品的支持方式;高可用制品仓库的设计要点;镜像等制品的扫描;权限和安全策略;备份与恢复策略;API使用指南等。
无论是对于Harbor用户、开发者和贡献者,还是对于云原生软件开发工程师、测试工程师、运维工程师、IT架构师和IT技术经理,抑或是对于计算机相关学科的高校学生来说,本书都有非常重要的指导和参考价值。
业界首部云原生制品仓库Harbor巨著,数十位业界专家力荐,Harbor项目维护者及贡献者倾力打造
张海宁
VMware中国研发中心云原生实验室技术总监,Harbor开源项目创建者及维护者,拥有多年软件架构设计及全栈开发经验,为多个开源项目贡献者,Cloud Foundry中国社区较早的技术布道师之一,“亨利笔记”公众号作者,从事云原生、机器学习及区块链等领域的创新工作。
邹佳
VMware中国研发中心主任工程师,Harbor开源项目架构师及核心维护者,拥有十多年软件研发及架构经验,获得PMP资格认证及多项技术专利授权。曾在HPE、IBM等多家企业担任资深软件工程师,专注于云计算及云原生等领域的研究与创新。
王岩
VMware中国研发中心高级研发工程师,Harbor开源项目维护者,负责Harbor多项核心功能的开发,专注于云原生、Kubernetes、Docker等领域的技术研究及创新。
尹文开
VMware中国研发中心高级研发工程师,Harbor开源项目维护者,从Harbor的原型研发开始一直参与Harbor项目,长期从事容器领域的研究及开发工作。
任茂盛
VMware中国研发中心高级研发经理,Harbor开源项目维护者,在网络、虚拟化、云计算及云原生领域有丰富的产品开发及管理经验。在VMware先后负责vSphere、OpenStack、Tanzu等现代应用平台产品的开发。
姜坦
VMware中国研发中心主任工程师,Harbor开源项目核心维护者,毕业于北京航空航天大学,从事云原生领域的软件开发工作。
裴明明
网易杭州研究院轻舟云原生架构师,Harbor开源项目维护者,主要负责网易轻舟云原生DevOps体系设计、研发及落地等,在云原生、DevOps、微服务架构等领域拥有丰富的经验。
邓谦
VMware中国研发中心研发工程师,Harbor开源项目贡献者,参与了Harbor多个组件及功能的开发工作,多次参与Harbor的技术活动支持及分享,在云原生及监控系统等领域拥有丰富的经验。
何威威
VMware中国研发中心高级研发工程师,Harbor开源项目贡献者,专注于性能测试调优、云原生等领域的技术研发。
孔矾建
腾讯高级工程师,负责腾讯云镜像仓库产品的研发;Harbor开源项目维护者,深耕容器镜像存储及分发、云存储、云原生应用领域。
张子明
VMware中国研发中心高级研发工程师,Harbor开源项目贡献者。拥有多年软件全栈开发经验,对云原生、配置管理等领域有较深入的研究。
陈家豪
VMware中国研发中心研发工程师,专注于容器、网络及分布式技术的研发,积极参与开源社区的建设,是区块链开源项目Hyperledger Cello的维护者之一,也是联邦学习开源项目FATE及KubeFATE等的贡献者。深耕虚拟化、云计算及区块链等领域。
张道军
VMware中国研发中心主任工程师,Harbor开源项目贡献者,毕业于北京航空航天大学。关注应用性能监控、性能调优、云原生等领域。
陈德
腾讯专有云平台研发工程师,Harbor开源项目维护者,主要负责腾讯云原生有状态服务管理平台的设计及开发,并实现服务的自动化运维管理。
本书写作初衷
2013年,Docker在发布之后取得空前的成功,成为史上非常受欢迎的开发工具之一。除了简便、易用,镜像技术也是Docker的核心所在,包括镜像格式的创新和用于镜像分发的Registry服务。Docker公司的著名口号“Build, Ship and Run”(构建、传送和运行),概括了应用开发的精髓,其中隐藏的含义是“构建镜像、传送镜像和运行镜像,一切皆以镜像为中心”。OCI组织的三个规范与该口号分别对应:镜像规范(构建)、运行时规范(运行)和正在制定的分发规范(传送)。尽管目前这些规范有一些不同的实现,但镜像规范的实现基本上以Docker的镜像格式为主。由此可见,镜像是容器应用的关键技术,围绕镜像的一系列管理工作将是实际运维工作的重中之重。
在Docker出现之前,我在Sun公司任职时已经接触和使用过容器技术(Solaris Containers)。从2012年开始,我在VMware公司负责Cloud Foundry开源PaaS项目的技术推广工作。Cloud Foundry项目使用了被称为Warden的容器引擎来运行应用。Warden与Docker类似,都是PaaS项目中的容器执行引擎,只是被“埋藏”在Cloud Foundry项目中,没有像Docker那样独立发布出来。
我初次接触Docker后,被其流畅的使用体验和优秀的容器方案所震撼,深感这将是应用开发的一个大趋势。对Docker进行研究后,我发现容器镜像是Docker软件的命脉所在,而当时并没有很好的镜像管理工具。在同期的一些技术大会上,也有不少用户抱怨在镜像管理方面遇到各种难题。
于是,针对镜像管理的诸多痛点,我带领团队开发了一个容器镜像管理软件,在公司内部试用后取得一定的成效。这个软件就是Harbor的原型。Harbor在开源后受欢迎的程度远超我们所料。Harbor图形化的镜像管理功能独树一帜,切中了容器应用开发和运维的要点,在国内获得大量用户的青睐,参与Harbor开源项目的开发者也在与日俱增。
在加入CNCF后,Harbor和全球云原生社区的合作更加紧密,并加强了对Kubernetes和Helm的支持。在Harbor 2.0中还支持OCI的镜像规范和分发规范,可管理各类云原生领域的制品。
目前已经有很多用户在生产系统中部署了Harbor,国内很大一部分用户都将Harbor作为镜像和Helm Chart的制品仓库。Harbor的维护者们通过微信群、GitHub及邮件组等的问题反馈了解到不少用户遇到的问题,这些问题产生的主要原因有二:其一,用户对Harbor的安装、配置等理解不彻底;其二,文档资料不完整或者缺失。由此可见,Harbor用户亟需一本参考书作为Harbor系统的使用指引,然而市面上并没有这样的书籍。正逢电子工业出版社的张国霞编辑邀请我编写一本关于Harbor的技术书,我便与Harbor项目的维护者们进行了沟通,沟通的结果是大家一致希望编写本书来完整介绍Harbor项目的方方面面,让Harbor带来更大的价值。本书的编撰工作便开始了。
撰写书稿是相当艰辛的,大多数作者需要在繁忙的工作之余挤出时间查资料和编写书稿,并且互相审阅和修订,有的章节甚至修改了不下十遍。但作者们都有一个共同的心愿:希望通过本书把Harbor的各个功能准确、详尽地传递给读者,帮助读者理解和使用好Harbor的功能。
本书特色
这是一本全面介绍Harbor云原生制品仓库的书籍,涵盖Harbor架构、原理、配置、定制化开发、项目治理和成功案例等内容,由Harbor开源项目维护者和贡献者倾力撰写,其中不乏Harbor项目的早期开发人员,甚至Harbor原型代码的编制者。
需要特别说明的是,很多未公开发表的内容在本书中都有详尽讲解,如:Harbor的架构原理;OCI制品的支持方式;高可用制品仓库系统的设计要点;镜像等制品的扫描、权限和安全策略;备份与恢复策略;API使用指南等。对Harbor用户和开发者来说,本书是非常理想的参考资料。
本书读者对象
◎ 云原生软件开发工程师、测试工程师和运维工程师
◎ IT架构师和技术经理
◎ Harbor开源项目的用户、开发者和贡献者
◎ 计算机相关学科的高校学生
本书架构及使用方法
本书共有13章,部分章节由多位作者合力完成,以更准确地阐释相应的内容。下面列出每章的主要内容和作者。
第1章介绍云原生应用的产生背景、以镜像为主的制品管理原理和规范,以及制品仓库的作用,由张海宁负责撰写,任茂盛、裴明明参与撰写。
第2章概述Harbor功能和架构,为读者理解后续的章节做铺垫,由姜坦负责撰写。
第3章详细讲解Harbor的安装、部署,包括高可用部署的方案要点,还包括对Harbor的入门性介绍,由王岩负责撰写,孔矾建、任茂盛参与撰写。
第4章介绍Harbor支持和管理OCI制品原理、常见OCI制品的使用方法,由任茂盛负责撰写,尹文开、张海宁、邹佳参与撰写。
第5章阐释Harbor的权限管理和访问控制的原理,以及相关配置方法,由何威威负责撰写,张海宁参与撰写。
第6章解析Harbor中可使用的安全策略,包括可信的内容分发和漏洞扫描机制,由邹佳负责撰写。
第7章讲解镜像、Helm Chart等制品在Harbor中的远程复制原理,以及与其他仓库服务的集成原理,由尹文开负责撰写。
第8章详述Harbor的高级管理功能,包括资源配额、垃圾回收、不可变Artifact、保留策略、Webhook等,由王岩负责撰写,裴明明、张子明、邓谦参与撰写。
第9章解释Harbor生命周期的管理过程,包括备份、恢复、升级的步骤和方法,由邓谦负责撰写。
第10章梳理Harbor的API的使用方法并给出编程示例,由尹文开负责撰写,张海宁参与撰写。
第11章描述Harbor后台异步任务系统的机理,并分析其主要源代码的工作原理,由邹佳负责撰写。
第12章汇集和整理Harbor与其他系统的整合方法及社区用户的成功案例,由张海宁负责撰写,裴明明、任茂盛、孔矾建、陈家豪参与撰写。
第13章介绍Harbor开源社区的管理原则、告警机制和开源项目的参与方式,并展望项目的发展方向,由张海宁负责撰写,邹佳、王岩、孔矾建、张道军、尹文开、陈德参与撰写。
我们建议读者这样使用本书:
◎ 对云原生领域特别是容器技术不太了解的读者,可以先阅读第1章的基础知识;
◎ 初次接触Harbor的读者,可以直接阅读第2章以快速了解Harbor的功能和架构;
◎ 希望快速上手Harbor的读者,可以按照第3章的讲解,从部署Harbor仓库软件着手;
◎ 对Harbor有一定使用经验的读者,可以按需阅读第3~13章的内容;
◎ 有意向参与Harbor开源项目贡献的开发者,可以重点阅读第13章。
加入本书读者交流群
本书已建立读者交流群,既可以参见封底提示加入,也可以在“亨利笔记”公众号后台回复“读者”二字获邀加入,入群后可以进行技术讨论和意见反馈。希望加入Harbor用户群的读者,可以关注“Harbor社区”公众号(微信号为HarborChina),在后台回复“入群”二字,即可收到入群邀请。
致谢
本书的主要编写时间在2020年4月之后,因为正处特殊时期,所以本书的写作交流几乎只能线上进行,但作者们都拥有共同的信念且相互信任,克服了重重困难,使本书顺利出版。在此感谢各位作者为本书出版付出的巨大努力,他们是VMware中国研发中心Harbor开发组的成员:主任工程师邹佳、高级研发工程师王岩、高级研发工程师尹文开、高级研发经理任茂盛、主任工程师姜坦、研发工程师邓谦、高级研发工程师何威威、高级研发工程师张子明、主任工程师张道军,以及网易杭州研究院轻舟云原生架构师裴明明、腾讯高级工程师孔矾建、VMware中国研发中心研发工程师陈家豪、腾讯专有云平台研发工程师陈德。其中,特别感谢邹佳,他不仅编写了翔实的内容,还协助我进行了统稿和协调工作。感谢任茂盛组织和协调写作资源,也感谢王岩、尹文开、裴明明撰写了大量内容。同时感谢电子工业出版社的张国霞编辑,她不辞劳苦地为本书进行策划、审稿、校正等工作,并鼓励作者们完成艰巨的写作任务。
由衷感谢为本书作序的各位大师和领导。其中,我的恩师、微众银行首席人工智能官杨强教授给予我很多鼓励和支持,推动了联邦学习与Harbor等云原生技术的融合,并拨冗写序和提出宝贵意见。VMware中国研发中心总经理、Harbor项目联合发起人任道远先生是我多年的领导,也是中国云原生社区不遗余力的布道者和倡导者,他从Harbor的原型阶段开始一直支持和推动着项目的发展,对Harbor项目取得的成绩功不可没。网易云计算中心总经理陈谔先生是云计算和云原生探索和实践的先锋,他带领的网易轻舟团队在微服务平台中使用了Harbor,还给Harbor开源项目贡献代码,为本书提供了实践案例等内容,在推荐序中分享的服务架构演进的经验更值得我们研读和学习。
感谢同事Harbor项目经理徐天行先生、王晓璇女士、宋春雪女士对Harbor中国社区长期以来的管理和运营,以及对出版本书的协助。感谢我多年的挚友李天逸先生对本书内容的帮助。感谢为本书提供Harbor案例的社区用户和合作伙伴:广州市品高软件股份有限公司联合创始人刘忻先生、品高云产品总监邱洋先生、上海骞云科技创始人和CEO方礼先生、前才云科技CEO张鑫先生、CNCF官方大使和京东技术架构部产品经理张丽颖女士、360搜索事业群高级总监张华先生。也感谢广大Harbor用户对本书内容所提出的建议。
最后,感谢我的爱人和孩子,因为写作本书,我牺牲了很多陪伴他们的时间,他们的鼓励也使我能坚持把书写完。同时,感谢我的父母和兄长,他们在我童年时代学习计算机知识时给予我的支持和指导,使我在信息技术领域一直走到现在。
张海宁
2020年9月