阿里云-飞天系统架构
- 格式:pptx
- 大小:4.82 MB
- 文档页数:29
软件架构(software architecture)就是软件的基本结构。
合适的架构是软件成功的最重要因素之一。
大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。
这里我列举了目前主要的4种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
一、单体架构单体架构比较初级,典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。
这是一种典型的Java Spring mvc或者Python Drango框架的应用。
其架构图如下所示:单体架构单体架构的应用比较容易部署、测试,在项目的初期,单体应用可以很好地运行。
然而,随着需求的不断增加,越来越多的人加入开发团队,代码库也在飞速地膨胀。
慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
下面是单体架构应用的一些缺点:复杂性高:以一个百万行级别的单体应用为例,整个项目包含的模块非常多、模块的边界模糊、依赖关系不清晰、代码质量参差不齐、混乱地堆砌在一起。
可想而知整个项目非常复杂。
每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个Bug都会带来隐含的缺陷。
技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。
“ 不坏不修”,这在软件开发中非常常见,在单体应用中这种思想更甚。
已使用的系统设计或代码难以被修改,因为应用程序中的其他模块可能会以意料之外的方式使用它。
部署频率低:随着代码的增多,构建和部署的时间也会增加。
而在单体应用中,每次功能的变更或缺陷的修复都会导致需要重新部署整个应用。
全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低。
而部署频率低又导致两次发布之间会有大量的功能变更和缺陷修复,出错率比较高。
可靠性差:某个应用Bug,例如死循环、内存溢出等,可能会导致整个应用的崩溃。
阿里云—飞天系统总体架构西门老衲研究整理关于华博科技( Technology )目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构9 5. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园什么是飞天?飞天体系—技术框架关于华博科技( Technology )目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构9 5. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园关于华博科技( Technology )目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构9 5. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园飞天文件系统-盘古飞天盘古—特性飞天盘古系统—设计飞天盘古—针对在线业务的优化关于华博科技( Technology )目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构9 5. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园任务调度—伏羲飞天伏羲—体系架构飞天伏羲关于华博科技( Technology )目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构9 5. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园飞天系统—集群监控—神农飞天神农—特点关于华博科技( Technology)目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构95. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园飞天应用阿里云邮箱服务阿里云金融数据仓库阿里云渲染计算服务问题关于华博科技( Technology)目录1. 飞天体系结构—飞天系统+ 飞天应用2. 飞天系统—分布式基础架构95. 飞天系统—集群监控—神农3. 飞天系统—分布式文件系统—盘古4. 飞天系统—任务调度—伏羲7. 结束语6. 飞天应用—阿里云系列韵公园仅供分享学习只用敬请尊重阿里云—飞天系统相关研发者的知识产权!!。
阿⾥飞天云平台架构简介飞天是由阿⾥云开发的⼀个⼤规模分布式计算系统,其中包括飞天内核和飞天开放服务。
飞天内核负责管理数据中⼼集群的物理资源,控制分布式程序运⾏,隐藏下层故障恢复和数据冗余等细节,有效提供弹性计算和负载均衡。
如图所⽰,飞天体系主要包含四⼤块:1、资源管理、安全、远程过程调⽤等构建分布式系统常⽤的底层服务;2、分布式⽂件系统;3、任务调度;4、集群部署和监控。
飞天开放服务为⽤户应⽤程序提供了计算和存储两⽅⾯的接⼝和服务,包括弹性计算服务(Elastic ComputeService,简称ECS)、开放存储服务(Open Storage Service,简称OSS)、开放结构化数据服务(Open Table Service,简称OTS)、关系型服务(Relational Database Service,简称RDS)和开放数据处理服务(Open Data Processing Service,简称ODPS),并基于弹性计算服务提供了云服务引擎(Aliyun Cloud Engine,简称ACE)作为第三⽅应⽤开发和Web 应⽤运⾏和托管的平台。
阿⾥有限公司(简称“阿⾥云”)成⽴于2009年9⽉10⽇,致⼒于打造云计算的基础服务平台,注重为中⼩企业提供⼤规模、低成本、⾼可靠的云计算应⽤及服务。
飞天开放平台(简称“飞天平台”或者“飞天”)是由阿⾥云⾃主研发完成的公共云计算平台,该平台所提供的服务于2011年7⽉28⽇在正式上线,推出了第⼀个云服务——弹性计算服务。
截⾄本书出版时,阿⾥云已经推出了包括弹性计算服务、开放存储服务、关系型数据库服务、开放结构化数据服务在内的⼀系列服务和产品。
飞天平台内核包含的模块可以分为以下⼏部分。
分布式系统底层服务:提供分布式环境下所需要的协调服务、远程过程调⽤、安全管理和资源管理的服务。
这些底层服务为上层的分布式⽂件系统、任务调度等模块提供⽀持。
分布式⽂件系统:提供⼀个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能⼒聚集起来,并能够⾃动屏蔽软硬件故障,为⽤户提供不间断的数据访问服务;⽀持增量扩容和数据的⾃动平衡,提供类似于POSIX的⽤户空间⽂件访问API,⽀持随机读写和追加写的操作。
解析阿里云分布式调度系统伏羲本文章来自于阿里云云栖社区摘要:本文涉及的内容是阿里云分布式调度团队在分布式调度系统的设计、实现、优化等方面的实践以及由此而总结的分布式系统设计的一般性原则,具体包括分布式调度的任务调度、资源调度、容错机制、规模挑战、安全与性能隔离以及未来发展方向六部分。
云计算并不是无中生有的概念,它是将普通的单台PC的计算能力通过分布式调度的软件连接起来。
其最核心的问题是如何把100台、1千台、1万台机器高效的组织起来,灵活的进行任务调度和管理,从而使得可以像使用台式机一样使用云计算。
在云计算中,最核心的模块是分布式调度,它好比于云计算的中央处理器。
目前,业界已存在多种分布式调度实现方案,如伏羲、Hadoop MR、YARN、Mesos等系统。
阿里云伏羲伏羲系统是在前人的基础上进行了一系列的改造,首先与YARN和Mesos系统类似,将资源的调度和任务调度分离,形成两层架构,使其具备以下优势:(1)规模:两层架构易于横向扩展,资源管理和调度模块仅负责资源的整体分配,不负责具体任务调度,可以轻松扩展集群节点规模;(2)容错:当某个任务运行失败不会影响其他任务的执行;同时资源调度失败也不影响任务调度;(3)扩展性:不同的计算任务可以采用不同的参数配置和调度策略,同时支持资源抢占;(4)调度效率:计算framework决定资源的生命周期,可以复用资源,提高资源交互效率。
那现在这套系统已经在阿里集团进行了大范围的应用,能支持单集群5000节点、并发运行10000作业、30分钟完成100T数据terasort,性能是Yahoo在Sort Benchmark的世界纪录的两倍。
伏羲的系统架构伏羲的系统架构如下图所示,整个集群包括一台Fuxi Master以及多台Tubo。
其中Fuxi Master是集群的中控角色,它负责资源的管理和调度;Tubo是每台机器上都有的一个Agent,它负责管理本台机器上的用户进程;同时集群中还有一个叫Package Manager的角色,因为用户的可执行程序以及一些配置需要事先打成一个压缩包并上传到Package Manager上,Package Manager专门负责集群中包的分发。