云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名交易_域名交易中心_测评

小七 141 0

HashiCorp Nomad公司

今天我们宣布Nomad,一个专为微服务和批处理工作负载设计的集群管理器和调度器。Nomad是分布式的、高度可用的,并且可以扩展到跨越多个数据中心和区域的数千个节点。Nomad提供了一个通用的工作流来跨基础结构部署应用程序。开发人员使用声明性作业规范来定义应用程序的部署方式及其所需的资源(CPU、内存、磁盘)。Nomad接受这些作业并找到可用的资源来运行它们。调度算法确保满足所有约束条件,并将尽可能多的应用程序打包到主机上,以优化资源利用率。此外,Nomad支持在所有主要操作系统上运行的虚拟化、容器化或独立应用程序,使其能够灵活地支持广泛的工作负载。Nomad现在正被部署在生产环境中,我们很自豪地与大家分享它。我们对这个项目的未来感到兴奋,并且刚刚开始建立在它提供的基础上。继续阅读以了解更多信息。»特征Nomad结合了资源管理器和调度器的功能。作为资源管理器,Nomad收集每个主机的可用资源和功能的信息。作为一个调度器,中央Nomad服务器在提交作业时使用这些信息来做出最佳的布局决策。这些功能为Nomad提供了很多可能性,但以下是一些突出的功能:Docker:Nomad支持Docker作为一流的工作负载类型。提交给Nomad的作业可以使用docker任务驱动程序轻松部署容器化应用程序。作业可以指定所需的实例数,Nomad将自动处理放置和从故障中恢复。操作简单:Nomad作为一个二进制文件提供给客户机和服务器,不需要外部服务来进行协调或存储。Nomad是分布式和高可用性的,它将资源管理和调度合并到一个系统中,以简化操作。多数据中心和多区域:Nomad将基础设施建模为一组数据中心,这些数据中心构成一个更大的区域。调度在区域级别运行,允许跨数据中心调度。多个区域联合在一起,允许在全球范围内注册工作。灵活的工作负载:Nomad对任务驱动程序具有可扩展的支持,允许它运行容器化、虚拟化和独立的应用程序。用户可以轻松地启动Docker容器、VM或Java之类的应用程序运行时。Nomad支持Linux、Windows、BSD和OSX,提供了运行任何工作负载的灵活性。为规模而建:Nomad从一开始就是为了支持全球规模的基础设施而设计的。Nomad是分布式的,具有高可用性,它同时使用了领导人选举和状态复制,以在出现故障时提供可用性。Nomad是乐观的并发,使所有服务器都能参与调度决策,从而提高总吞吐量并减少延迟,以支持高要求的工作负载。»游牧民族的工作工作是Nomad的核心,因为他们描述了Nomad应该运行的任务。HCL语言用于指定作业,这使得作业易于阅读,并且便于版本控制。作业是声明性的,指定应该运行什么,并将如何运行和在何处运行的详细信息留给Nomad。下面是一个使用Docker运行web服务器的Nomad作业规范示例:#定义hashicorp/web/frontend作业作业"hashicorp/web/frontend"{#在两个数据中心运行数据中心=us-west-1,"us-east-1"]#只在linux上运行我们的工作负载约束{属性="$内核名称.attr"value="linux"}#配置作业以执行滚动更新更新{#每隔30秒交错更新一次参差="30秒"#一次更新单个任务最大平行=1}#定义任务组"前端"组{#确保我们有足够的服务器来处理流量计数=10任务"web"{#使用Docker运行我们的服务器driver="docker"配置{image="hashicorp/web-前端:最新"}#要求一些资源资源{cpu=500内存=128网络{兆比特=10动态端口=http"]}}}}}这是一个非常简单的示例,但是展示了Nomad的一些功能。Nomad作业由任务组组成,这些任务组是必须一起运行的任务集合。每个任务都是由驱动程序执行的单个应用程序。驱动程序为Nomad提供了运行虚拟化、容器化或独立应用程序的灵活性。在发布时,Nomad可以使用Qemu来运行完整的虚拟机,Docker可以运行容器,Java可以运行独立的jar,exec驱动程序可以运行任何预安装的应用程序。这些驱动程序旨在演示可能的工作负载范围,并且支持将随着时间的推移而扩展。这个示例作业还显示了Nomad的约束执行能力。约束可用于限制有资格运行任务且可以在作业、组或单个任务级别表示的主机。它们可以是由于应用程序需要特定内核版本的技术原因,或是出于业务原因(如PCI合规性)而施加的。我们可以看到,在作业中指定了一个更新块,当作业定义更改时,该块通知使用的更新策略。这为开发人员提供了对应用程序进行滚动更新以最小化服务中断的简单方法。除了更新之外,通过更改任务组中所需的计数,可以轻松地缩放应用程序。最后,我们可以看到任务指定了它需要的资源。调度程序使用它将许多应用程序打包到一台计算机上,以最大限度地提高利用率。资源隔离使用诸如cgroup、命名空间和chroots之类的操作系统控件来防止失控的使用。»目前技术水平Nomad被构建成一个通用的调度器,它使用简单,但功能强大,足以处理大规模的复杂工作负载。我们在仔细研究了现有技术并利用了我们的分布式系统工具组合中成熟的、经过生产强化的库之后设计了它。集群管理是基于googleborg和Omega的,它们经过了10年的生产使用改进。Omega引入了新颖的乐观并发机制,我们采用这种机制来支持多个调度器实现中最苛刻的工作负载。领袖选举使用Raft,斯坦福大学的一种共识算法。我们的实现是为数千个组织和数百万个服务器的consur和powers服务发现和配置而开发的。Nomad使用Raft避免任何外部协调或存储,使其操作简单。联邦是通过建立在游泳者之上的基于农奴的流言蜚语来完成的。Serf部署在世界各地,包括圣迭戈超级计算机中心,为超大型基础设施的成员和协调提供支持。之所以使用Gossip,是因为它是轻量级的,使Nomad能够将多个区域联合到一个单独的全局集群中。数据存储使用BoltDB,一个完全兼容ACID并提供多版本并发控制(MVCC)的嵌入式数据库。这些属性保证了数据Nomad存储的安全性,同时也具有极高的性能。状态索引使用MemDB,它是建立在不可变数据结构上的内存索引。MemDB为调度决策提供了对状态的并发访问,无需锁争用,从而允许Nomad有效地扩展。»HashiCorp建成在HashiCorp,我们为DevOps问题构建解决方案,这些解决方案在技术上是可靠的,并且使用起来非常愉快。我们不会在我们选择的技术上走捷径,同样重要的是,在使用和操作我们的工具时,我们也不会走捷径。因此,HashiCorp制作的工具稳定、可伸缩、易于使用和操作。Nomad是我们制造的第八个这样的工具。我们还建造了流浪汉、包装工、农奴、执政官、地形、地窖和奥托。Nomad使用我们的工具生态系统,但不需要任何工具。我们计划将Nomad与我们现有的工具进行更紧密的集成,以便为服务发现、安全性和容量管理提供更丰富的功能。奥托将能够透明地使用Nomad,提供最简单的用户体验。我们为Nomad感到骄傲,也很高兴看到社区了解并开始使用它。»了解更多要了解更多有关Nomad的信息,请访问Nomad网站。以下几页尤其是好的下一步:简介-介绍部分更详细地解释了Nomad是什么,它是如何工作的,包括一个简短的入门指南,这样你就可以在自己的机器上玩Nomad并开始调度作业。Internals—Internals部分是一个高级主题,但它为感兴趣的人提供了有关Nomad所有内部结构的详细信息。使用Nomad不需要阅读,但是如果您想了解Nomad背后的技术,建议您阅读。与其他软件的比较-如果你想知道Nomad与其他选项有什么不同,请看一下这个页面,我们会详细介绍这些差异。GitHub-Nomad的源代码托管在GitHub上,如果你想深入研究的话。我们建议首先阅读文档,因为了解Nomad的工作原理将有助于理解实现。

上一篇:没有了

下一篇:网站服务器_oppo云登录服务器_精选特惠