InfoQ|运维必备的DevOps工具链大盘点( 五 )


三个最流行的容器调度器是 Docker Swarm、Apache Mesos 和 Kubernetes 。
Docker Swarm Docker Swarm 是 Docker 开发的一种容器调度程序 。 这个集群解决方案提供了一些优势 , 比如使用标准 Docker API 等 。
Apache Mesos Mesos 的目的是构建一个可扩展、高效的系统 , 可以支持大量的框架 。 这也是一个主要的问题:一些框架 , 如 Hadoop 和 MPI , 是独立开发的——因此不可能在框架之间进行细粒度的共享 。
Mesos 的目的是添加一个薄薄的资源共享层 , 为框架提供访问集群资源的公共接口 。 Mesos 将调度控制委托给框架 , 因为很多框架已经实现了复杂的调度 。
根据集群上运行的作业类型 , 框架可以分为四种 , 其中一些框架提供了原生 Docker 支持 , 比如 Marathon 。 在 Mesos 0.20.0 中添加了对 Docker 容器的支持 。
Kubernetes Kubernetes 是一个用于编配 Docker 容器的系统 , 它通过标签和 Pod 的概念将容器分为逻辑单元 。 Pod 是 Kubernetes 和其他两种解决方案之间的主要区别——它们是一组容器集合 , 形成一起部署和调度的服务 。 与基于关联性的容器 (如 Swarm 和 Mesos) 调度相比 , 这种方法简化了集群的管理 。
Kubernetes 调度器的任务是监控带有空 PodSpec 的 Pod 。 NodeName 指定将容器安排在集群中的某个位置 。
这是与 Swarm 和 Mesos 的不同之处 , Kubernetes 允许开发者在运行 Pod 时通过定义 PodSpec.NodeName 来绕过调度器 。
调度器使用谓词和优先级来定义 Pod 应该运行在哪些节点上 。 我们可以使用新的调度器策略配置覆盖这些默认值 。
我们可以通过命令行标志 policy-config-file 指定一个 JSON 文件 , 在启动 Kubernetes 时将会使用该文件描述的谓语和优先级 , 调度器将使用这些定义好的策略 。
10监控和日志工具 为什么监控和日志工具对于 DevOps 来说很重要?

  • 快速恢复;
  • 响应速度;
  • 透明性;
  • 发生事故时减少人工干预 。
监控和日志工具示例 ELK ELK 是三个开源产品的集合——Elasticsearch、Logstash 和 Kibana 。 它们都是由 Elastic 公司开发、管理和维护的 。
  • E 代表 ElasticSearch——用于存储日志;
  • L 代表 Logstash——用于传输、处理和存储日志;
  • K 代表 Kibana——一个可视化工具 (Web 界面) 。
Datadog Datadog 是一个针对云规模应用程序的监控服务 , 通过基于 SaaS 的数据分析平台来监控服务器、数据库、工具和服务 。
Datadog 应用程序性能监控 (APM 或跟踪) 帮助用户深入了解应用程序性能——从自动生成的仪表盘(监控关键指标 , 如请求量和延迟)到单个请求的详细跟踪信息——与日志和基础设施监控信息并列展示 。
当向应用程序发出请求时 , Datadog 可以看到分布式系统的跟踪 , 并向用户显示关于这个请求的系统数据 。
New Relic New Relic 是一家总部位于加州旧金山的科技公司 , 它开发基于云的软件 , 帮助网站和应用程序所有者跟踪服务性能 。
New Relic 的应用程序性能监控软件分析产品 (APM) 提供有关 Web 应用程序性能和最终用户体验满意度的实时和趋势数据 。
Prometheus Prometheus 是一款用于事件监控和警报的免费应用程序 。 它在时间序列数据库中记录实时指标 , 基于 HTTP 拉取模型 , 支持灵活的查询和实时警报 。
Prometheus 服务器的核心原理是抓取——也就是说 , 调用各个节点暴露出来的指标端点 。 它定期收集这些指标并将它们存储在本地 。
Zipkin Zipkin 是一个分布式跟踪系统 。 它用于收集诊断延迟问题所需的时间数据 , 提供了数据的收集和查找功能 。


推荐阅读