为什么Etcd很重要以及它如何彻底改变了云计算
现代云原生应用程序运动的核心是一种开源技术,它可能并不像应有的那样众所周知。该技术是开源的etcd项目,它提供了一个分布式密钥值存储,供所有主要的公共云提供商使用,并且是Kubernetes容器编排系统的核心。
etcd项目并不新鲜。实际上,它是由CoreOS的一个开发团队在五年前开始的,CoreOS是一家在1月30日被Red Hat以2.5亿美元收购的公司。作为分布式密钥值存储,etcd提供了一种机制,可以存储数据在一组不同的机器上以稳定,可靠和一致的方式。截至12月11日,etcd项目是云原生计算基金会(CNCF)的一部分,该基金会也是Kubernetes项目的所在地,还有30个其他云原生项目。
“当我们五年前开始这个项目时,Etcd已经超越了我们最大的愿望,”CoreOS的联合创始人,目前在Red Hat首席技术官办公室工作的Brandon Philips 在一次视频采访中告诉eWEEK。“今天,每个主要的云提供商都使用了etd。它是Kubernetes的关键部分,它正在成为许多云原生项目的关键部分。
etcd的核心是解决了需要为服务器集群提供一致的全局配置的云原生技术的技术要求。etcd技术首先在CoreOS自己的Fleet项目中找到了一个家,这是容器编排的早期努力,已被Kubernetes取代。
etcd内部的一个主要元素是正在运行的内容的分布式共识的概念,这是通过Raft容错一致性算法的实现来实现的。
超越Kubernetes
虽然etcd是Kubernetes的基本元素,但这并不是唯一依赖它的项目。飞利浦评论说,在过去两年中,许多其他项目都采用了等待。这些项目包括Vitesse的开源工作,它提供了一个分片的云原生MySQL数据库实现。在数据库世界中,分片是分发的数据段,以帮助提高可靠性。
优步还将etcd用作其开源m3指标跟踪技术的一部分。此外,飞利浦表示他了解多个组织使用etcd进行内部使用。
“看到etcd最终到处都是令人兴奋的,”飞利浦说。“我们一直希望etcd成为重要数据的数据存储,不会因各种机器故障而丢失。”
Blockchain
区块链在2018年不乏大肆宣传,拥护者声称采用了加密安全的数字分类账技术的各种用途。使用区块链,承诺是分发数据并进行加密验证。这个概念与etcd已经为Kubernetes和其他技术采用者提供的功能并不完全不同。
飞利浦解释说,区块链基本上有两个核心属性。第一个是分布式信任,第二个是具有可验证加密哈希的数据库。
“很长一段时间以来,Etcd实际上都有一个可验证的哈希特征。它是一种审计方式,即集群中的每台机器都具有完全相同的数据副本,”他说。
下一步是什么?
etcd的当前版本是3.3,目前正在进行版本3.4的工作,发布时间为2019年中期。展望未来,飞利浦表示现在正在做很多工作来使etcd更易于部署。正在开发的另一个核心功能是能够更轻松地执行数据库降级。
“许多数据库,包括etcd,可以实现即时升级集群,”飞利浦表示。“Google和其他一些大型运营商一直在研究设计文档,因此您也可以在实时的时间内降级etd集群。