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