【编者的话】随着容器化落地生根,以及迎合容器化趋势,几十个工具如雨后春笋般涌现。看看你正在使用的工具就知道了,不管是编排,CI/CD,还是日志,监控,以及其他等等。
容器生态系统正以前所未有的速度不断增长和扩大,并且拥有这么多的Docker工具和服务,仅仅了解这些工具有用的选项,你就会感受到任务的艰巨。无论你是初学者还是专家,开发人员或DevOps工程师,SRE或平台架构师,下面的列表都将成为你了解当前业内最流行的产品的指南,也可以帮助你充分利用Docker来完善开发流程的每个阶段。
Kubernetes是市场上最实用的最受欢迎的容器编排引擎。最初作为一个Google项目开始,成千上万的团队使用它来部署生产中的容器。谷歌声称它每周使用Kubernetes运行数十亿个容器。
该工具通过将构成应用程序的容器分组为逻辑单元进行工作,以便于管理和发现。
工具链接: https://kubernetes.io
使用成本:免费
Swarm是Docker解决开发人员如何在许多服务器上编排和调度容器的问题的一种方式。从1.12.0版本开始,Swarm已经被包含在Docker Engine中,并且提供了一些高级特性,例如服务发现,负载均衡,扩展和安全性。
Swarm继续将关注简单性和开发者体验作为Docker传统。通常来说Swarm比Kubernetes更容易使用。
工具链接:https://www.docker.com
使用成本:社区版免费
Mesosphere数据中心操作系统(DC / OS)是一个集成的开源平台,用于在Apache Mesos分布式系统内核上构建数据和容器。它旨在将数据中心内的多台机器视为一个或多个群集,无论是在云中还是使用内部部署软件。DC / OS可以在相同的环境中部署容器并管理无状态应用程序和有状态工作负载。
适用于Docker Swarm和Kubernetes。
工具链接:https://dcos.io/
使用成本:Mesosphere DC / OS的包月套餐基于你环境中的节点(物理或虚拟)的数量收费。
Amazon Web Services对容器编排的答复,Amazon ECS是一个高度可扩展的管理服务,允许开发人员在EC2实例上运行容器化的应用程序。它由多个内置组件组成,可以简化Docker集群,任务或服务的调度和部署。
虽然不支持在EC2之外运行容器,但其优势在于包括AWS服务优势,如CloudTrail,CloudWatch,Elastic Load Balancers等。
工具链接:https://aws.amazon.com/ecs/
使用成本:Amazon ECS不收取额外费用。仅需要支付存储和运行应用程序所需的AWS资源(例如EC2实例或EBS卷)。
经过优化的开源管理服务可在Azure虚拟机上使用,Azure容器服务提供了创建,配置和管理开放式Docker容器基础架构的必要工具。它提供简化的基于容器的应用程序开发和部署,支持Kubernetes,Mesospere DC / OS或Swarm编排。
使用你选择的应用程序管理工具进行规模化编排,并通过标准API端点进行连接。
工具链接:https://azure.microsoft.com/en-us/services/container-service/
使用成本:仅需支付虚拟机以及使用的相关存储和网络资源。
GKE由Kubernetes提供支持,可以在Google Cloud上部署,管理和扩展容器化应用程序。GKE的目标是通过改进对基于容器的工作负载的管理来优化IT团队的生产力。它隐藏了复杂和单调的管理任务,留给你的只有简单的用户体验和简单的命令行工具。
Kubernetes是GKE的骨干。虽然你不需要学习使用GKE,但是如果你了解其基础知识,则会对你的使用有所帮助。
工具链接:https://cloud.google.com/container-engine/
使用成本:0-5节点免费,6节点以上= 0.15/小时( 109.50 /月)
Cloud Foundry使用Diego架构来管理“garden”环境中的应用程序容器。Garden遵循Linux的Open Container Initiative容器托管指南,并通过Diego的其他组件提取。Diego元素通过云控制器提供应用程序调度和管理功能。
工具链接:https://docs.cloudfoundry.org/concepts/diego
使用成本:免费
Marathon是一个建立在Apache Mesos上的私有生产级平台即服务(PaaS)。Marathon框架有望扩展Docker化应用程序,并在必要时扩展到更多节点以增加可用资源池。它也可以充当容器编排工具,为容器化工作负载提供故障恢复。Marathon自动处理硬件或软件故障,并确保应用程序“始终在线”。
工具链接:https://mesosphere.github.io/marathon/
使用成本:免费
在Linux,Mac和Windows的支持下,Nomad是一款能够调度所有虚拟化,容器化和独立应用程序的单一二进制工具。从单个容器到数千个群体,Nomad允许你在几分钟内在5,000台主机上运行100万个容器。Nomad通过在更少的服务器上有效地分配更多的应用程序来帮助提高密度,同时降低成本。
工具链接:https://www.nomadproject.io/
使用成本:免费
Helios开始成为Spotify的内部工具,可确保数百个微服务器在数千台服务器上高效工作。它能够大规模部署和管理容器,并且配备了基于HTTP的API以及命令行客户端。
Helios不需要特定的网络拓扑; 它只需要一个ZooKeeper集群和一个运行该工具的机器上的JVM。它可以作为一个开源项目。
工具链接:https://github.com/spotify/helios
使用成本:免费
不仅仅是一个容器编排器,还是一个用于在生产环境中运行Docker的完整的容器管理平台。RancherOS是一个基于容器的操作系统(OS),能够提供诸如全局和本地负载平衡,多主机联网以及卷快照等多种基础架构服务。Rancher集成了本地Docker管理功能,如Docker Machine和Swarm。
工具链接:http://rancher.com/
使用成本:免费
星云(Nebula)是为Docker编排而创建的一个新的开源项目,旨在管理大规模集群。该工具通过按需要缩放每个项目组件来实现此目的。该项目的目标是充当物联网设备的Docker Orchestrator,以及CDN或边缘计算等分布式服务。星云能够通过一个API调用同时更新全球数以万计的物联网设备。星云旨在帮助开发人员和操作人员处理物联网设备,就像分布式Docker化应用程序一样。
工具链接:http://nebula.readthedocs.io/en/latest/
使用成本:免费
Jenkins是领先的CI工具,使开发和运营团队能够周期性的自动构建和测试应用程序。因此,它已经成为与DevOps齐名的工具。Jenkins是一个独立的基于Java的程序,开箱即用,提供了数百个插件,可以与堆栈中的其他工具集成。该工具使你能够快速配置构建代理,部署工件,然后快速拆除。
使用成本:免费
CircleCI承诺帮助软件团队专注于为客户提供价值,而不是维护CI基础架构。CircleCI通过使CI过程更快,更简单,提高了IT团队的工作效率。它快速集成并允许你在注册后立即构建和部署。通过SSH进行手动调试,并在开始项目时同时动态缩放容器的数量。
工具链接:https://circleci.com/
使用成本:第一个容器是免费的; 开源项目+3免费;额外的容器$ 50 /月(每个容器)
Travis CI是一个免费的开源CI项目,通过自动构建和测试代码更改来提高开发的效率。软件即服务(Saas)平台随即能够对代码更改的成功与否提供即时反馈。Travis CI还能够通过管理部署和通知来自动化项目开发的其他部分。
工具链接:https://travis-ci.org/
使用成本:免费
CodeShip是一个完全可定制的CI平台,通过与已建立的Docker工作流程协作,为Docker提供本地支持。该平台致力于提高速度和安全性,并通过自动执行测试和部署任务来完成工作,从而完全控制构建环境。它提供了对许多其他云平台和编排工具的支持。
工具链接:https://codeship.com/
使用成本:
GitLab结合了CI,CD和代码审查来处理整个应用程序的生命周期。它与Docker Engine上的GitLab runner结合使用,以启用应用程序的自动化测试和构建。其他功能还包括活动流,IDE,问题跟踪和存储库管理。GitLab CI还有一个内置的容器注册表来扫描和存储Docker存储库。
工具链接:https://about.gitlab.com/features/gitlab-ci-cd/
使用成本:
加快与可发布的软件交付; 为开发人员提供的SaaS平台,大大缩短了构建,测试和部署代码到生产所需的时间。Shippable被设计成一个一站式的自动化平台,通过提供完整的工作流可视性,实现DevOps的实践和优化创新。简单的即插即用接口意味着可以与许多其他应用程序架构和技术堆栈轻松集成。
工具链接:https://www.shippable.com/
使用成本:
CodeFresh提供了一个完整的工具链,开发人员可以创建和自动化交付管道。这些Docker本地CI / CD管道基于Kubernetes构建,通过缓存提供快速高效的资源管理。CodeFresh将企业就绪的注册表与Kubernetes的无缝连接和部署相结合。
工具链接:https://codefresh.io/
使用成本:
立即构建,测试和部署应用程序。Buddy是一个CI / CD和用户反馈平台,具有友好的用户界面,快速集成和工具,使得持续部署更加方便和高效。它支持所有流行的语言和框架,包括Angular,Ruby,Python,PHP / Laravel,Node.js和.NET Core。
工具链接:https://buddy.works/
使用成本:
作为一个开放源代码的CI和部署即服务平台,Drone基于使用Go和Docker的容器技术。该平台不需要安装,配置或服务器维护,它可以与BitBucket,Heroku,GitHub等无缝集成,以使用Docker容器自动化代码构建,测试和部署。
工具链接:https://drone.io/
使用成本:
Docker本地CI&CD自动化平台,旨在帮助软件开发人员构建和部署其应用程序和复杂的微服务架构。Wercker与Kubernetes进行本地集成,可以自动执行部署工作流程,使您可以专注于构建应用程序。
工具链接:http://www.wercker.com/
使用成本:
对于Caylent对容器监测的洞察力,请查看我们的博客文章,了解Prometheus和Grafana与Sysdig和Sysdig Monitor的优缺点。
Sumo Logic是一款云本地日志审查工具,可提供高级分析,可视化和警报选项。度量监控解决方案提供实时安全和操作信息,并允许你诊断和解决所有应用程序和基础架构问题。机器学习分析还意味着在威胁和异常成为问题并影响最终用户之前快速发现和预测威胁和异常。
工具链接:https://www.sumologic.com/
使用成本:
Prometheus由SoundCloud开发,是一个开源的系统监控和警报工具包。它包含许多方面的监控,例如度量标准生成和收集,结果可视化以及发生异常时的警报功能。Prometheus擅长于记录数字时间序列,并补充了以机器为中心的监控以及高度动态的面向服务的体系结构。
工具链接:https://prometheus.io/
使用成本:免费
Sysdig开源是所有Sysdig产品背后的核心技术。开源工具旨在提供单个主机的详细故障诊断,并作为基于命令行的界面工作。
工具链接:https://www.sysdig.org/
使用成本:
Sysdig Monitor(正式名为Sysdig Cloud)是Sysdig用于生成和分析系统级信息和实时数据的商业解决方案。作为Linux系统探索的故障排除工具而设计,它提供了深入的容器可视性,使其在Docker环境中非常有用。
工具链接:https://sysdig.com/product/how-it-works/
使用成本:云和软件版本灵活定价
Datadog是一个基于SaaS的大规模云环境数据分析平台,可以从服务器,数据库和应用程序生成和收集度量/数据事件。全栈监控服务为Docker,Kubernetes和Mesos提供支持。
工具链接:https://www.datadoghq.com/
使用成本:
作为行业的领导者,New Relic是一个纯粹的基于SaaS的性能管理解决方案,它允许开发人员实时诊断和修复应用性能问题。它的应用程序性能监视(APM)功能提供即时可见性,并且其基础架构内的Linux代理程序会自动收集在已安装主机上运行的Docker容器度量标准。
工具链接:https://newrelic.com/
使用成本:
Google的cAdvisor(Container Advisor)是一个监控解决方案,它分析在Docker中运行的容器的所有性能特征和资源使用情况。该工具将生成并收集容器度量标准,例如网络统计信息,资源隔离参数以及资源使用情况的完整历史记录。
工具链接:https://github.com/google/cadvisor
使用成本:免费
Logspout是帮助管理在Docker容器中运行的程序生成的日志的一个很好的工具。它将容器应用程序日志路由到单个位置(例如,通过HTTP可用的JSON对象或流式端点)。Logspout也有一个可扩展的模块系统。
工具链接:https://github.com/gliderlabs/logspo
使用成本:免费
Fluentd作为一个开源数据收集器工作 - 一个统一和记录所有其他容器日志的容器。拥有500多个插件,Fluentd连接到许多数据源和数据输出来收集事件; 这些被标记为在需要的地方路由它们。这种基于标签的路由可以使复杂的路由干净地表达。
工具链接:https://www.fluentd.org/
使用成本:免费
作为Elastic Stack的一部分,Logstash与Beats,Elasticsearch和Kibana一起运行良好。它是一个开源的服务器端处理管道,可以传输和处理日志,事件或其他数据。
工具链接:https://www.elastic.co/products/logstash
使用成本:免费
使用syslog-ng从各种来源收集日志,并在将它们路由到不同的目的地之前,几乎实时地处理它们。一个值得信赖的日志管理基础架构,syslog-ng将高性能功能与丰富的消息解析和重写选项结合在一起。
工具链接:https://syslog-ng.org/
使用成本:免费(根据要求可提供syslog-ng高级版的价格)
Clair是一个开源项目,旨在识别和分析Docker和appc应用程序容器中的漏洞。Clair定期从定制和配置的源组中提取容器漏洞元数据,以识别容器映像(包括上游的容器映像)中的威胁。
工具链接:https://coreos.com/clair/docs/latest/
使用成本:免费
Aqua Security可以在任何平台上运行,通过提供全堆栈安全来保护基于容器的应用程序。专用平台Aqua Security可以严格控制你的容器环境,并从开发阶段开始。这是一个提供完整的可视性和管理的综合工具。
工具链接:https://www.aquasec.com/
使用成本:定价是选定软件计划费用加上所需虚拟机的Azure基础架构成本的组合
Twistlock Security Suite旨在解决基于容器的应用程序过程中的安全问题。这是一个端到端的安全解决方案,通过增加Docker容器工作方式的监控层来检测漏洞。Twistlock使应用程序生命周期中的容器映像变得更加坚固。
工具链接:https://www.twistlock.com/
使用成本:软件定价基于选定的订阅和基础设施选项
Docker Bench for Security是一个可以在任何Docker主机上运行的预构建包装容器。它是一组应该作为root用户运行的Bash shell脚本。在生产中常见的测试检查部署Docker容器的最佳安全实践。
工具链接:https://hub.docker.com/r/docker/docker-bench-security/
使用成本:免费
Notary是一个开源的Docker项目,提供数据收集的安全性。运行Notary服务来发布和管理任意内容。对发布的集合进行数字签名,并允许用户验证内容的完整性和来源。
工具链接:https://github.com/docker/notary
使用成本:免费
由Rancher创建的Docker卷插件,用于管理持久性容器卷。Convoy是一个开放源码的Docker卷驱动程序,可以在任何地方对Docker卷进行快照,备份和恢复。在AWS上创建Docker卷,并受到Elastic Block Store的所有功能和性能的支持。另外,获取现有的EBS卷并使用它来生成附加到Docker容器的卷。
工具链接:https://github.com/rancher/convoy
使用成本:免费
Portworx是一个分散存储解决方案,用于持久性,共享和复制卷;它可以大规模地自动部署和运行数据服务。
工具链接:https://portworx.com/
使用成本:免费
Blockbridge卷插件为具有高级安全性,移动性,备份和恢复功能的容器应用程序提供高性能存储。通过Docker 1.13+的“Managed Docker Plugin”,Docker本身就负责安装和生命周期管理。
工具链接:http://www.blockbridge.com/
使用成本:免费
使用此开源数据卷协调器轻松管理Dockerized应用程序和容器存储。Docker容器的短暂特性意味着当容器被删除时,其存储将丢失。Flocker允许你在主机更改时通过迁移数据和容器来永久存储数据。
工具链接:https://clusterhq.com/flocker/
使用成本:免费
专为Kubernetes而设计的Flannel是一种简单易用的方法,可通过在群集中的多个节点之间使用第3层IPv4网络来配置安全的网络结构。它并不控制容器如何与主机平台联网,而只是如何在主机之间传输流量。
工具链接:https://coreos.com/flannel/docs/latest/
使用成本:免费
Weaveworks为开发人员提供了一种高效的方式来连接,观察和控制Docker容器。它创建了一个灵活的虚拟网络基础设施,连接在多个主机上部署的容器。Weaveworks扩展了像Kubernetes和Docker Swarm这样的容器编排器的效率,并简化了生产中容器的管理。
工具链接:https://www.weave.works/
使用成本:
Calico是一个高度可扩展的开放源代码项目,提供了虚拟网络的第3层方法,可以支持无数计算主机上的大量虚拟机群集。此工具的简化网络模型设计支持为您的每个工作负载配置细粒度的连接策略,并允许集中管理SDN。
工具链接:https://www.projectcalico.org/getting-started/docker/
使用成本:免费
Consul是一个易于使用的,基于开放标准的服务发现方法,可在FreeBSD,Linux,Mac OS X,Solaris和Windows上运行。构建多数据中心感知,Consul支持多个区域,没有复杂的配置。主要功能包括:服务发现,健康检查和密钥/值存储等。
工具链接:https://www.consul.io/
使用成本:免费
由CoreOS创建,etcd是为共享配置和服务发现而设计的高可用性键值存储。该工具提供了将数据存储在一组机器上的可靠方法。它专门为运行CoreOS的集群而构建,但etcd也可以在其他操作系统(包括BSD,Linux和OS X)上运行。
工具链接:https://coreos.com/etcd/
使用成本:免费
Factorish创建了一个简单易用的轻量级(<30mb)容器代理。该工具基于alpine / gliderlabs,并以nginx作为HTTP负载平衡器运行。
工具链接:https://hub.docker.com/r/factorish/proxy/
使用成本:免费
Packer是一个Hashicorp工具,用于构建机器映像(包括Docker),并与诸如Ansible,Chef和Puppet等配置管理工具集成。它是一个轻量级的工具,可以在单个源配置的每个主要操作系统上运行。
工具链接:https://www.packer.io/docs/builders/docker.html
使用成本:免费
自动Dockerize与Whales你的应用程序。唯一需要的是在主机上安装并运行Docker。然后,Whales通过输出必要的文件来运行Docker和应用程序。
使用成本:免费
Gradle插件使得所有的构建脚本都可以与Docker守护进程交互。每个任务委托给Docker-client,然后通过HTTP连接到Docker的远程API。大多数配置参数是可选的。
使用成本:免费
Portainer是Docker环境的开源轻量级管理用户界面。Portainer在Docker API之上工作,并提供Docker的详细概述。功能包括管理容器,图像,网络和卷的功能。
工具链接:https://portainer.io/
使用成本:免费
这是完整的清单!一如既往,Caylent渴望你对未来文章的反馈和建议。
原文链接:50+ Useful Docker Tools(翻译:王杰)