用 Go 开发的 Docker 竟然在这个大会上首发

osc_1wo6kipk 2020-11-10 10:41:11
harbor



题图摄于北京奥林匹克中心

注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标置顶,以免错过更新。

相关活动信息:

Harbor项目高手问答及赠书活动

GopherChina 2020大会报名

本文部分内容节选自最新出版的《Harbor权威指南》前言,欢迎扫码或点击“阅读原文”购买。(目前在京东满100减50优惠活动中,请抓紧机会购买。)

2013 年 3 月 15 日下午,在硅谷的圣克拉拉(Santa Clara)的一个技术大会上,一位身着黑色T恤衫的极客工程师正在进行闪电演讲(lightning talk)。因为只有5分钟的时间,他的语速很快,配合着同样快速的键盘敲击,连珠炮似地讲解和演示着他们公司的新软件。演讲结束后,演讲人立刻被许多粉丝围绕着索要软件的试用方式。当时谁也没有料到,这将是一场划时代的演讲。演讲的题目为“Linux容器的未来”(The Future of Linux Containers),演讲人为 Solomon Hykes,是一家叫做 dotCloud 的初创公司的 CEO,他们发布的新软件称为 “Docker”。

这个大会是 Python 语言的全球社区聚会 PyCon,Docker 之所以在 PyCon 上面首发,因为最开始是采用 Python 开发的。在后续的版本中,为了提升运行效率,Docker 已经用 Go 语言重写了。

 

Docker 在发布后,获得空前的成功,以极其迅猛的速度传遍了全球开发者社区,成为史上最受欢迎的开发工具之一。Docker 早期版本基于 Linux 自带的 LXC(LinuX Containers)工具库,提供了一系列更方便易用的工具链,大大降低了普通用户使用容器的门槛。Docker 和 LXC 相比又有不同的侧重点,LXC 主要目的是为系统管理员创建多个隔离的操作系统虚拟环境,而 Docker 则另辟蹊径,更侧重于开发者的需求,封装了应用且提供了隔离应用的运行环境,更加轻量和便捷,因而受到开发者的喜爱。

 

Docker 能够大获成功,除了简便易用外,还有另一个居功至伟的“杀手锏”:容器镜像。笔者在 2015 年公众号文章《Docker镜像的核心价值》中指出,镜像技术就是 Docker 软件的核心所在,包括了镜像格式的创新和镜像分发的 Registry 服务。Docker 公司有个著名的口号:“Build, Ship and Run”,翻译过来就是三个动词:“构建、传送和运行”,简练地描绘出了应用开发的精髓,其中隐含的意思是:构建镜像、传送镜像和运行镜像,一切皆以镜像为中心。OCI 组织有三个规范,分别与上述三个动词对应,即镜像规范(构建)、运行时规范(运行)和正在制定的分发规范(传送)。目前尽管这些规范有一些不同的实现,但镜像规范的实现基本上是以 Docker 的镜像格式为主。由此可见,镜像是容器应用的关键技术,围绕镜像的一系列管理工作将是实际运维中的重要组成部分。

 

在 Docker 出现之前,笔者已经接触和使用过容器技术,在之前任职的 Sun公司时,负责运用 Solaris 的容器(Container)技术做解决方案。从 2012 年开始,笔者在 VMware 公司负责 Cloud Foundry 开源 PaaS 项目的技术推广工作。Cloud Foundry 项目使用了称为 Warden 的容器引擎来运行应用。Warden 和 Docker 很类似,都是 PaaS 项目中的容器执行引擎,只是 Warden 被“埋藏”在Cloud Foundry 项目中,没有像 Docker 那样独立发布出来。笔者在初次接触到 Docker后,第一感觉是太惊艳了,使用体验相当流畅,比之前的同类容器方案优秀得多。笔者预感 Docker 将带来一场深刻的技术革命,后来也得到了印证。

 

笔者带领团队对 Docker 进行了研究,发现容器镜像是 Docker 的命脉所在,但是当时并没有很好的镜像管理工具。在一些技术大会上,不少用户也抱怨在镜像管理上遇到的诸多难题。针对镜像管理存在的痛点,笔者的团队开发了一个容器镜像管理软件,在公司内部试用后取得一定的成效。这个软件就是我们后来开源出来的 Harbor 镜像仓库。

 

Harbor 开源后的受欢迎程度远超我们的预料。伴随着云原生应用兴起的大潮,容器生态圈如火如荼地发展。Harbor 图形化的镜像管理功能独树一帜,切中了容器应用开发运维上的要点,在国内获得大量用户青睐,并且参与开源项目的开发者也与日俱增。在成为中国首个加入云原生计算基金会(CNCF)的开源项目后,Harbor和全球云原生社区的合作更加紧密,加强了对 Kubernetes 和 Helm 的支持。在 Harbor 2.0 中,还支持 OCI 的镜像规范和分发规范,可以管理各类云原生领域的制品。

 

目前在生产系统中部署 Harbor 的用户已经过千,国内很大一部分的云原生用户使用 Harbor 作为镜像和 Helm Chart 的制品仓库。Harbor 的维护者们从微信群、GitHub 的问题反馈以及邮件组等地方了解到不少用户遇到的问题,这些问题有一部分是因为用户对 Harbor 安装配置等方面理解不完全,还有一部分则是由于文档资料不完整或者缺失造成的。Harbor 社区的用户亟需一本参考书来指引 Harbor 系统的使用,然而市面上并没有这样的书籍。因此,电子工业出版社的张国霞编辑邀请笔者编写一本《 Harbor权威指南》 的技术书。笔者和 Harbor 项目的维护者们进行了沟通,大家都一致希望能够通过本书来完整地介绍 Harbor 项目的方方面面,让 Harbor 给用户带来更大的价值。

点击下面照片可在京东购买(下单时无需理会显示的价格,最后支付时会显示满100减50):

本书章节及使用方法

第1章介绍云原生应用的产生背景、以镜像为主的制品管理原理和规范,以及制品仓库的作用。

第2章概述 Harbor 功能和架构,为读者理解后续的章节做铺垫。

第3章详细讲解 Harbor 的安装、部署,包括高可用部署的方案要点,还包括对 Harbor的入门性介绍。

第4章介绍 Harbor 支持和管理OCI制品的原理、常见OCI制品的使用方法。

第5章阐释 Harbor 的权限管理和访问控制的原理,以及相关配置方法。

第6章解析 Harbor 中可使用的安全策略,包括可信的内容分发和漏洞扫描机制。

第7章讲解镜像、Helm Chart 等制品在 Harbor 中远程复制的原理,以及与其他仓库服务的集成。

第8章详述 Harbor 的高级管理功能,包括资源配额、垃圾回收、不可变制品、保留策略、Webhook 等。

第9章解释 Harbor 生命周期的管理过程,包括备份、恢复、升级的步骤和方法。

第10章梳理 Harbor 的API的使用方法并给出编程示例。

第11章描述 Harbor 后台异步任务系统的机理,并分析了其主要源代码的工作原理。

第12章汇集和整理 Harbor 与其他系统的整合方法及社区用户的成功案例。

第13章介绍 Harbor 开源社区的管理原则、告警机制和开源项目参与方式,并展望项目今后的方向。

扫码可直接在京东购买,或点击“阅读原文”购买:


要想了解云原生、区块链和人工智能等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

版权声明
本文为[osc_1wo6kipk]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4260642/blog/4710545

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云