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

网站服务器_oppo云登录服务器_精选特惠

小七 141 0

华为用Atlas构建Apache Spark软件设备

华为技术是全球领先的ICT解决方案提供商,提供企业解决方案、消费设备和运营商网络。华为总部位于中国深圳,2014年实现利润55亿美元。华为一直在积极投资于企业IT基础设施解决方案领域,例如基于OpenStack的云基础设施和基于Spark的BigData基础设施,其中开源软件栈是核心产品。本博客总结了华为使用HashiCorp的Atlas构建和部署apachespark集群的经验。»问题陈述:完全自动化apachespark集群的部署在构建大规模基础设施流程(如Spark部署)的背景下,华为需要创建一个自动化管道来构建可部署工件,部署这些工件,然后根据需要更新基础设施。在"基础设施即代码"时代,作为一个大型工程组织,华为非常关注基础设施自动化的软件工程方面。一个核心目标是看看我们是否可以构建一个解决方案,其中90%的代码是可重用的,而只有10%的代码需要针对不同的客户用例进行定制。我们还希望有一个灵活的方法,如果基础设施自动化代码针对的是Ubuntu操作系统,我们可以将其扩展到一个CentOS系统,只需付出很少的额外努力。提供解决方案的一个方面是提供基础设施。我们希望得到答案的其他一些问题是,我们是否可以简单地更改一些参数来定制某些环境,同时保持其余复杂的基础设施自动化代码不受影响。我们的测试基础设施(使用了大量的测试套件)确实反映到了客户的基础设施部署中,我们能让自己安心吗?此外,为了避免意外的错误配置,我们希望预先验证计划,并以不变的方式在测试、登台和生产环境中部署基础架构解决方案。这是提供我们希望验证的基础设施解决方案的质量和安全方面。如果我们的基础设施自动化代码从工件发布到生产部署都满足上述两个要求,那么我们就可以以灵活和响应的方式秘密地为我们的客户提供高质量的基础设施产品。»项目范围以基础设施为准则,华为和HashiCorp建立了一个项目,实现了Spark集群到Amazon Web服务的自动化和可重复部署。项目的范围和要求是:自动部署-从"零"到live Spark群集只需单击一次集中式运行时视图—有一个"单一窗格"来查看集群的活动状态动态服务发现-在群集更改时无需手动重新配置参数化配置-区域、集群大小、实例大小等。请注意,Amazon Web Services是我们在本项目中的示例场景测试平台,其最终目标是获得足够的信心,使用于构建Spark群集的基础设施自动化代码能够并且将能够在不同的云平台上工作,包括我们客户的私有OpenStack云。»实施利用来自HashiCorp产品套件的Packer、Terraform、consult和Atlas,团队能够在几天内完成项目并满足要求。»不可变工件的包装器在部署过程中减少移动部件的数量是高效部署工作流的关键原则。如果您的部署包括跨部署的每个新服务器重复下载和软件安装,则任何网络中断或包镜像缓存未命中都可能导致部署延迟或失败。Packer帮助将这些软件下载和安装步骤与基础设施软件部署的最初步骤之一隔离开来。Packer支持许多供应器(输入,如bash脚本或配置管理工具,如Puppet和Ansible)和许多构建器(输出,如Amazon Machine Images),Packer在需要对其应用程序构建有信心的工作流中不可或缺。对我们来说,支持多个供应器是至关重要的,因为背景和技能集在各个方面都有很大差异,一些团队可能采用了新的配置管理工具,如Ansible,而有些团队可能使用遗留脚本。{"建筑商":\[{"type":"亚马逊ebs","access\\\u key":"{user\`aws\`u access\`u key\`}","secret\\\u key":"{user\`aws\`u secret\\`u key\`}","region":"{user\`region\`}}","source\\`ami":"{user\`source\\\`ami\`}","instance\\u type":"t2.micro","ssh\\u username":"ubuntu","ami\\`name":"{user\`atlas\`u name\`}}{timestamp}}"}\],"后处理器":\[\[{"type":"图集","only":\amazon ebs"\],"artifact":"{user\`atlas\\`username\`}}/{user\`atlas\`u name\`}}-amazon ebs","工件\ \u类型":美国焊接学会","元数据":{"创建时间:"{{timestamp}}}}\]\]...}封隔器/火花-领事.json在这个Spark基础设施自动化项目中,Packer被用来为各种执政官和Spark角色构建AMI。由于consur也在Spark节点上使用(下面有更详细的信息),Packer能够在生成的每个AMI工件上重用安装脚本。随着Packer集成到Atlas的构建支持中,随着对GitHub上安装脚本和打包器配置的每次更改,新的工件都会被构建和部署。»部署自动化平台将应用程序从可部署工件转移到实时环境的下一步是部署自动化。从历史上看,在物理世界中,部署新的基础设施非常耗时、成本高昂且容易出错。随着云计算的出现,提供新基础设施的时间和成本已经大大减少,但是基础设施环境比以往任何时候都更加复杂,并且手工管理这些环境,甚至使用初级自动化仍然很容易出错,几乎没有变化的可追溯性。就像团队版本控制他们的应用程序代码一样,Terraform为版本基础设施带来了这些相同的功能。团队可以使用一种通用的配置语言进行协作,该语言定义了基础结构的每个组件—每个不同的配置属性、资源之间的依赖关系以及不同环境的参数化。Terraform使开发人员和操作员能够在应用变更之前看到变更的执行计划,允许他们自信地继续工作,或者恢复和调整配置—这是一个安心的保证时刻。资源"aws\\u instance""spark master"{实例\ \类型="${变量实例\_类型}"ami="${atlas\_神器火花-master.metadata\_全域-美国东部-1}"key\\\u\_配对火花-按键\_姓名}"{user template\$U\_文件.spark-主人-开始.渲染}"vpc\\\\安全性\ \ \组\ \ \ \${aws\\U安全性\_组.管理-访问.id}","${aws\\u安全性\_星火集团-主控形状id}"\]子网\ \u标签{Name="${format("spark master-%04d",计数.索引)}"}}地形/实例.tf有了Terraform,Spark环境就可以按需创建和销毁了-有信心每次环境都与前一个环境相同。Terraform还可以通过简单地更改Terraform配置文件中的一个变量,方便地根据需要调整Spark集群的大小。Atlas为审查和批准基础设施变更提供了集中的协作空间。»运行时编排顾问在云计算和基础设施完全自动化的时代,基础设施环境比以往任何时候都更加动态。传统上,基础结构配置是手工管理的,在如此复杂的环境中这很容易出错;或者在最近几年中,使用配置管理工具,但是,即使是这些工具对于今天的大规模环境来说也太麻烦了——它们被设计成"构建时"(早期绑定)更改,而不是"运行时"(后期绑定)更改。consur使运行时服务发现和配置变得很容易——对服务注册和集成的健康检查提供一流的支持。通过许多接口,consur可以在创建和删除节点时调整整个基础结构的拓扑和配置,更重要的是,当节点变得不正常并返回到正常状态时。{"服务":{"name":"火花大师","端口":7077,"支票":\[{"script":"ps aux | grep-v grep | greporg.apache.spark网站.deploy.master.master","间隔":"10s"}\]}}领事/spark-master.json文件对于我们的Spark项目,consur提供了整个Spark集群健康状况的实时视图和集群的服务注册。随着Spark集群大小的增减,consur自动跟踪健康和不健康的节点。由于Spark主节点变得不正常并被替换,CONSUR将自动更新Spark slave配置并重新启动集群以适应新的主节点。Atlas提供了服务和节点目录的集中视图,以及集群实时运行状况的视图,并提供了警报的完整历史记录。»用于集中协作和运行时洞察力的Atlas随着基础设施复杂性继续以越来越高的速度增长,运营意识和透明度与以往一样重要。随着开发和运营团队的成长,往往会分散在世界各地,从而深入了解谁在什么时候改变了什么变得异常困难,更不用说在事后验尸、可审计性和变更跟踪方面有历史记录了。HashiCorp的Atlas是一个现代化的基础设施部署工具。Atlas将HashiCorp的开发和基础设施管理工具(Packer、Terraform、Consult等)集成到一个统一的仪表板和协作空间中,