AWS在开源方面一直在悄悄地稳步改进。以前Corey Quinn可能是对的,他说,在过去,AWS“一贯而且错误地试图塑造一种观念,即他们正在以与大型科技公司同行同等的水平为开源生态系统做出贡献。”但现在,这正在发生。
AWS发现实现其第一个领导力原则(客户至上)的一个关键是以有意义的方式出现并为客户关心的开源项目做出贡献。Apache Kafka 就是最新的例子。
开关翻转了
Divij Vaidya的推特让我惊讶。这是一位AWS工程师,他已经成为Apache Kafka最活跃的贡献者之一。当然,这只是上个月的事。看看卡夫卡PMC委员会,里面挤满了来自Confluent和其他公司的个人,他们为Kafka贡献了多年。
即便如此,几个月前,Vaidya加入Amazon Managed Service for Kafka(MSK)团队后,立即开始为Kafka贡献代码,并正在招聘一个团队专门为Kafka贡献代码。
这正是批评人士一直在说的AWS没有做到的。
AWS过去和现在都更关心照顾客户,而不是受到开源受众的欢迎。因此,该公司一直致力于成为“客户在云中构建和运行开源软件的最佳场所”。
从历史上看,这往往不涉及或不需要贡献给它一直围绕着构建托管服务的开源项目。许多人认为这是一个错误,因为一家公司的业务如此依赖开源,却没有维持其所依赖的项目,从而使其供应链处于风险之中。这一切有很多很好的理由,但也有更令人信服的理由去改变和做更多的事情。
事实就是这样;不过,一般来说,并不用大张旗鼓。
PostgreSQL撰稿人(有时是AWS开源评论家)Paul Ramsey注意到了这一点。正如他最近告诉笔者的那样,“这就像一两年前AWS的开关翻转了。实现在他们开发的软件中成为一个真正的利益相关者的战略价值,现在被认为是值得花钱的。”
照顾客户
几年前,时任AWS工程主管的Tim Bray认为,运维开源软件至少与构建开源软件同等重要。
Bray补充道:“让人们擅长从虚无中创造高价值软件的品质,并不一定就是让他们擅长运维的品质。”
言外之意是,AWS可能没有贡献太多的代码,但使这些代码易于客户实际使用本身就是一大贡献。这是真的。
但是,AWS似乎正在改变,也许是悄悄的,通常是在幕后发生的——向AWS服务团队的转变,他们在为客户运作的开源项目中拥有更大的所有权。这使他们能够更有效地交付成果,因为他们可以帮助制定客户的路线图,并确保AWS客户获得完整的开源体验,而不是一种附带补丁的分叉代码库,这些补丁会堆积成技术债务。
Vaidya和MSK团队以及Madelyn Olson就是一个例子,Madelyn Olson是AWS ElastiCache团队的工程师,也是Redis的五个核心维护者之一。还有AWS的员工为Kubernetes、etcd等公司做贡献。
AWS仍然不是其中大多数的主要贡献者。还没有。正如Quinn所说,谷歌、微软和红帽往往在许多排行榜上名列前茅。这在道德上也不是错的,“亚马逊(和任何公司)都是为了赚钱,而不是做你的朋友。”
但慢慢地,AWS产品团队肯定会发现,拴住客户的一个关键因素是关注这些客户所依赖的开源项目。换句话说,AWS为客户承担的“无差别的繁重任务”的一部分就是管理这些客户所需要的开源项目。