e: 16px;text-align: justify;white-space: pre-line;line-height: 27px;padding-top: 23px;color: rgb(74, 74, 74);">
Pivotal Cloud Foundry(PCF)是一个开源、多云的应用程序平台即服务(PaaS),由 501 组织 Cloud Foundry Foundation 管理。该软件最初由 VMware 开发,但之后转移到了 Pivotal Software。随着 VMware 于 2019 年底收购 Pivotal,它也重新回到了 VMware。PCF 是用于部署、管理和持续交付应用程序、容器和函数的多云平台。PCF 允许开发人员快速部署和交付软件,而无需管理底层基础架构。
Heroku 是一种支持多种编程语言的云 PaaS。Heroku 是最早的云平台之一,自 2007 年 6 月就开始开发了;当时它仅支持 Ruby 编程语言,但现在支持 Java、Node.js、Scala、Clojure、Python、PHP 和 Go。
Heroku 是基于容器的云 PaaS。开发人员使用 Heroku 来部署、管理和扩展现代应用程序。这一平台优雅、灵活且易于使用,为开发人员提供了将自己的应用推向市场的最简单途径。
容器调度程序的主要任务是在最合适的主机上启动容器,并将它们连接起来。它必须具备自动故障转移能力,并且在数据太多,单个实例无法处理 / 计算时扩展容器。
三种最受欢迎的容器调度程序分别是 Docker Swarm、Apache Mesos 和 Kubernetes。
DockerSwarm 是 Docker 开发的容器调度程序。由 Docker 开发的这个集群解决方案提供了很多优势,比如说它使用了标准的 Docker API。Swarm 的架构由两大元素组成:
Docker Swarm 架构,©Alexandre Beslic(DockerInc.)
Apache Mesos 和 Mesosphere MarathonMesos 的目的是建立一个可扩展且高效的系统,以支持当前和将来的各种框架。这也是主要问题所在:Hadoop 和 MPI 之类的框架都是独立开发的,因此无法在各个框架之间进行细粒度的共享。
Mesos 的对策是添加一个资源共享薄层,为框架提供访问集群资源的公共接口。Mesos 正在将对调度的控制权委派给框架,因为许多框架已经实现了复杂的调度机制。
根据要在集群上运行的作业类型可以将框架分为四类,其中一些具有 Marathon 之类的原生 Docker 支持。Mesos 0.20.0 中添加了对 Docker 容器的支持。
我们将重点介绍 Mesos 与 Marathon 的搭配用法,因为后者是 Mesosphere 积极维护的框架,在调度方面提供了许多功能,如约束、运行状况检查、服务发现和负载平衡等。
使用 Marathon 的 Apache Mesos 架构,©AdrianMouat
如图所见,集群中有四个元素。ZooKeeper 帮助 Marathon 查找 Mesos master 的地址,可以使用多个实例来处理故障。
Marathon 负责启动、监视并扩展容器。Mesos master 将分配给节点的任务发送给 Marathon,并在节点具有一些可用的 CPU/RAM 时向 Marathon 提出要约。Mesos slaves 负责运行容器并提交自身可用资源的列表。
Kubernetes 是用于 Docker 容器的编排系统,使用标签和 pods 的概念将容器分为许多逻辑单元。Pod 是 Kubernetes 与其他两种解决方案之间的主要区别所在——它们是位于同一地点的容器的集合,共同组成部署和调度服务。与基于基于相似性的容器协同调度机制(如 Swarm 和 Mesos)相比,这种方法简化了集群的管理。
Kubernetes 调度程序的任务是监视 PodSpec 为空的 Pod。NodeName 赋予一个值,以将容器调度在集群中的某个位置。
这是与 Swarm 和 Mesos 不一样的地方,因为 Kubernetes 允许开发人员在运行 Pod 时通过定义 PodSpec.NodeName 来绕过调度程序。
调度程序使用谓词和优先级来定义容器应运行的节点。这些参数的默认值可以使用新的调度程序策略配置覆盖。
如果使用命令行标志 policy-config-file 指向描述启动 Kubernetes 时要使用的谓词和优先级的 JSON 文件,调度程序就会使用管理员定义的策略。
Kubernetes 架构(灰色部分是容器,彩色部分是 pods),©GoogleInc.
监控和记录工具主要是为了在发生故障时快速响应,快速恢复,同时减少事故期间的人员参与。目前业内比较常用的监控和记录工具包括 ELK Stack、Datadog、New Relic、Prometheus、Zipkin 和 Azure Monitor。
ELK Stack 是三个开源产品的集合——它们分别是 Elasticsearch、Logstash 和 Kibana。它们都是由 Elastic 公司开发、管理和维护的。
E 代表 ElasticSearch,用于存储日志
L 代表 Logstash,用于传输、处理和存储日志
K 代表 Kibana,是一种可视化工具(Web 界面)
Datadog 是针对云规模应用程序的监视服务,可通过基于 SaaS 的数据分析平台来监视服务器、数据库、工具和服务。
Datadog Application Performance Monitoring(APM 或跟踪)可与你的日志和基础架构监视器并用,提供自动生成的仪表板(用于监视关键指标,如请求量和延迟)乃至单个请求的跟踪细节,帮助你深入了解应用程序的性能表现。
应用程序收到请求时,Datadog 可以在整个分布式系统上查看跟踪,并向你显示关于该请求状况的详细系统数据。
New Relic 是一家位于加州旧金山的技术公司,致力于开发基于云的软件,以帮助网站和应用程序所有者跟踪服务性能。
New Relic 开发的用于应用程序性能监视(APM)的软件分析产品,可提供有关 Web 应用程序性能以及最终用户体验满意度的实时和趋势数据。
Prometheus 是用于事件监视和警报的免费软件应用程序。它将实时指标记录在一个时间序列数据库中,该数据库使用 HTTP 拉取模型构建,支持灵活查询和实时警报。
Prometheus 服务器的工作方式是抓取,也就是调用监视器上配置的各个节点的指标端点。它定期收集这些指标并将其存储在本地。节点在 Prometheus 服务器抓取的端点上公开这些指标。
上一篇:最全的DevOps工具集合,再也不怕选型了!
下一篇:潜望 | 重估瑞幸价值