Docker是干什么的?

2010 年,法国开发人员 Solomon Hykes 建立起名为 dotCloud 的开源项目,由此拓展出的概念有助于显著简化 Web 应用程序当中容器与微服务的创建流程。

试想下,传统的后端部署办法通常是这样的:把程序包(包括可执行二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。

这样做有问题吗?当然有!最大的一个问题在于:如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是:如果请求量、内存、CPU超过阈值做了告警,运维马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。此时问题出现了:从监控告警到部署服务,中间需要人力介入!那么,有没有办法自动完成服务的部署、更新、卸载和扩容、缩容呢?这就是Docker要做的事情。Docker通过在完全独立的环境中运行应用程序,这种名为“容器”的技术能够极大提高开发工作的速度、安全性与稳定性。

Docker 则凭借着在容器领域的卓越贡献而广受赞誉。作为这股浪潮中的排头兵,Docker 快速成为公认的革命先驱,并先后于 2014 年、2015 年与 2017 年分别筹得 4000 万美元、9500 万美元与 9200 万美元。最终,Docker 的融资总额达到 2.7 亿美元,这也使其凭借超过 10 亿美元的市场估值正式进入独角兽俱乐部。

当时的 Docker 在开发领域掀起一轮革命浪潮,甚至有望成为云计算战场上的又一股中坚力量。Docker的实现是非常优雅的,它把复杂的技术变得非常简单的抽象,它把容器镜像变成了应用的打包格式,可以让应用在不同环境中迁移,这个对当时的开发者而言是梦寐以求的技术能力。Docker 最大的贡献是把一个很复杂的技术变成了普惠的技术,变成了整个行业的标准,这是 Docker 给这个行业带来的最大变化这一点非常值得认可。

但技术本身是瞬息万变的,任何开创性的技术都无法保证在商业上取得成功,这一点在开源项目中体现得尤其明显。为了获得经济收益,Docker 开始创建工具以帮助企业管理容器部署任务,其中最知名的成果当数编排平台 Docker Swarm。

遗憾的是,Docker 在市场上遇到了谷歌这位劲敌,后者打造出了无可匹敌的同类产品 Kubernetes。谷歌随后将 Kubernetes 捐赠给 Linux 基金会,由其在云原生计算基金会的指导下将 Kubernetes 转换为免费开源项目。作为实至名归的现象级方案,Kubernetes 大大削弱了 Docker 在企业业务领域的生存空间。2020 年 12 月,Kubernetes 表示在 1.20 版本中弃用 Docker 支持,让 Kubernetes“不再依赖”Docker,更是让人觉得 Docker 可能会从此消失。

Docker深陷泥潭

麻烦还不止于此。Docker 公司曾先后经历过多轮换帅,2017 年 Steve Singh 取代 Ben Golub,2019 年 5 月 Singh 又被 Rob Bearden 取代,而 Bearden 的任职周期甚至只有短短的 6 个月。2018 年 3 月,创始人 Hykes 宣布正式离开 Docker。

面对挑战,Docker 决定立即行动,并于 2019 年 11 月毅然决定将企业业务(当时占其收入中的最大比重)出售给 Mirantis。Mirantis 首席执行官兼联合创始人 Adrian Ionel 称,这次收购约占 Docker 公司业务的 90%,还将包括与微软及其他公司的合作伙伴关系,这一切旨在加快 Mirantis 内部 Kubernetes 方面的工作。此外,Docker Enterprise 拥有一批出色的云原生基础架构人员,人才收购也是本轮收购的重点,75% 的员工也被一起打包出售给了 Mirantis。

这次收购导致 Docker 在舆论上深陷泥潭,出售掉公司绝大部分业务以及开发人员也实在显得有些悲惨。

标签: none

添加新评论