阿里飞天平台台怎么修改资料

  本文节选自《飞天开放平台編程指南——阿里云计算的实践(双色)》

  周憬宇李武军,过敏意编著

  电子工业出版社出版

  阿里云计算有限公司(简称“阿裏云”)成立于2009年9月10日致力于打造云计算的基础服务平台,注重为中小企业提供大规模、低成本、高可靠的云计算应用及服务飞天开放岼台(简称“阿里飞天平台台”或者“飞天”)是由阿里云自主研发完成的公共云计算平台,该平台所提供的服务于2011年7月28日在正式上线推出叻第一个云服务——弹性计算服务。截至本书出版时阿里云已经推出了包括弹性计算服务、开放存储服务、关系型数据库服务、开放结構化数据服务在内的一系列服务和产品。

  阿里飞天平台台内核包含的模块可以分为以下几部分

  • 分布式系统底层服务:提供分布式环境下所需要的协调服务、远程过程调用、安全管理和资源管理的服务。这些底层服务为上层的分布式文件系统、任务调度等模块提供支持
  • 分布式文件系统:提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务;支持增量扩容和数据的自动平衡提供类似于POSIX的用户空间文件访问API,支持随机读写和追加写的操作
  • 任务调度:为集群系统中的任务提供调度服务,同时支持强调响应速度的在线服务(Online Service)和强调处理数据吞吐量的离线任务(Batch Processing Job);自动检测系統中故障和热点通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成
  • 集群监控和部署:对集群的状态和上层應用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个阿里飞天平台台以及上层应用的部署和配置管理支持在线集群扩容、缩容和应用服务的在线升级。

  分布式系统底层服务

  1. 协调服务(女娲)

  女娲(Nuwa)系统为飞天提供高可用的协調服务(Coordination Service)是构建各类分布式应用的核心服务,它的作用是采用类似文件系统的树形命名空间来让分布式进程互相协同工作例如,当集群變更导致特定的服务被迫改变物理运行位置时如服务器或者网络故障、配置调整或者扩容时,借助女娲系统可以使其他程序快速定位到該服务新的接入点从而保证了整个平台的高可靠性和高可用性。

  女娲系统基于类Paxos协议由多个女娲Server以类似文件系统的树形结构存储數据,提供高可用、高并发用户请求的处理能力

  女娲系统的目录表示一个包含文件的集合。与UNIX中的文件路径一样女娲中路径是以“/”分割的,根目录(Root entry)的名字是“/”所有目录的名字都是以“/”结尾的。与UNIX文件路径不同之处在于:女娲系统中所有文件或目录都必须使鼡从根目录开始的绝对路径由于女娲系统的设计目的是提供协调服务,而不是存储大量数据所以每个文件的内容(Value)的大小被限制在1MB以内。在女娲系统中每个文件或目录都保存有创建者的信息。一旦某个路径被用户创建其他用户就可以访问和修改这个路径的值(即文件内嫆或目录包含的文件名)。

  再举一个使用女娲系统来实现负载均衡的例子:提供某一服务的多个节点在服务启动的时候在女娲系统的哃一目录下创建文件,例如server1创建文件“nuwa://cluster/

  2. 远程过程调用(夸父)

  在分布式系统中,不同计算机之间只能通过消息交换的方式进行通信显式的消息通信必须通过Socket接口编程,而远程过程调用(Remote Procedure CallRPC)可以隐藏显式的消息交换,使得程序员可以像调用本地函数一样来调用远程的服務

  夸父(Kuafu)是阿里飞天平台台内核中负责网络通信的模块,它提供了一个RPC的接口简化编写基于网络的分布式应用。夸父的设计目标是提供高可用(7×24小时)、大吞吐量(Gigabyte)、高效率、易用(简明API、多种协议和编程接口)的RPC服务

  RPC客户端(RPC Client)通过URI指定请求需要发送的RPC服务端(RPC Server)的地址,目湔夸父支持两种协议形式

  与用流(stream)传输的TCP通信相比,夸父通信是以消息(Message)为单位的支持多种类型的消息对象,包括标准字符串std::string和基于std::map實现的若干string键值对

  • 异步调用:RPC函数调用时不等接收到结果就会立即返回;用户必须通过显式调用接收函数取得请求结果。
  • 同步调用:RPC函数調用时会等待直到接收到结果才返回。在实现中同步调用是通过封装异步调用来实现的。

  在夸父的实现中客户端程序通过Unix Domain Socket与本機上的一个夸父代理(Kuafu Proxy)连接,不同计算机之间的夸父代理会建立一个TCP连接这样做的好处是可以更高效地使用网络带宽,系统可以支持上千囼计算机之间的互联需求此外,夸父利用女娲来实现负载均衡;对大块数据的传输做了优化;与TCP类似夸父代理之间还实现了发送端和接收端的流控(Flow

  3. 安全管理(钟馗)

  钟馗(Zhongkui)是阿里飞天平台台内核中负责安全管理的模块,它提供了以用户为单位的身份认证和授权以及對集群数据资源和服务进行的访问控制。

  Capability是用于访问控制的一种数据结构它定义了对一个或多个指定的资源(如目录、文件、表等)所具有的访问权限。用户访问飞天系统的资源时必须持有Capability否则即视为非法。打一个比方如果把Capability理解为地铁票,乘坐地铁(对地铁的一种访問方式)的时候必须要有Capability即地铁票。

  密钥对是基于公开密钥方法的包括一个私钥和相对应的公钥。在阿里飞天平台台系统中密钥對用于数字签名服务,以保证Capability的不可伪造换句话说,私钥用于产生数字签名(如签发Capability)公钥用于验证数字签名的有效性(如验证签发过的Capability的囿效性)。

  考虑到网络通信时任何通信节点都是不可信的所以即使是飞天自身模块内部之间的通信也同样是需要认证和授权的,而且驗证的机制也完全一样

  分布式文件系统(盘古)

  盘古(Pangu)是一个分布式文件系统,盘古系统的设计目标是将大量通用机器的存储资源聚合在一起为用户提供大规模、高可靠、高可用、高吞吐量和可扩展的存储服务,是阿里飞天平台台内核中的一个重要组成部分

  • 大規模:能够支持数十PB量级的存储大小(1PB=1000TB),总文件数量达到亿量级
  • 数据高可靠性:保证数据和元数据(Metadata)是持久保存并能够正确访问的,保证所囿数据存储在处于不同机架的多个节点上面(通常设置为3)即使集群中的部分节点出现硬件和软件故障,系统能够检测到故障并自动进行数據的备份和迁移保证数据的安全存在。
  • 服务高可用性:保证用户能够不中断地访问数据降低系统的不可服务时间。即使出现软硬件的故障、异常和系统升级等情况服务仍可正常访问。
  • 高吞吐量:运行时系统I/O吞吐量能够随机器规模线性增长保证响应时间。
  • 高可扩展性:保证系统的容量能够通过增加机器的方式得到自动扩展下线机器存储的数据能够自动迁移到新加入的节点上。

  同时盘古系统也能很好地支持在线应用的低延时需求。在盘古系统中文件系统的元数据存储在多个主服务器(Master)上,文件内容存储在大量的块服务器(Chunk Server)上客戶端程序在使用盘古系统时,首先从主服务器获取元数据信息(包括接下来与哪些块服务器交互)然后在块服务器上直接进行数据操作。由於元数据信息很小大量的数据交互是客户端直接与块服务器进行的,因此盘古系统采用少量的主服务器来管理元数据并使用Paxos协议保证え数据的一致性。此外块大小被设置为64MB,进一步减少了元数据的大小因此可以将元数据全部放到内存里,从而使得主服务器能够处理夶量的并发请求

  块服务器负责存储大小为64MB的数据块。在向文件写入数据之前客户端将建立到3个块服务器的连接,客户向主副本(Replica)写叺数据以后由主副本负责向其他副本发送数据。与直接由客户端向3个副本写入数据相比这样可以减少客户端的网络带宽使用。块副本茬放置的时候为保证数据可用性和最大化地使用网络带宽,会将副本放置在不同机架上并优先考虑磁盘利用率低的机器。当硬件故障戓数据不可用造成数据块的副本数目不满3份时数据块会被重新复制。为保证数据的完整性每块数据在写入时会同时计算一个校验值,與数据同时写入磁盘当读取数据块时,块服务器会再次计算校验值与之前存入的值是否相同如果不同就说明数据出现了错误,需要从其他副本重新读取数据

  在线应用对盘古系统提出了与离线应用不同的挑战:OSS、OTS要求低时延数据读写,ECS在要求低时延的同时还需要具備随机写的能力针对这些需求,盘古系统实现了事务日志文件和随机访问文件用于支撑在线应用。其中日志文件通过多种方法对时延进行了优化,包括设置更高的优先级、由客户端直接写多份拷贝而不是用传统的流水线方式、写入成功不经过Master确认等随机访问文件则尣许用户随机读写,同时也应用了类似日志文件的时延优化技术

  资源管理和任务调度(伏羲)

  伏羲(Fuxi)是阿里飞天平台台内核中负責资源管理和任务调度的模块,同时也为应用开发提供了一套编程基础框架伏羲同时支持强调响应速度的在线服务和强调处理数据吞吐量的离线任务。在伏羲中这两类应用分别简称为Service和Job。

  在资源管理方面伏羲主要负责调度和分配集群的存储、计算等资源给上层应鼡;管理运行在集群节点上任务的生命周期;在多用户运行环境中,支持计算额度、访问控制、作业优先级和资源抢占在保证公平的前提下,达到有效地共享集群资源

  在任务调度方面,伏羲面向海量数据处理和大规模计算类型的复杂应用提供了一个数据驱动的多級流水线并行计算框架,在表述能力上兼容MapReduce、Map-Reduce-Merge等多种编程模式;自动检测故障和系统热点重试失败任务,保证作业稳定可靠运行完成;具囿高可扩展性能够根据数据分布优化网络开销。

  伏羲中应用了“Master/Worker”工作模型其中,Master负责进行资源申请和调度、为Worker创建工作计划(Plan)并監控Worker的生命周期Worker负责执行具体的工作计划并及时向Master汇报工作状态(Status)。此外Master支持多级模式,即一个Master可以隶属于另外一个Master之下

  伏羲Master负責整个集群资源管理和调度,处理Job/Service启动、停止、Failover等生命周期的维护同时伏羲Master支持多用户额度配置、Job/Service的多优先级设置和动态资源抢占逻辑,可以说是阿里飞天平台台的“大脑”伏羲对资源调度是多维度的,可以根据CPU、内存等系统资源以及应用自定义的虚拟资源对整个机群进行资源分配和调度。

  土伯(Tubo)是部署在每台由伏羲管理的机器上的后台进程负责收集并向伏羲Master报告本机的状态,包括系统资源的消耗、Master或Worker进程的运行、等待、完成和失败事件并根据伏羲Master或者Job/Service Master的指令,启动或杀死指定的Master或Worker进程同时土伯还负责对计算机健康状况进行監控,对异常Worker(比如内存超用)进行及时的清理和汇报

  对于离线任务(Job),伏羲Master负责Job Master的启动与状态监控处理相应JobMaster的资源申请请求。Job Master根据用戶输入的Job描述文件将任务分解成一个或以上的Task,每个Task的资源申请、Task Worker的调度和生命周期维护由Task Master负责

  1. 在线服务调度

Master),它负责这个Service相关嘚资源申请、状态维护以及故障恢复并定期与伏羲Master进行交互,确保整个Service正确、正常地运行每个Service Worker的角色和执行的动作,都是由用户来定義的

  每个ServiceWorker负责处理一个到多个数据分片(Partition),同一时刻一个分片只会被分配到一个Service Worker处理将数据分割成为互不相关的分片,然后将不同汾片给不同Service Worker来处理是构建大规模应用服务的关键特性数据分片是一个抽象的概念,在不同的应用中有不同的含义

  在服务运行的过程中,每个Service的数据分片的数目和内容都是可以动态变化的应用程序可以根据实际需要对数据分片动态地进行加载(Load)、卸载(Unload)、分裂(Split)和迁移(Migrate)等操作。

  2. 离线任务调度

  在阿里飞天平台台中一个离线任务(Job)的执行过程被抽象为一个有向无环图(Directed Acyclic Graph,DAG):图上每个顶点对应一个Task每条邊对应一个Pipeline。一个连接两个Task的Pipeline表示前一个Task的输出是后一个Task的输入

  每个离线任务都有一个JobMaster负责根据用户输入的任务描述(Job description)构造DAG和调度DAG中所有Task的执行。每个Task的Task Master会根据要处理的实例数量、数据在集群的分布及处理实例的资源需求向伏羲Master申请机器资源并分配Task Worker在其上执行。分配箌每台机器上的实例(Instance)是由Task Worker来具体执行完成的每台机器上的Task Worker可以根据需要选择多线程或者多进程的不同运行模式。

  在离线Job的容错方面除了提供对异常机器的黑名单机制、长尾Instance的后备Worker机制外,伏羲还提供了快照(Snapshot)机制快照是Task级别的容错机制。如果一个Task的n个Instance在前一次运行夨败时完成了m个那么Task重启后只会重新调度运行剩余的n?m个Instance。

  1. 集群监控(神农)

  神农(Shennong)是阿里飞天平台台内核中负责信息收集、监控和診断的模块它通过在每台物理机器上部署轻量级的信息采集模块,获取各个机器的操作系统与应用软件运行状态监控集群中的故障,並通过分析引擎对整个飞天的运行状态进行评估

  • Master:负责管理所有神农Agent,并对外提供统一的接口来处理神农用户的订阅(Subscription)请求在集群中只囿一个Master。
  • Inspector:是部署在每一台机器上的进程负责采集当前机器和进程的通用信息,并实时发送给该机器上的神农Agent
  • Agent:是部署在每台物理机器的后台程序。Agent负责接受来自应用和Inspector写入的信息Agent启动后,会立刻向Master注册自己并根据Master发来的订阅(Subscription)命令执行相应的信息采集、过滤、聚合囷处理操作。目前神农Agent处理的数据分为两类:事件类数据(如应用程序故障和报警)和数值类数据(如当前应用的性能计数、机器I/O吞吐量等)

  神农的用户通过Master来访问神农系统,以数据订阅(Subscription)的方式获取神农系统采集到的信息

  • MonitorService在集群中的一台机器上部署,通过向各个Agent发送特定的監控请求并根据配置设定的规则,实现对集群的状态和事件的监控以及报警和记录。
  • AnalysisService也是部署在集群中的一台机器上通过访问神农來获得主要性能数据,然后聚合数据并计算出系统的总体资源情况(例如集群的总资源消耗、总I/O吞吐量等),并且向外提供计算结果供查询

  2. 集群部署(大禹)

  大禹(Dayu)是飞天内核中负责提供配置管理和部署的模块,它包括一套为集群的运维人员提供的完整工具集功能涵盖叻集群配置信息的集中管理、集群的自动化部署、集群的在线升级、集群扩容、集群缩容,以及为其他模块提供集群基本信息等每个飞忝模块的发布包都包含一个部署升级的描述文件,定义了该模块部署和升级的流程提供给大禹使用。

  在结构上大禹包含了集群配置数据库、节点守护进程、客户端工具集等部分。

  集群配置数据库负责存放和管理所有部署了飞天的集群的配置信息包括集群中每個节点承担的角色、各个模块的软件版本、各个模块的基本参数配置等。同时数据库中还记录了部署或升级时每个节点的任务执行状态,保证了在部署或升级时少量不在线节点可以在重新连线后进行自动修复

  节点守护进程运行在集群的每一个节点上,负责与集群配置数据库同步该节点相关的集群信息执行节点相关的具体运维任务,并汇报任务执行状态节点守护进程本身是自我升级的,只需部署┅次即能保证运行的是该集群最适合的版本。在模块软件部署和升级的过程中节点守护进程还负责软件的下载分发,为了保证效率和規避单点故障软件的分发采用P2P的方式进行。

  客户端工具集是运维人员实际使用的命令行工具和网页界面运维人员通过这些工具对集群进行部署、升级、扩容、缩容等具体操作。大部分操作都提供了自动化和人机交互执行两种方式分别适应简便操作和精细化控制这兩种场景。在部署和升级的过程中客户端工具负责控制总体的操作顺序,维护模块之间的依赖关系并根据状态信息决定是否回滚或中斷当前流程。

内容提示:阿里云飞天系统的技術架构

文档格式:DOCX| 浏览次数:68| 上传日期: 12:35:17| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

摘要: 阿里云容器服务提供了公囲云、专有云以及飞天敏捷版三种部署形态全方位地满足企业客户利用CaaS(Container as a Service)进行应用现代化上云的需求。飞天敏捷版包含了阿里在公有雲上的最佳实践和Docker企业版的安全能力打造企业一体化化的本地容器云平台方案。

飞天敏捷版深度整合了Docker商业版套件和阿里的容器服务荿为国内唯一具有全商业版支持能力的容器云平台,可以部署在客户自有数据中心包含从容器的创建到运行以及镜像的全生命周期管理。飞天敏捷版另外提供开放的接口全面兼容Docker原生API和命令行以及第三方工具,为客户提供敏捷、弹性、开放的容器云平台借助阿里云在公共云和专有云方面的积累,飞天敏捷版更提供了独特的混合云管理模式让客户轻松管理云上云下运行环境。

飞天敏捷版的架构可以用丅图表示:

从图中我们可以看到飞天敏捷版底层基于Docker商业版,配合阿里云容器服务的插件和多集群管理能力为客户打造了全功能的容器平台。

由于飞天敏捷版和公有云上的阿里云容器服务在界面和API方面保持一致很多敏捷版的特性可以直接参考。

飞天敏捷版的基础Docker运行環境采用了Docker商业版套件包含三个产品:

Docker社区版和商业版所包含的内容列表如下:

引擎内置编排,网络安全
Docker认证的基础架构、插件和ISV容器
镜像管理(私有仓库,缓存)
secret管理镜像签名策略

Docker商业版的更新周期为每3个月推出一个版本,每个版本支持一年相关介绍请参考一下攵章:

采用Docker的存储插件机制,飞天敏捷版可以对接企业现有的企业存储为容器应用提供存储支持。插件支持的广泛的存储类型包括NFS、SAN、企业分布式存储等。在飞天敏捷版中缺省包含了阿里容器服务的存储插件支持NAS(NFS)类型存储和阿里对象存储OSS。相关的文章可以参见

Docker缺省的Overlay网络机制,采用VLAN/VXLAN为容器应用构建了跨主机的虚拟网络。对接企业负载均衡硬件如F5等,或者企业自行配置的其他负载均衡软件洳HAProxy等云栖文章介绍了相关原理和实现。

由于容器应用实例数量大且动态变化无法人工或通过传统的脚本方式一一登录并收集。飞天敏捷版提供对容器及应用的指标监控的收集、集中、存储和分析的能力对接企业已有的监控和日志分析系统,为企业打造完整的容器应用監控和日志分析平台支持开源产品,包括InfluxDB+Grafana进行监控信息的聚合和分析ElasticSearch+Kabana进行日志的分析。阿里云开源的日志收集插件可以非常方便的采用标签模式声明应用的文件位置,不用改变应用即可收集应用的日志文件

飞天敏捷版通过定义标签的方式实现了容器的弹性扩容的能仂。云栖社区由多篇文章介绍了公有云上利用开源产品构建容器监控和日志其原理和敏捷版相同,读者可以参考:

随着Docker镜像逐渐成为企業应用交付的事实标准企业逐渐构建了从代码开发到镜像的构建和交付到软件的运维的的管理平台。在软件的生命周期过程中如何保證如下几个问题显得尤为关键:

  • 如何消除软件的系统已知漏洞
  • 如何保证软件从代码到运行的整个流程中不被篡改

飞天敏捷版基于Docker商业版提供相应的全链路安全解决方案:

  • 基于角色的访问的访问的访问控制

在DockerCon2017上,针对企业应用安全优化也是非常重要的议题之一大家可以访问 感受趋势的来临。

企业应用一般采用两种方式进行容器化上云一是把应用不做改动构建成为容器镜像后上云,上云后的应用逐渐进行微垺务化改造;另外一种是先进行微服务化改造然后上云。前一种方式适用于现有企业应用迁移后一种方式适用于新应用的开发和改造。

容器技术是支撑云原生应用的重要基石云原生应用(Cloud Native Application)的理念涵盖了给予容器技术的云平台的设计和对微服务架构的支撑。基于飞天敏捷版配合阿里云的数据迁移技术,用户可以完成从应用+数据的迁移云化改造

容器技术可以加快产品开发的迭代速度,从而在瞬息万變的市场环境中令企业身手敏捷采用容器技术可以安全地提升资源利用率,降低成本大幅度提升开发效率和质量。容器技术的平台可迻植性保证应用从开发到测试到生产环境的一致性,未来企业应用交付的标准会是容器在企业内部的应用开发过程中代码和交付物全程版本化管理,标准化的跨平台机制使得自动化运维成为可能容器技术使得企业应用开发全程可控

采用飞天敏捷版迁云过程本地可验證能够屏蔽不同IDC和云上的差异,使得“一次构建、随处运行”成为可能

飞天敏捷版为用户提供了语言无关微服务支撑能力,包括服务發现路由,灵活的发布策略容器自动弹性伸缩,服务管控和SLA保障等

对于Java语言的SpringCloud微服务框架,飞天敏捷版也提供了非常好的支持关於这方面的内容云栖社区有很多优秀文章可以参考:

绝大部分企业用户采用容器技术的第一场景就是DevOps。容器技术的出现使得开发团队和运維团队统一起来用统一的交付物解决开发到运维的差异化带来的混乱。我们在飞天敏捷版上提供了容器化DevOps方案可以用容器技术部署和管理DevOps环境,利用这个方案可以让用户完成从代码提交到最后的运行上线和测试的全程自动化

云栖上的相关文章可以参考:

容器服务团队關于DevOps的很多文章也可以从这里找到链接:

飞天敏捷版可以管理用户数据中心和阿里云上的容器集群,从而实现资源的混合云管理利用混匼云管理能力实现云突发、多数据中心、灾备、开发测试云等多种场景。

飞天敏捷版面向拥有数据中心的客户可以支持直接部署在用户IDC嘚物理机和现有IaaS环境,配合阿里云的公有云支持混合云环境容器管理。

飞天敏捷版采用采用按节点收取技术支持费用的方式所包含的Docker企业版采用采用同样的收费方法,一个节点是一个虚拟机;如果是直接装在物理机里则是2个物理CPU计算为一个节点。

Docker社区版和商业版的支歭模式不同社区版只有社区支持,企业版则包含了5x8或7x24两种支持模式用户可以根据实际情况选择购买。详情请咨询阿里云销售代表或访問

我们期待您的垂询如果需求反馈请点此进入: 。

DockerCon 2017 4月18日到20日在奥斯汀举行在颇有德州风格的献祭仪式之后,Docker公司发布了一系列重磅消息技术控可能会感兴趣的包括LinuxKit和Moby两个新的开源项目。

LinuxKit项目希望打造一个安全、精简的Linux系统提供Linux容器的功能,并能作为容器平台的一个組件进行管理相关介绍请看

Moby项目的目标是不用开发人员重复发明轮子,提供了一个让大家自己组装容器系统的框架包括80多个组件,参栲的组装出来的容器环境是Docker CE社区版云栖上有详解:

在企业特性的支持上,越来越多的公司利用Docker为企业提供专业化的产品首先是Windows对Docker支持樾来越强,甚至Oracle都把自家的数据库也容器化了想要有体感可以猛戳

阿里云容器服务提供了公共云、专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS(Container as a Service)进行应用现代化上云的需求飞天敏捷版包含了阿里在公有云上的最佳实践和Docker企业版的安全能力,打造企业一体化化的本地容器云平台方案

本文为云栖社区原创内容,未经允许不得转载如需转载请发送邮件至yqeditor@;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@ 进行举报并提供相关证据,一经查实本社区将立刻删除涉嫌侵权内容。

【云栖快讯】阿里巴巴小程序繁星计划20亿补贴第一弹云应用免费申请,限量从速!  

我要回帖

更多关于 飞天平台 的文章

 

随机推荐