“推出 Swarm”,“被 K8s 弃用”。Docker 曾两次被断言死亡,如今生态逐渐恢复,正式推出付费商业版 Docker Desktop。
美国当地时间 8 月 31 日下午,Docker 宣布推出 Business (商业)版本的 Docker Desktop(Docker 桌面),为大型企业提供更丰富的组件/功能。商业版 Docker 桌面沿用订阅模式收费,定价为 21 美元/月。
Docker 首席执行官斯科特·琼森(Scott Johnston)表示,“短期来看,我们需要解决供应链安全的挑战。而长期来看,今天全球开发者有大约 1800 万人,而到 2030 年,这一数量将上涨到 4500 万,庞大的开发者市场处于持续增长中。在这一背景下,Docker 如今已成为业界标准,我们要持续扩展业务,就必须有一个可持续的商业模式,因此我们推出了新的收费版本。”
据悉,推出商业版 Docker Desktop 后,原先的免费版本改名为“个人版”(Personal)。而收费版(包括 Pro、Team 和 Business)针对大规模企业,其要求公司员工数量超过 250 人或者年收入超过 1000 万美金的企业如果使用桌面版,必须支付订阅费。
Docker Desktop 是一个 GUI 工具,用于管理各种 Docker 组件和功能,包括容器、图像、卷(附加到容器的存储)、本地 Kubernetes、容器内的开发环境等。大多数 Docker 组件可用于 Windows、Mac 和 Linux,但 Docker 仅适用于 Windows 和 Mac。相比较而言,商业版的 Docker Desktop 增强了包括集中管理、单点登录和增强安全性在内的功能。
对于新版本的特性来说,琼森提到 “使用商业版用户 Docker Desktop 的用户可以在统一的控制平面中设置开发人员的内容访问权限。而后根据内容会根据权限分发到相应的开发人员的 Docker 桌面,同时,该桌面能够在开发环境中使用。”除此外,琼森还提到“我们还提供基于 SaaS 的集中管理,以控制 CPU 的使用率、内存、端口和防火墙访问权限的配置。例如为了解决业务层的安全和用户管理问题,我们推出了单点登录功能”。
有亮点就会有局限性,Docker Desktop 推出的新版本亦如是。Docker Desktop 新版本发布时,Docker CEO 琼森提到此次新版本发布不涉及 Docker 的命令行引擎。其实,虽然 Docker 有 20%~25%的开发环境使用的是 Linux 系统,但 Docker Desktop 一直不支持 Linux 版本。对此,琼森提到,我们一直希望 Docker Desktop 能统一管理一致的开发环境,但目前时机还不成熟。
除了不支持 Linux 开发环境外,Docker Desktop 在远程开发方面也有不完善之处,如 GitHub Codespaces 或 Gitpod。使用本地计算机搭载 Mac/Windows/Linux 是当下大部分用户的选择,但也有用户对本地和远程的开发环境一致性有需求。琼森提到,这一问题需要时间,未来会逐步得到解决,而当下,如果对此需求强烈的用户,可使用 Linux 环境进行开发,以解决本地和远程开发体验的一致性问题。
Docker 平台作为业界标准,拥有众多组件,上述 Docker Desktop 仅仅是其中一部分。那么,整个 Docker 平台是什么样的呢?
Docker 是一个容器平台,其用于构建,保护和管理从开发到生产在内部和云端的应用程序。总体来说,Docker 平台有很多组件,除了 Docker Desktop 外,还包括 Docker 镜像,Docker 容器,Docker 守护进程,Docker 客户端,Docker 注册表和 Docker Hub。他们的之前互相联系,形成如今的 Docker 平台:Docker 镜像定义了容器的内容。Docker 容器是可运行的镜像实例。Docker 守护进程是一个后台应用程序,用于管理和运行 Docker 镜像和容器。Docker 客户端是一个命令行实用程序,它调用 Docker 守护进程的 API。Docker 注册表包含镜像,Docker Hub 是一个广泛使用的公共注册表。大部分 Docker(但不是桌面)在Apache v2 许可下是开源的。
而从其架构和运行流程来看,Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。
Docker 运行的基本流程为:
可见,Docker 平台是一个工程复杂度很高的应用,每一次收费模式调整的背后,都牵涉到众多工程问题。而在 Docker 收费模式之外,其技术路径的成长可谓一波三折,甚至曾经历了两次死亡。
2013 年,当时名叫 dotCloud 的 Docker 公司,开源出来了自己的容器项目 Docker。Docker 通过镜像打包的方式保持了本地环境和云端环境的高度一致,解决了运维人员的一大心病,将运维人员从一遍遍的重复劳动中解放了出来。同时友好简洁的封装,对开发人员十分具有亲和力,这让 Docker 一举走红。很多后端和云计算领域的优秀的开发力量都汇集在了 Docker 的周围,生态一时间变得异常繁荣。
然而,随着社区不断壮大,Docker 意识到,作为开源生态的一部分,他们还缺少有效的商业模式,他们将眼光放到了容器编排领域,推出了 Swarm,但遗憾的是,Swarm 并未真正流行起来。这一事件后来还被称为“Doker 的第一次死亡”。
不只是网友的玩笑,作为 Docker 项目早期的重要贡献者,RedHat 对 Docker 公司推出 Swarm 的平台化战略表示很不满并愤愤退出该项目。
之后,RedHat 联合 Google,共同牵头发起了如今大名鼎鼎的 CNCF(Cloud Native Computing Foundation),推动 Kubernetes 的发展(K8s)。由于 K8s 极其开放的生态,以及 Docker 自身盈利和技术的问题,K8s 不断发展壮大,成为主流。
甚至到 2016 年 9 月,Google 和 RedHat联合宣布了“fork Docker”,也就是后来的 CRI-O 项目,用产品表达对 Docker 价值取向的不满。并在 2020 年 12 月弃用 Docker 支持,宣告竞争结束。这一事件被网友戏称为“Docker 的二次死亡”。
在此之后,Docker 痛定思痛,开始了自救与革新之路。首要目标便是推广社区版项目,增加生态系统健康度。2020 年,经过一年的努力后,Docker 成功将社区版项目中一小部分用户转化为付费客户,直接导致其 2020 年年度经常性收入 (ARR) 同比增长 170%。并于 2021 年 3 月获得 2300 万美元 B 轮融资,开始发力产品创新,提升用户做容器化应用开发的生产力。
如今,半年时间过去,Docker 推出了 Docker Desktop 商业版,并将免费版本统一为个人版。分不同梯度收取订阅费,正式开启商业化之路。
在不久的将来,随着 Docker 在产品、社区推广和商业模式上不断迭代进步,或许我们能看到 Docker 再次作为容器领导者归来。
领取专属 10元无门槛券
私享最新 技术干货