机房360首页
当前位置:首页 » 业界动态 » 2015年最佳开源数据中心和云计算软件

2015年最佳开源数据中心和云计算软件

来源:云头条 作者:机房360 更新时间:2015-9-17 15:31:01

摘要:知名IT杂志《InfoWorld》评选出了年度最佳开源平台、基础设施、管理和编排软件,一起来看看吧。

  Sensu

  管理大规模数据中心的关键不是使用服务器的图形用户界面(GUI),而是根据来自监控工具和服务的信息,自动编制脚本,转发来自传感器和日志的信息,然后将操作/行动告知应用程序。Sensu就是开始提供这种功能的一个工具,它常常被称为“监控路由器”。

  在数据中心中运行的脚本将信息发送给Sensu,然后Sensu再将信息发送给相应的处理程序,使用一种基于RabbitMQ的发布/订阅架构。服务器可以呈分布式,将发布的检查结果发送给负责处理的代码。你可以在电子邮件、Slack房间或Sensu自己的仪表板中查看结果。消息格式由JSON文件来定义,变异器(mutator)被用来实现数据实时格式化,消息经过滤后交给一个或多个事件处理程序。

  Sensu仍是一种比较新兴的工具,但是大有希望。如果你想实现数据中心自动化,就需要这样一款工具,不仅用来表明数据中心出现的情况,还可用来在最需要的时候提供这方面信息。一款商业版本增加了支持与第三方应用程序集成的功能,但是开源版本含有管理数据中心所需的大部分功能。

  Prometheus

  管理现代数据中心是项复杂的任务。一排排服务器需要小心对待,你还需要旨在处理成千上万个节点的监控系统。监控应用软件带来了特殊的挑战,这时候Prometheus可以发挥用场。作为一种旨在向操作人员提供警报的服务监控系统,Prometheus可以在各系统上运行,无论是一台笔记本电脑,还是多台监控服务器组成的高可用性集群。

  时间序列数据捕获后存储起来,然后与模式进行比对,识别故障和问题。你需要暴露HTTP端点上的数据,使用YAML文件来配置服务器。基于浏览器的报告工具可处理数据显示,还有一个表达式控制台,你可以试用查询。仪表板可以用GUI构建器来构建,或使用一系列模板来编写,那样你可以提供应用程序控制台,这些控制台可使用Git等版本控制系统来加以管理。

  比如说,捕获的数据可使用表达式加以管理,因而很容易聚合来自几个数据源的数据,比如说可以将来自一系列Web端点的数据集中到一个存储区。一个试验性的警报管理模块将警报发送给常见的协作和开发运营工具,包括Slack和PagerDuty。提供了面向Go和Java等常见语言的官方客户软件库,这意味着很容易为应用程序和服务添加支持Prometheus的功能,而第三方选件可以将Prometheus扩展到Node.js和.Net。

  Elasticsearch、Logstash和Kibana

  运行现代数据中心会生成大量数据,还需要从这些数据中获取信息的工具。这时候,Elasticsearch、Logstash和Kibana这对组合(常常被称为ELK架构)可以发挥作用。

  Elasticsearch旨在处理可扩展的搜索任务,对多种类型的内容执行搜索,包括结构化和非结构化文档。它基于Apache的Lucene信息检索工具,还有一组充分利用REST的JSON API。它用来为维基百科和GitHub等网站提供搜索服务,使用分布式索引,具有自动化负载平衡和路由功能。

  现代云架构的基础是物理服务器阵列,作为虚拟机主机来运行。监控成千上万台服务器需要集中式日志。Logstash负责采集和过滤那些服务器(以及在服务器上运行的应用程序)生成的日志,并使用每一台物理机和虚拟机上的转发器。然后,Logstash格式的数据发送给Elasticsearch,为你提供了搜索索引:添加更多的服务器后,搜索引擎可以迅速扩展。

  在更高层面上,Kibana为Elasticsearch添加了可视化层,提供Web仪表板,用于探究和分析数据。仪表板可以围绕定制搜索来构建,并与团队共享,提供了一种快速、易于理解的开发运营信息源。

  Ansible

  管理服务器配置是管理现代数据中心或云基础设施的任何开发运营方法的一个关键部分。配置管理工具采用了期望状态的方法,简化云级别系统管理,使用服务器和应用程序的描述来处理服务器和应用程序的部署。

  Ansible提供了极简的管理服务,使用SSH来管理Unix节点,使用PowerShell与Windows服务器协同运行,无需部署代理。Ansible Playbook用YAML描述服务器或服务的状态,将Ansible模块部署到处理配置的服务器,一旦服务运行起来,就删除模块。你可以使用Playbook来编排任务,比如说使用一个脚本来部署多个Web端点。

  可以让模块创建和Playbook交付成为持续交付过程的一部分,并使用构建工具来提供配置、实现部署自动化。 Ansible可以汇集来自云服务提供商的信息,简化虚拟机和网络的管理。Ansible中的监控工具能够自动触发额外的部署,帮助管理和控制云服务,还竭力管理Hadoop等大规模数据平台所使用的资源。

  Jenkins

  做好持续交付不仅仅需要一种井然有序的方法来处理开发,还需要管理测试和构建的工具。这时候,Jenkins持续集成服务器应运而生。Jenkins与你选择的源代码控制、测试工具以及构建服务器协同运行。它是个灵活的工具,最初用来与Java协同运行,现在已扩大到可支持Web开发和移动开发,甚至可以构建Windows应用程序。

  把Jenkins比作交换网络可能最恰当,让文件通过测试和构建过程,并回应来自所使用的各个工具的信号――这归功于1000多个插件组成的庞大库。这些包括将Jenkins与本地Git实例和GitHub整合起来的工具,那样可以将持续开发模式扩展到你的构建和交付过程。

  使用Jenkins之类的自动化工具不仅要奉行一种理念,还要实施构建过程。一旦你致力于持续集成作为持续交付模式的一部分​​,只要代码分发给源代码控制版本分支,你就要运行测试和构建周期,一旦代码进入到主分支,就要分发给用户。

  Node.js和io.js

  现代云应用程序使用不同于我们熟悉的n层企业和Web应用程序的设计模式构建而成。它们是分布式、事件驱动的服务组合,这些服务可迅速扩展,并支持成千上万个并发用户。Node.js就是采用这种新模式的一项关键技术,它被许多主要的云平台所使用,易于安装,成为云基础设施上瘦服务器或容器的一部分。

  Node.js大获成功,关键是Npm程序包格式,它让你可以迅速安装核心Node.js服务的扩展件。这包括Express和Seneca等框架,这些框架有助于构建可扩展的应用程序。中央注册中心处理程序包分发,依赖项自动安装。

  虽然io.js分支暴露了项目管理方面的问题,但是它也让一组开发人员得以积极地将ECMAScript 6支持功能添加到与Npm兼容的引擎中。两支团队协调后,Node.js的和io.js代码库已合并,现在新版本来自io.js代码库。

  明年,其他分支可能会重新并入到主分支,比如微软的io.js分支增加了对64位Chakra JavaScript引擎以及谷歌V8的支持,从而让Node.js的平台不断发展,巩固其作为云级别微服务首选主机的地位。

  Seneca

  Seneca微服务框架的开发人员有句座右铭:“现在构建,以后扩展”。对任何想开发微服务的人来说,这句格言再恰当不过了,因为它让你可以从小处做起,然后随着服务增多,逐步添加功能。

  从本质上讲,Seneca实施了对象/消息(actor/message)设计模式,专注于使用Node.js作为交换引擎:获取消息后,处理其内容,然后发送适当的响应,无论是发给消息始发者还是另一个服务。由于专注于与业务用例相对应的消息模式,拿来Seneca后,比较容易为你的应用程序迅速构建极简的可行产品。插件架构让你很容易将Seneca与其他工具集成起来,迅速为服务添加功能。

  应用程序的要求提高或有变时,可以迅速为代码库添加新的模式,或者把现有模式分解成不同的服务。一个模式还可以调用另一模式,以便迅速重复使用代码。还很容易将Seneca添加到消息总线,那样可以把它用作一个框架,处理来自物联网设备的数据,因为你只需要定义监听端口,监视JSON数据在哪里提供。

  服务可能不具有持续性,Seneca为你提供了这个选择:使用内置的对象关系映射层来处理数据抽象,并提供了常用数据库的插件。

  .Net Core和ASP.Net vNext

  微软开放了.Net的源代码,此举无异于公开了该公司的这个Web平台的大部分代码。新的.Net Core版本可以在Windows、OS X和Linux上运行。.Net Core目前从微软的Codeplex代码库迁移到了GitHub,为.Net提供了一种更模块化的方法,让你可以在需要时,安装所需的功能。

  ASP.Net 5目前处于开发之中,这个Web平台的开源版本可在.Net Core上运行。你可以使用微软的MVC 6框架,将它作为Web应用程序的基础。还支持新的SignalR库,这些库增添了对WebSockets及其他实时通信协议的支持。

  如果你计划使用微软的新款Nano服务器,就要使用.Net Core编写代码,因为它是为瘦环境设计的。新的DNX是.Net执行环境,简化了将ASP.Net应用程序部署到众多平台上的任务,还有用于包装代码、在主机上启动运行时环境的工具。特性可使用NuGet程序包管理器来添加,让你可以只要使用所需的库。

  微软的开源.Net还很年轻,但是微软已承诺确保它取得成功。微软自己的下一代服务器操作系统支持开源.Net,这意味着它在数据中心和云都有一席之地。

  GlusterFS

  GlusterFS是一个分布式文件系统。Gluster把各种存储服务器聚合到一个庞大的并行网络文件系统。你甚至可以用它来代替Hadoop集群中的HDFS,或者代替成本高昂的存储区域网(SAN)系统,或者同时代替两者。虽然HDFS很适合Hadoop,但有一个不需要将数据传输到另一处来分析的通用分布式文件系统是一大优势。

  在当下商品化硬件、商品化计算以及对性能和延迟要求更高的时代,购买又大又贵的EMC SAN,希望它能满足所有要求(自然满足不了)不再是你唯一切实可行的选择。GlusterFS在2011年被红帽收购。

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2015917/n771072340.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片