中企动力 > 商学院 > 云计算架构设计
  • ?

    小米云深度学习平台的架构设计与实现

    朔风

    展开

    深度学习服务介绍

    机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累、神经网络算法的成熟以及高性能通用GPU的推广,深度学习逐渐成为计算机专家以及大数据科学家的研究重点。近年来,无论是图像的分类、识别和检测,还是语音生成、自然语言处理,甚至是AI下围棋或者打游戏都基于深度学习有了很大的突破。而随着TensorFlow、Caffe等开源框架的发展,深度学习的门槛变得越来越低,甚至初中生都可以轻易实现一个图像分类或者自动驾驶的神经网络模型,但目前最前沿的成果主要还是出自Google、微软等巨头企业。

    Google不仅拥有优秀的人才储备和大数据资源,其得天独厚的基础架构也极大推动了AI业务的发展,得益于内部的大规模集群调度系统Borg,开发者可以快速申请大量GPU资源进行模型训练和上线模型服务,并且通过资源共享和自动调度保证整体资源利用率也很高。Google开源了TensorFlow深度学习框架,让开发者可以在本地轻易地组合MLP、CNN和RNN等模块实现复杂的神经网络模型,但TensorFlow只是一个数值计算库,并不能解决资源隔离、任务调度等问题,将深度学习框架集成到基于云计算的基础架构上将是下一个关键任务。

    除了Google、微软,国内的百度也开源了PaddlePaddle分布式计算框架,并且官方集成了Kubernetes等容器调度系统,用户可以基于PaddlePaddle框架实现神经网络模型,同时利用容器的隔离性和Kubernetes的资源共享、自动调度、故障恢复等特性,但平台不能支持更多深度学习框架接口。而亚马逊和腾讯云相继推出了面向开发者的公有云服务,可以同时支持多种主流的开源深度学习框架,阿里、金山和小米也即将推出基于GPU的云深度学习服务,还有无数企业在默默地研发内部的机器学习平台和大数据服务。

    面对如此眼花缭乱的云服务和开源技术,架构师该如何考虑其中的技术细节,从用户的角度又该如何选择这些平台或者服务呢。我将介绍小米云深度学习平台的架构设计与实现细节,希望能给AI领域的研发人员提供一些思考和启示。

    云深度学习平台设计

    云计算和大数据发展超过了整整十年,在业界催生非常多优秀的开源工具,如实现了类似AWS IaaS功能的OpenStack项目,还有Hadoop、Spark、Hive等大数据存储和处理框架,以及近年很火的Docker、Kubernetes等容器项目,这些都是构建现代云计算服务的基石。这些云服务有共同的特点,例如我们使用HDFS进行数据存储,用户不需要手动申请物理资源就可以做到开箱即用,用户数据保存在几乎无限制的公共资源池中,并且通过租户隔离保证数据安全,集群在节点故障或者水平扩容时自动触发Failover且不会影响用户业务。虽然Spark通过MLib接口提供部分机器学习算法功能,但绝不能替代TensorFlow、Caffe等深度学习框架的作用,因此我们仍需要实现Cloud Machine Learning服务,并且确保实现云服务的基本特性——我将其总结为下面几条:

    屏蔽硬件资源保证开箱即用缩短业务环境部署和启动时间提供“无限”的存储和计算能力实现多租户隔离保证数据安全实现错误容忍和自动故障迁移提高集群利用率和降低性能损耗

    相比于MapReduce或者Spark任务,深度学习的模型训练时间周期长,而且需要调优的超参数更多,平台设计还需要考虑以下几点:

    支持通用GPU等异构化硬件支持主流的深度学习框架接口支持无人值守的超参数自动调优支持从模型训练到上线的工作流

    这是我个人对云深度学习平台的需求理解,也是小米在实现cloud-ml服务时的基本设计原则。虽然涉及到高可用、分布式等颇具实现难度的问题,但借助目前比较成熟的云计算框架和开源技术,我们的架构和实现基本满足了前面所有的需求,当然如果有更多需求和想法欢迎随时交流。

    云深度学习平台架构

    遵循前面的平台设计原则,我们的系统架构也愈加清晰明了,为了满足小米内部的所有深度学习和机器学习需求,需要有一个多租户、任务隔离、资源共享、支持多框架和GPU的通用服务平台。通过实现经典的MLP、CNN或RNN算法并不能满足业务快速发展的需求,因此我们需要支持TensorFlow等用户自定义的模型结构,并且支持高性能GPU和分布式训练是这个云深度学习平台的必须功能,不仅仅是模型训练,我们还希望集成模型服务等功能来最大化用户的使用效益。

    计算机领域有句名言“任何计算机问题都可以通过增加一个中间层来解决”。无论是AWS、OpenStack、Hadoop、Spark还是TCP/IP都是这样做的,通过增加一个抽象层来屏蔽底层资源,对上层提供更易用或者更可靠的访问接口。小米的cloud-ml平台也需要实现对底层物理资源的屏蔽,尤其是对GPU资源的抽象和调度,但我们不需要重新实现,因为社区已经有了很多成熟的分布式解决方案,如OpenStack、Yarn和Kubernetes。目前OpenStack和Yarn对GPU调度支持有所欠缺,虚拟机也存在启动速度慢、性能overhead较大等问题,而容器方案中的Kubernetes和Mesos发展迅速,支持GPU调度等功能,是目前最值得推荐的架构选型之一。

    目前小米cloud-ml平台的任务调度和物理机管理基于多节点的分布式Kubernetes集群,对于OpenStack、Yarn和Mesos我们也保留了实现接口,可以通过实现Mesos后端让用户的任务调度到Mesos集群进行训练,最终返回给用户一致的使用接口。目前Kubernetes最新稳定版是1.6,已经支持Nvidia GPU的调度和访问,对于其他厂商GPU暂不支持但基本能满足企业内部的需求,而且Pod、Deployment、Job、StatefulSet等功能日趋稳定,加上Docker、Prometheus、Harbor等生态项目的成熟,已经在大量生产环境验证过,可以满足通用PaaS或者Cloud Machine learning等定制服务平台的需求。

    使用Kubernetes管理用户的Docker容器,还解决了资源隔离的问题,保证不同深度学习训练任务间的环境不会冲突,并且可以针对训练任务和模型服务使用Job和Deployment等不同的接口,充分利用分布式容器编排系统的重调度和负载均衡功能。但是,Kubernetes并没有完善的多租户和Quota管理功能,难以与企业内部的权限管理系统对接,这要求我们对Kubernetes API进行再一次“抽象”。我们通过API Server实现了内部的AKSK签名和认证授权机制,在处理用户请求时加入多租户和Quota配额功能,并且对外提供简单易用的RESTful API,进一步简化了整个云深度学习平台的使用流程,整体架构设计如图1。

    图1 云深度学习平台整体架构

    通过实现API Server,我们对外提供了API、SDK、命令行以及Web控制台多种访问方式,最大程度上满足了用户复杂多变的使用环境。集群内置了Docker镜像仓库服务,托管了我们支持的17个深度学习框架的容器镜像,让用户不需要任何初始化命令就可以一键创建各框架的开发环境、训练任务以及模型服务。多副本的API Server和Etcd集群,保证了整个集群所有组件的高可用,和Hadoop或者Spark一样,我们的cloud-ml服务在任意一台服务器经历断网、宕机、磁盘故障等暴力测试下都能自动Failover保证业务不受任何影响。

    前面提到,我们通过抽象层定义了云深度学习平台的接口,无论后端使用Kubernetes、Mesos、Yarn甚至是OpenStack、AWS都可以支持。通过容器的抽象可以定义任务的运行环境,目前已经支持17个主流的深度学习框架,用户甚至可以在不改任何一行代码的情况下定义自己的运行环境或者使用自己实现的深度学习框架。在灵活的架构下,我们还实现了分布式训练、超参数自动调优、前置命令、NodeSelector、Bring Your Own Image和FUSE集成等功能,将在下面逐一介绍。

    云深度学习平台实现

    前面提到我们后端使用Kubernetes编排系统,通过API Server实现授权认证和Quota配额功能。由于云深度学习服务是一个计算服务,和我以前做过的分布式存储服务有着本质的区别,计算服务离线运算时间较长,客户端请求延时要求较低而且吞吐很小,因此我们的API服务在易用性和高性能上可以选择前者,目前主流的Web服务器都可以满足需求。基于Web服务器我们可以实现集成内部权限管理系统的业务逻辑,小米生态云提供了类似AWS的AKSK签名认证机制,用户注册登录后可以自行创建Access key和Secret key,请求时在客户端进行AKSK的签名后发送,这样用户不需要把账号密码或密钥加到请求中,即使密钥泄露也可以由用户来禁用,请求时即使签名被嗅探也只能重放当前的请求内容,是非常可靠的安全机制。除此之外,我们参考OpenStack项目的体系架构,实现了多租户和Quota功能,通过认证和授权的请求需要经过Quota配额检查,在高可用数据库中持久化相应的数据,这样平台管理员就可以动态修改每个租户的Quota,而且用户可以随时查看自身的审计信息。

    小米cloud-ml服务实现了深度学习模型的开发、训练、调优、测试、部署和预测等完整功能,都是通过提交到后端的Kubernetes集群来实现,完整的功能介绍可以查看官方文档http://docs.api.xiaomi/cloud-ml/ 。Kubernetes对外提供了RESTful API访问接口,通过YAML或者JSON来描述不同的任务类型,不同编程语言实现的系统也可以使用社区开发的SDK来访问。对于我们支持的多个深度学习框架,还有开发环境、训练任务、模型服务等功能,都需要定制Docker镜像,提交到Kubernetes时指定使用的容器镜像、启动命令等参数。通过对Kubernetes API的封装,我们可以简化Kubernetes的使用细节,保证了对Mesos、Yarn等后端支持的兼容性,同时避免了直接暴露Kubernetes API带来的授权问题以及安全隐患。

    除了可以启动单个容器执行用户的训练代码,小米cloud-ml平台也支持TensorFlow的分布式训练,使用时只需要传入ps和worker个数即可。考虑到对TensorFlow原生API的兼容性,我们并没有定制修改TensorFlow代码,用户甚至可以在本地安装开源的TensorFlow测试后再提交,同样可以运行在云平台上。但本地运行分布式TensorFlow需要在多台服务器上手动起进程,同时要避免进程使用的端口与其他服务冲突,而且要考虑系统环境、内存不足、磁盘空间等问题,代码更新和运维压力成倍增加,Cloud Machine Learning下的分布式TensorFlow只需要在提交任务时多加两个参数即可。有人觉得手动启动分布式TensorFlow非常繁琐,在云端实现逻辑是否更加复杂?其实并不是,通过云服务的控制节点,我们在启动任务前就可以分配不会冲突的端口资源,启动时通过容器隔离环境资源,而用户不需要传入Cluster spec等繁琐的参数,我们遵循Google CloudML标准,会自动生成Cluster spec等信息通过环境变量加入到容器的启动任务中。这样无论是单机版训练任务,还是几个节点的分布式任务,甚至是上百节点的分布式训练任务,cloud-ml平台都可以通过相同的镜像和代码来运行,只是启动时传入的环境变量不同,在不改变任何外部依赖的情况下优雅地实现了看似复杂的分布式训练功能。

    图2 云深度学习平台分布式训练

    看到这里大家可能认为,小米的cloud-ml平台和Google的CloudML服务,都有点类似之前很火的PaaS(Platform as a Service)或者CaaS(Container as a Service)服务。确实如此,基于Kubernetes或者Mesos我们可以很容易实现一个通用的CaaS,用户上传应用代码和Docker镜像,由平台调度和运行,但不同的是Cloud Machine Learning简化了与机器学习无关的功能。我们不需要用户了解PaaS的所有功能,也不需要支持所有编程语言的运行环境,暴露提交任务、查看任务、删除任务等更简单的使用接口即可,而要支持不同规模的TensorFlow应用代码,用户需要以标准的Python打包方式上传代码。Python的标准打包方式独立于TensorFlow或者小米cloud-ml平台,幸运的是目前Google CloudML也支持Python的标准打包方式,通过这种标准接口,我们甚至发现Google CloudML打包好的samples代码甚至可以直接提交到小米cloud-ml平台上训练。这是非常有意思的尝试,意味着用户可以使用原生的TensorFlow接口来实现自己的模型,在本地计算资源不充足的情况下可以提交到Google CloudML服务上训练,同时可以一行代码不用改直接提交到小米或者其他云服务厂商中的云平台上训练。如果大家在实现内部的云深度学习平台,不妨也参考下标准的Python打包方式,这样用户同一份代码就可以兼容所有云平台,避免厂商绑定。

    除了训练任务,Cloud Machine Learning平台最好也能集成模型服务、开发环境等功能。对于模型服务,TensorFlow社区开源了TensorFlow Serving项目,可以加载任意TensorFlow模型并且提供统一的访问接口,而Caffe社区也提供了Web demo项目方便用户使用。目前Kubernetes和Mesos都实现了类似Deployment的功能,通过制作TensorFlow Serving等服务的容器镜像,我们可以很方便地为用户快速启动对应的模型服务。通过对Kubernetes API的封装,我们在暴露给用户API时也提供了replicas等参数,这样用户就可以直接通过Kubernetes API来创建多副本的Deployment实例,并且由Kubernetes来实现负载均衡等功能。除此之外,TensorFlow Serving本身还支持在线模型升级和同时加载多个模型版本等功能,我们在保证TensorFlow Serving容器正常运行的情况下,允许用户更新分布式对象存储中的模型文件就可以轻易地支持在线模型升级的功能。对于比较小众但有特定使用场景的深度学习框架,Cloud Macine Learning的开发环境、训练任务和模型服务都支持Bring Your Own Image功能,也就是...

  • ?

    2019年云架构和云计算趋势

    不悔

    展开

    随着互联网的高速发展,计算和软件开发的进步,任何人都可以坐在他/她的厨房桌旁享受世界上最好的技术。几乎所有小型或大型企业都无所谓,似乎已将注意力转移到考虑在现有环境中处理和管理此类颠覆性技术的适当程序。云计算技术完全依赖于硬件和软件的虚拟化及其面向服务的架构和其他一些增值服务。

    无论您是希望备份,存储,恢复数据,开发新的应用程序和服务,托管博客和网站,按需提供软件,简化视频和音频,分析模式的数据以及使用一些最原始的预测做出前所未有的预测诸如基础架构即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)等云服务值得考虑。在下面我想谈谈一些将在未来几年产生深远影响的云趋势,甚至有些人看不到它们的到来。

    01

    组合5G

    通过将5G蜂窝网络与云计算技术相结合,您可以将更多容量和功能用于物联网(IoT)系统。什么是5G?5G具有独特的基础设施,可提供更快的移动服务连接,最终使网络客户能够顺利上传视频或简化电影。但问题来了,5G问题涉及金融,政治,健康和环境问题。

    我来为你详细说明一下。首先,网络转换为5G系统是非常昂贵的。其次,一些政府赞成取消有利于网络中立和促进竞争的法规。第三,中美之间即将展开一场战斗,说明哪个国家将主导5G的使用,并且正在进行投标。最后但并非最不重要的是,在全球范围内释放的无线辐射的增加可能会导致人类癌症。

    02

    量子计算

    在持续关注亚马逊网络服务(AWS),Microsoft Azure云,IBM和Google云等大型云服务提供商之后,2019年似乎将提供更大,更好,更光明的前景。量子计算是最新话题,有望将数学,材料科学和计算机科学理论转化为现实。在量子计算的帮助下,我们很快就能够通过类似人类的交互来优化复杂系统并构建更好的财务模型。

    03

    混合云解决方案

    由于一些明显的原因,如自由和力量,混合云将征服商业世界。在结合私有云和公共云之后,您可以毫不费力地来回传输数据和应用程序。混合云具有更多灵活性,工具和部署选项,可确保降低转换风险和总体成本。例如,如果您希望进行电子邮件广告等项目,公共云是最佳选择,而对于更敏感的操作(如创建财务报告)则选择私有云。

    04

    处理GDPR

    GDPR代表通用数据保护法规,该法规旨在对欧盟公民的数据保护法进行大规模改革。所有销售和存储公民个人信息的公司都无法控制数据。那些不遵守规则的人可能会面临严厉的处罚。许多组织都会发现急于云计算,而没有认真考虑其安全隐患。在确保数据实践完全符合GDPR要求时,公司可能在2019年遇到困难。

    可以使用诸如容器和无服务器计算之类的当代计算模型来实现若干布置或内置控制,诸如身份访问管理,网络安全组和网关网络防火墙。

    05

    人工智能平台

    人工智能的一个重要用途是充分利用大数据。收集商业智能,更好地了解业务运作方式是技术提供的一些最重要的改进。人工智能平台主要用于比传统框架更有效,更智能地运行。

    这些AI平台能够做什么?

    1、支持更快,更有效,更有效的方式与数据科学家合作;

    2、以各种方式降低成本-重复工作,自动化简单任务和劳动成本高昂的任务;

    3、支持数据治理,确保工程师利用最佳实践。

    06

    增强的多云

    关注多云今年即将到来!灵活的外观模型,专门针对那些希望转变为不太传统的云模型的人。但请确保它包含一个数字管理平台,允许管理员和最终用户从一个集中位置访问您的云服务。除此之外,它甚至简化了所有云活动的管理。

    除此之外,多云提供:

    防止系统故障和其他灾难通过允许您一次在多个云环境中部署不同的云服务,消除了一些问题

    创建一种独特类型的云网络提供更大的灵活性,但代价是安全性

    看到许多中小型企业主为监督其业务的各个方面而感到自豪,这已经不足为奇了。但是,有时这会妨碍生产力和业务增长。因此,云计算成为可行的选择。

    所有行业的高管领域的技术出现持续加速,易于部署,可扩展性,灵活性或成本节约是值得考虑的重要优势。尽管如此,云基础架构必须与适当的安全和备份解决方案相辅相成,以确保数据安全。

    文章采集来源:IDC快讯网

  • ?

    像谷歌一样打理IT:浅析Google的云计算架构

    干天川

    展开

    分布式与云计算深刻地影响着搜索引擎的发展。与其说是云计算影响了搜索引擎,不如说是搜索引擎的发展产生了云计算的概念。Google正是由于在云计算领域的领先,才能多年在搜索领域保持霸主的地位。本节以Google的架构为例,看一下云计算是如何应用在爬虫之中的。

    Google的三大核心技术构成了实现云计算服务的基础:GFS(Google文件系统)、MapReduce(分布式计算系统)和 BigTable(分布式存储系统)。

    GFS(Google文件系统)位于这三项技术的最底层,负责许多服务器、机器数据的存储工作,它将一个“大体积数据(通常在百兆甚至千兆级别)分隔成固定大小的数据块放到两到三个服务器上。这样做的目的是当一个服务器发生故障时,可以将数据迅速地通过另外一个服务器恢复过来。在存储层面,机器故障的处理由Google文件系统来完成。

    MapReduce (分布式计算系统)是Google开发的编程工具,用于1TB数据的大规模数据集并行运算。这项技术的意义在于,实现跨越大量数据节点分割任务,使得某项任务可以被同时分拆在多台机器上执行。例如把一项搜索任务拆分成一两百个小的子任务,经过并行处理后,将运算结果在后台合并,最后把最终结果返回到客户端。

    BigTable(分布式存储系统)作为 Google 的一种针对半结构化数据进行分布存储与访问的接口或服务,它是建立在GFS和MapReduce之上的结构化分布式存储系统,可以帮助Google最大限度地利用已有的数据存储能力和计算能力,在提供服务时降低运行成本。

    书名:自己动手写网络爬虫

    作者:罗刚, 王振东

    出 版 社:清华大学出版社

    定价:¥43.00

  • ?

    云计算时代,数据库架构设计有哪些改变?

    安问雁

    展开

    【IT168 评论】云计算时代,各大厂数据库架构设计经历了哪些改变?在SACC大会第二天下午的数据库架构设计的前世今生(上)专场,来自京东云、阿里巴巴、58速运、去哪儿网、京东的技术一线专家分享了各自在云计算时代下的数据库架构设计实践,遇到过哪些问题?如何解决?如何保证数据库的高可用和高可靠等等一揽子技术干货!

    京东云数据库技术负责人张成远:云时代的数据库演变之路

    数据库战国时代,往往每家企业使用的数据库都不止一种。面对市场上众多SQL、NoSQL以及NewSQL类数据库,我们该如何选择?京东云张成远表示,首先要从需求出发,梳理基本生命周期管理需求、运行期生存类需求以及随着数据量增大之后的高阶需求。

    云计算时代的到来,意味着DBA手工执行的时代已经过去了,DBA可一键自动创建,实现分钟级搭建主/从秒级库表管理。对于众多DBA关注的高可用、高可靠主/从秒级库表管理方案设计,张成远认为,应该从业务需求出发,了解业务可忍受的延迟和数据丢失极限,京东云目前将数据存于云存储,由于云存储是三副本的,这种方式可以尽可能保证数据不丢。

    对于访问量过大的情况,数据库是非常脆弱的,DBA可以层层过滤掉从链路打到数据库上的请求。一般DBA采取的方案是读写分离或一主多从,张成远认为,如果对数据质量要求不高,可以采用读写分离。否则,不建议使用读写分离方案。

    58速运CTO沈剑:58速运数据库降压优化实践

    一个喜欢写文章的技术人,这是很多人对沈剑的印象。不单单是文笔过硬,沈剑的技术能力也十分强。作为58速运的CTO,沈剑对DBA进行了很多思考:DBA的定位应该是什么?DBA的职责又是什么呢?

    在很多公司内部,DBA和研发之间的关系都非常微妙。DBA往往是执行研发提交过来的工单,而渐渐沦为了工单执行工具。沈剑表示,业务DBA应该从专业的角度带给业务价值。从专业的角度,帮助研发做好早期设计;了解被执行工单的业务背景,来龙去脉,做好把关;结合业务进行优化,给出优化建议。

    随着近些年业务体量的增大,很多数据库都面临着优化问题。DBA应该学会找主要矛盾,针对性优化。性能优化方面,MySQL分析工具还是很多的,比如可用于分析慢查询的pt-query-digest;调优过程中可以把慢SQL时间设为0,从slowlog中获取所有SQL的相关信息,对性能的影响在10%以内;同时,DBA可以获取总体分析结果,分组排序的分析结果,单Query ID的分析结果。

    京东商城中间件技术部负责人丁俊:京东分布式KEY-VALUE存储设计与挑战

    目前,很多企业在数据库架构设计上还面临着诸多挑战,比如故障检测与恢复、在线扩容、高可用、升级等,丁俊对这些问题逐一进行了解答。

    在故障检测与恢复方面,京东目前的解决方案是非持久化存储—JIMDB和持久化存储— FBASE。JIMDB兼容REDIS协议,在线弹性伸缩的,数据全部保存在内存的K-V存储系统;FBASE支持多协议,支持范围查找的持久化K-V存储系统。JIMDB读写性能要求高,性能要求优先于数据可靠性;FBASE对数据可靠性要求高,数据量大,数据冷热分布明显。

    在线扩容上面,要想平滑扩容,丁俊提出需要提前把将要变更的拓扑信息下发给客户端,客户端捕捉到特定异常后使用临时拓扑,扩容完成后临时拓扑变更为正式拓扑。扩容过程中,需要注意数据迁移最小单位为槽,单shard需要控制大小,避免迁移数据多时间长。

    高可用方面,依然是异地灾备的方式,主要涉及一些副本的部署要求。升级方面,主要步骤为内存中的数据要做迁移;按照shard滚动升级;新版本的容器创建在同一台宿主机上;迁移完成后客户端捕捉到数据已迁移的异常,会使用新的拓扑。

    除了京东分布式KEY-VALUE存储的具体设计和问题,丁俊也给出了对未来的功能规划,比如支持redis数据结构,支持二级索引以及事务等。

    去哪儿网数据库架构师黄勇:Qunar网数据库架构的发展

    去哪儿网数据库架构设计的前半生基本上可以总结为:解决问题——遇到问题——解决问题——遇到问题.......黄勇表示,早期的去哪儿网数据库也是“小作坊模式”,从单机房内的MySQL逐渐演变为现在的跨机房QMHA架构,同时可保证安全性和高可用。这一路,去哪儿网试用了不少架构体系设计模式,遇到问题就解决问题,对架构不断进行调整。

    自2015年以来,去哪儿网一直在应用QMHA架构,QMHA架构主要有四大技术特点:GTID,GTID易于维护和切换,主从节点间可知数据差异;Sentineld,分布式哨兵,减少误切换和网络分区,raft算法,自动切换;Semi-Sync,提高数据节点一致性的同时提高集群安全性和可用性,多线程复制,且可以跨机房和网段部署;Zookeeper,全局namespace,通知客户端更新配置。

    目前,去哪儿网的DBA操作平台中的SQL审核部分使用的自研技术已经开源,广大DBA可以尝试搜索试用。

    阿里数据库架构师吕建枢:阿里巴巴数据库计算存储分离架构与实践

    数据库容器化,当前面临的问题是什么?作为淘宝的运营商,阿里巴巴的数据库架构必须经得起双十一等大促带来的挑战,吕建枢表示,阿里巴巴的数据库容器化曾经面临着一些调度问题和成本问题,比如机型配比问题—CPU,内存以及存储之间的选择,如何应对大促又不至于提高日常运营成本等。

    吕建枢表示,阿里主要从计算存储分离、分布式存储优化、数据库设计、数据库离在线混布等几方面介绍了数据库容器化设计的每一步以及遇到的问题。当前面的计算存储分离完成后,离在线混布成为可能;阿里巴巴目前所有的数据库都已完成容器化,预计今年完成离在线混布(DB隔离策略,时延敏感),未来的数据库将是纯用户+RDMA+SPDK的结构。

    面对云计算、海量数据、高流量并发等挑战,数据库架构设计需要不断迭代升级。高并发和高可用似乎是数据库架构设计一贯的基本要求,这些互联网大厂遇到的问题是否与你类似?这些解决方案是否打开了你的脑洞呢?未来的数据库架构设计又会是什么样子呢?

    ▲更多信息尽在IT168现场报道专题http://sacc.it168/topic2017/

  • ?

    云计算网络基础架构的实践和演进——打造云计算网络基石

    罗依丝

    展开

    更多深度文章,请关注云计算频道:https://yq.aliyun/cloud

    摘要:从传统IT部署到云,人肉运维已经是过去式,云上运维该怎么开展?人工智能对于运维“威胁论”也随之袭来,如何去做更智能的活,当下很多运维人在不断思考和探寻答案。在2017云栖社区运维/DevOps在线技术峰会上,阿里云专家云登就为大家分享了云计算网络基础架构的实践和演进,精彩不容错过。

    以下内容根据演讲视频以及PPT整理而成。

    众所周知,云计算是以计算、存储和网络作为基础的。网络作为云计算的重要基石之一,其架构设计和演进是云计算发展的重要一环,而网络架构涉及可靠性、性能、可扩展性等多方面内容。架构是从理论设计开始的,理论设计和实践碰撞到一起,能否经得住考验,是否能够符合预期呢?厂商所提供的网络设备的高级特性真的是解决问题的银弹么?如何通过经典网络和VPC构建混合云,打通云上和云下呢?阿里云在以往的实践以及与用户的交互碰撞中遇到的问题又是如何解决的呢?本次分享中将与大家一起进行探讨。

    本次分享的目录

    一、常见的云计算网络架构

    二、云计算网络的可靠性和故障定界

    三、专有云网络的模块化

    四、混合云构建的并网案例

    五、云网络架构的演进趋势

    下图所展示是一种常见的云计算网络集群架构。传统情况下云计算网络架构会分为三层:接入层、汇聚层和核心层。如下图所示,在接入层下面的两台交换机会进行堆叠,再下面会连接服务器,服务器一般会选择使用两个网卡进行bond之后以双上连的方式连接到2台接入交换机。在接入交换机和汇聚交换机之间也会有多条线路的连接,一般而言会存在二层或者三层的接入。对于带宽收敛比的设计而言,对于千兆集群可以采用1:1无收敛的方式,而对于万兆集群则可以使用收敛比为1:3或者1:2的方案,也可能使用无收敛的设计。从汇聚层再向上连接到核心层,一般情况会使用三层连接。

    下图是另外一种比较常见的云计算网络集群架构,在Spine节点和Leaf节点之间可能会存在三层连接,而Spine节点和Core节点之间也可能会存在三层连接,这种网络架构相比于前面提到的架构而言,其扩展粒度要更细,可以细化到一组或者多组进行接入。

    想必大家对于Overlay以及Underlay网络都有所了解,物理网络被称为Underlay网络,物理网络搭建完成之后应该尽量保证网络拓扑是固定的;而对于Overlay的网络而言,可以基于VXLAN技术构建VPC网络,通过软件定义和控制器的方式可以动态地构建虚拟的网络。所构建的网络可以是一个或多个虚拟的网络,可以通过云上不同的租户去定义地址规划以及路由的规划,甚至还可以提供类似于高速通道这样跨VPC之间的互通。Underlay网络的设计基本上就是前面所提到的接入-汇聚-核心架构以及Spine-Leaf架构,而对于Overlay的网络则描述的是虚拟的层面,提供的实际上是虚拟的路由器和虚拟的交换机,包括其构建出来的可以接入像SLB、RDS、ECS、OCS等云产品的VPC容器。为什么叫做Overlay呢?其实因为Overlay网络是通过VXLAN隧道的封装运行在Underlay物理网络之上的。通过Overlay逻辑网关去组织业务进行资源编排就可以构建出非常丰富的基于Overlay网络的产品。

    前面主要介绍了云计算网络的一些基础概念,接下来将会针对云计算网络的可靠性以及故障定位的方式进行分享。

    对于云计算平台的物理网络而言,其可靠性可以分为以下的几类:

    多线路,常见二层的LACP,也就是链路聚合,对于三层则使用等价路由。设备HA,从体系结构来讲,分布式的多框、多插槽的设备能够提供多主控、多接口板这样的方式,还可以提供类似于堆叠技术和多机之间的双机热备以及多机的备份或者多机堆叠的方式,还可以提供VRRP的链路切换。探测和切换机制,实际上在网络配置交付之后,如果远端出现了问题,为了解决链路上的负载均衡以及主备切换的问题,可以引入比如NQA+Track这样的探测技术,这样可以针对静态路由的配置通过不同的优先级和NQA探测方式发现远端节点不可达的时候进行路由切换。除此之外,在探索到某台设备出现故障的时候就可以进行故障隔离,可以实现端口级或者设备级的故障隔离,保证流量可以走备份或者冗余链路进而避免流量中断,当然,这种情况下可能对于流量带宽造成一定的损失。巡检和监测,针对于Overlay和Underlay的网络会提供主动探测的机制,还有对于设备的日常日志告警的分析。设备在运行中往往会报很多的日志和告警,将这些信息收集起来之后结合云平台的业务流量可以挖掘出很多故障的可能性、已经出现的故障还有对于未来可能出现故障的预判。还可以进行流量分析,并且基于此判断云平台的网络是否出现了一些问题。

    如下图所示的是常见的网络集群故障点分布图,云计算平台的网络故障点主要集中在下图中标号的几个位置:

    标号1:线路故障,比如服务器上连到TOR交换机,也就是服务器上的接入网卡接入到交换机上时出现了网卡、线路或者是接入端口损坏导致线路上出现故障。同样的,从接入层到汇聚层,从汇聚层到核心层也会出现这样的线路故障。标号2:核心设备的故障,核心设备的故障可能导致跨网络端口之间的流量损失,由此造成的影响范围往往比较大。对图中所示的网络架构而言,如果流量需要跨端口进行传输,就一定需要从接入层到汇聚层再到核心层再转入另外一个POD的汇聚层。标号3:汇聚交换机的故障,一般情况下汇聚交换机采用堆叠的方式,可能会出现堆叠的分裂以及单台设备的故障,也可能出现整个端口流量上行的带宽减半或者是分裂以后导致等一些不可预期的后果,因此需要及时检测出一些故障并且及时进行隔离以及对于设备进行下线维修从而排除此类故障。标号4:接入交换机的故障,接入交换机也会发生类似于汇聚交换机的故障,堆叠分裂或者单机故障则会导致下面连接的服务器出现问题。标号5:服务器故障。标号6和7:像上述提到的堆叠出现问题造成的故障,这样的故障需要通过日常的巡检以及网络设备自身报告故障的日志告警来发现问题并及时去进行相应的处理。

    以下是对于常见的网络集群故障点的详细描述:

    线路故障。体现为带宽的损失,一般通过多条线路保障,三层网络设备间通常用ECMP等价路由,二层网络设备间通常采用聚合LACP,提高可靠性。在实际情况下,在公有云环境中会发现:一旦网络集群规模大了之后,堆叠出现问题的概率就会变大,与此同时,二层的广播风暴和环路出现的概率也会变大,阿里云目前在逐步地考虑去掉堆叠并且去掉二层,这也可能是未来的发展方向。这样的目的是为了简化网络并提高网络集群的可靠性。DSW故障。DSW是对于核心设备的称呼,由于所有的DSW之间不直接互联,它本身的可靠性只能依靠硬件框式分布式,多主控板(主备HA)、多接口板(上面说的多线路跨板连接)来保证单点可靠性,使用多台DSW,平时负载均衡,单台故障时互为备份链路。如果是单台DSW故障,将会影响带宽损失。PSW故障。也就是汇聚设备的故障,拓扑中有PSW堆叠和去堆叠两种情况,如果是堆叠的,单台故障,上下连线依靠跨堆叠设备的LACP或者ECMP实现业务不中断(但带宽有损失),如果不是堆叠的,参考(2)的场景。如果是单台PSW故障,影响的是下连的多组ASW带宽损失一半。ASW故障。线上很多的ASW都是堆叠的,目前阿里云也开始去堆叠,如果是堆叠的,ASW下连服务器,服务器双网卡bond接入(LACP),如果是去堆叠的ASW,服务器双网卡等价路由负载均衡。如果单台ASW故障,影响的是下连的48台服务器的带宽损失一半。未来,阿里云新构建的集群会逐渐减少对于堆叠的使用,进而提高网络设备的可靠性。其实对于网络厂商而言,他们也会对于堆叠特性进行大量的测试,但是实际上由于堆叠特性十分复杂,因为其涉及到硬件、软件、内部检测以及协议的传输备份,也就是会涉及到很多跨框、跨设备的同步以及选举机制。由于堆叠特性实现本身就非常复杂,就会导致出现问题的可能性比像路由转发这样其他简单特性更高。而在云计算场景下海量的网络设备同时运行,就进一步提升了堆叠特性出现问题的可能性,基本上就会导致出现存在堆叠的场景下可能经常会出现问题。为了解决这样的问题就需要逐步地去除堆叠和二层。服务器故障。可能体现在服务器网卡或者本身内部的应用系统的问题,服务器故障一般只会影响自己,范围比较小。PSW堆叠分裂。各自认为自己是主设备,为了减小影响,一般会配置DAD双主检测,禁掉一边,影响为整个pod的上联带宽和跨asw之间转发带宽损失一半。如果PSW堆叠整体故障,整个pod挂掉(各组ASW下的48台服务器之间仍可互通),上连不通,跨asw的互连不通。ASW堆叠分裂。类似于(6),影响为一组ASW下挂的48台服务器的互联或者上联带宽损失一半。如果ASW堆叠整体故障,该组ASW下连的48台服务器全部不通。对于(6)(7)的堆叠故障,由于厂商堆叠技术本身复杂,导致故障概率提升,再加上公共云使用的网络设备规模大,基数上去了就进一步放大出故障的概率,且影响范围大。因此网络本身的可靠性和故障位置,对于云产品来说影响的范围也是不同的,ecs之类的云产品能够打散到不同的ASW、POD甚至AZ(跨网络集群),其可靠性指标也是不同的。基本上是打散的网络设备之间的层级越高,可靠性保证越高,但同样的网络延迟也越高。

    那么怎样才能够及早地发现这些故障呢?其实可以使用故障主动探测的模型。在网络集群里面,可能会选择特定的接入设备比如像服务器,将其作为主动探测的机器,其探测的目标就是网络设备下面的其他服务器。

    建立的第一个简单故障主动探测的模型如下:

    一个TOR下面所有物理服务器(例如48台)都同时出现大量丢包-->TOR交换机故障。个别物理服务器出现丢包-->服务器负载问题/TOR交换机端口队列打满。到某个机房的大量物理服务器同时出现大量丢包-->汇聚交换机/核心交换机故障。到某个机房的大量物理服务器出现少量概率丢包->汇聚交换机/核心交换机的个别端口问题。每个机房最少只需要1台机器作为探测源,部署对业务网络影响小,ICMPping之类的只能做Layer3的探测。

    依照上述的故障主动探测模型就可以简单地判断网络出现故障的范围。

    建立的第二个简单故障主动探测的模型如下:

    通过选择不同位置的服务器作为探测源或者探测目标,发现不同层次的故障位置,多轮次组合。要求每台服务器运行agent,并接受外部控制器指令,动态调整探测策略,可建立TCP连接并测试。可以针对overlay和underlay网络进行探测,更容易模拟实际应用的业务流量特征,支持Layer4探测、时延计算。

    第二个故障主动探测模型在服务器内部会增加一些代理Agent,安装代理之后可以做到对于4到7层的探测,可以探测出TCP连接的情况以及其延迟和性能速率。同样的,探测模型也可以组合出不同的探测方式,在了解网络架构的拓扑之后就可以探测位于同一组接入交换机下面的两台或者多台服务器,也可以探测位于不同的核心交换机或者汇聚交换机下面的多台服务器。通过这种建模方式就可以知道当前延迟高或者丢包的场景下,网络的问题到底出现在什么位置。

    上述提到的是网络体现在本身体系结构上的可靠性,比如分布式设备、支持主备HA、支持双机热备或者多机堆叠以及其他一些高级特性,这些都是从网络设备本身的角度而言的。除此之外,通过线路带宽的设计保证收敛比以及负载均衡,以此来保证云计算网络的可靠性。而通过日常的巡检和探测能够及时地发现故障,并在故障发生之后及时了解故障发生的具体原因并提供故障定位的方式,进而提高云平台网络的可靠性。

    上述这些都是在公有云网络上的实践,对于专有云而言,又会存在什么样的差别呢?其实对于专有云而言,更多地会对其进行模块化的设计。公有云一般而言是可规划的,可以对于未来集群的规模、建设的地域以及网络架构的选择等进行规划。而对于专有云而言,客户的需求往往不能够规划出来,不同的客户所需要的业务的场景和诉求往往是不同的,这些在网络设备的选型、已有设备的利旧使用以及对于云平台功能的裁剪上都会有所体现,所以专有云与公有云上的的网络设计就存在较大的差别。

    下图是专有云网络架构图,一个很明显的特点就是专有云网络会分成几个区域,最上面的是外部接入区,外部接入区包含了阿里云和ISP或者用户骨干网出口的链接以及在其上进行安全防护的云盾。专有云网络架构图中间的DSW和下部的PSW则属于DC区,也就是网络架构的核心区域。图中右面的综合接入区分为了两个部分,一部分是阿里云所提供的负载均衡、VPC网关以及OPS相关的接入,另外一部分则是CSW,实际上就是客户的VPC专线接入区,阿里云的专有云客户会有一些原来的物理网络需要与云上的VPC进行网络打通,一般会通过VPC的专线接入交换机的综合交换机接入进来。也就是说专有云网络的每一个模块都有一个相对独立的设计,所有的模...

  • ?

    简单聊聊最流行的开源云计算平台OpenStack架构

    桃凌

    展开

    我们知道云计算主要有三种服务模式,IaaS、PaaS和SaaS,其中最底层最基础的就是IaaS。企业级私有云领域,目前IaaS领域的老大就是VMWare公司;在开源领域,最流行的IaaS框架则是OpenStack框架。

    正是因为开源,才让我们可以更深入地了解云计算IaaS的运作机制。通过对OpenStack的架构的介绍,说明OpenStack是如何实现IaaS服务的。

    OpenStack的起源

    在云计算领域,目前Amazon占据了绝对领先的市场地位。Amazon的CEO贝佐斯靠着强硬的行政命令要求开发人员按照SOA理念来进行开发,要求所有程序模块必须要用服务接口把数据和功能开放出来。所有程序模块间的通信,必须通过这些接口进行。

    可以说SOA的设计思想,构成了今天AWS云平台的技术实现基础,同样这种设计思想也被OpenStack所效仿。AWS虽好,但毕竟是商用的,随着云计算的发展,开源云平台解决方案的需求越来越强烈。

    2010年7月,RackSpace和美国国家航空航天局合作合作,分别贡献出RackSpace云文件平台代码和NASANebula平台代码,OpenStack由此诞生。

    AWS分层架构

    OpenStack的架构

    作为Amazon的追随者,OpenStack在技术架构上也与AWS有很多相似之处。OpenStack也是由几个独立的核心功能组件所构成。

    分别是计算(Compute)、对象存储(ObjectStorage)、认证(Identity)、用户界面(Dashboard)、块存储(BlockStorage)、网络(Network)和镜像服务(ImageService):

    Nova:计算管理,云计算IaaS的核心,类似于Amazon的EC2(ElasticComputeCloud)。为用户提供虚拟机的管理,比如创建虚拟机或对虚拟机做热迁移。Swift:对象存储,负责对文件进行存储和检索,也包括镜像文件。Keystone:为用户提供身份验证以及OpenStack服务的授权。Horizon:为用户提供一个模块化的控制面板,基于django框架实现。Cinder:块存储服务,为虚拟机提供虚拟卷。Neutron:为虚拟机提供网络连接,允许用户创建自己的虚拟网络并连接各种网络设备。Glance:负责镜像管理,为虚拟机提供镜像。

    关于每个组件的具体职责,可以参见前文《云计算IaaS管理平台的基本功能有哪些?》

    OpenStack的应用

    国际公有云方面,AWS、AZure都采用了自己的技术来搭建云计算平台。在国内公有云市场中,阿里云、腾讯云也都是用自有技术来搭建各自的云计算平台,没有直接利用OpenStack。

    虽然在公有云市场,应用OpenStack的商业案例还不算多,但在私有云市场,基于OpenStack的项目非常多,远远多于其他的开源云计算框架,如CloudStack、Eucalyptus和OpenNebula等。

    与互联网公司不同,华为倒是非常积极地推进OpenStack技术,和中国三大电信运营商们一并都是OpenStack基金会的黄金会员(GoldenMember),而且为国内外多家电信运营商都部署了基于OpenStack的公有云系统。

    目前OpenStack的黄金会员主要包括传统IT企业,如Intel、NEC、Dell、VMWare等,也包括通信设备商,如华为、Ericsson、Cisco、JuniperNetworks等,也包括最新加入的国内三大运营商。相信虽然OpenStack的参与者越来越多,生态越来越完善,应用项目也会越来越多。

  • ?

    云计算架构师需要学习的五件事

    煽情

    展开

    数字化转型正在影响所有业务的垂直领域,人们处理和思考IT的方式已经发生了根本性的变化。一些成功的IT专业人员影响了企业的业务模式和策略。数字化转型正在影响所有业务垂直领域,而云计算架构师在支持下一代业务计划时必须开始思考与之前的业务模式有什么不同。

    正如调研机构Gartner公司最近预测的那样,到2020年,所有IT人员都需要具备一定水平的商业智慧。“在IT领域中发展强大的商业智慧,是将IT重点从优化IT运营效率转变为推动业务效率、价值创造和增长的先决条件。” Gartner公司研究副总裁 Lily Mok在一份声明中表示,“有效的IT沟通战略的核心是能够将IT的愿景、战略和行动计划与业务明确联系起来,推动员工中期望的行为,从而提高IT绩效和业务成果。”

    除了沟通之外,还需要新的管理方式来尽可能多地从员工身上获得更多价值。为了达到这一点,企业需要培训自己的员工,让他们真正像云计算架构师一样思考和行动。

    无论企业是主要数据中心提供商,还是最终用户组织,都应该了解一下数据中心架构师培训技巧。

    如今的IT人员不仅仅是提供专业服务或标准体系结构,他们还需要进行创新。这意味着过去适用于IT人员工作的相同规则可能不会对其职业生涯提供更多的帮助。作为云计算架构师,IT人员可以通过做培训和实施来提升技能,为自己的职业生涯增加价值,并帮助所在的公司取得进步。

    1、通过技术镜头谈论商业语言

    现在想像一下Snapchat或Messenger过滤器这样的技术可以做什么,他们为原始图层添加一层。从某种意义上说,云计算架构师必须考虑业务挑战,并知道如何使用适用于该情况的技术过滤器。在那里,人们必须能够讨论这些,以及他们如何改变业务流程。这意味着云计算架构师能够围绕业务需求不断应用技术架构。

    2、沉浸在安全的世界

    云计算架构师的商业智慧必须与对安全需求的深入理解结合起来。IDC的信息图表为弥补IT安全技能差距,描述了日益增长的风险,以及对熟练和合格的网络安全专家的需求,具体如下:

    75%的企业遇到某种类型的安全事件。33%受到网络犯罪影响。63%的组织不准备作出回应。3、尽可能多地进行交叉训练

    作为一个云计算架构师,需要了解并行的相关技术。如果正在创建公共云架构,请了解像OpenStack这样的平台如何帮助管理。人们永远不知道未来会怎样,组织有一天可能需要混合方法。如果可以实现规模管理,则可以帮助企业利用强大的云计算技术。云计算架构师经常关注特定的技术。例如,DevOps、虚拟化,或者只是打包和配置体系结构。如果云计算架构师具有特定的云端重点,请确保扩大云端架构。了解云服务管理(ITSM/ITOM)、自动化、集成以改进用户管理,甚至了解如何优化WAN连接。作为云计算架构师,可以有特定的关注点。但是,了解云服务的DNA使云计算架构师能够交叉训练,并为企业和其他IT团队提供有价值的反馈。

    4、使用社交媒体这种强大的沟通工具

    云计算架构师使用社交媒体(像Twitter这样的社交媒体工具)可以帮助其了解更多的信息,并与志同道合的架构师建立联系,拓宽对云计算设计的思路和看法。云计算架构师需要在社交媒体上提高自己的学习能力,并在市场中提升品牌。云计算架构师最好在LinkedIn上撰写博客或Facebook帖子,回复评论或者结交新朋友。

    5、了解风险、设计和企业影响

    云计算架构是业务的关键部分。过去,云计算架构师专注于挑战并立即尝试解决方案。那么现在的云计算架构师必须学习一个新概念:客户对风险的偏好。云计算架构师可以设计出令人惊叹的架构,但如果它不支持客户最终需要的风险模型呢?云计算架构师必须开始向客户提出一个新问题:“你有什么风险承受力?在设计此应用程序或虚拟工作负载之前,请告诉这对贵公司的影响。”

    从这里开始,云计算架构师不仅要围绕其需求创建环境,还要围绕弹性进行设计。请记住,这不仅仅是一个围绕高可用性的设计。相反,需要特别关注用户、业务应用程序和特定组件的风险因素。作为一名云计算架构师,其角色是帮助客户更好地了解他们需要什么,他们能够做什么和不能没有什么,以及他们如何与其企业战略联系起来。

    技术发展和进步已经成为组织业务的基本组成部分。它有助于创造更高水平的生产力,改进服务,并优化整个用户体验。但是,总需要有人帮助设计和构建这些环境。

    在此给出的建议之一就是永远不要让自己被局限住。也就是说云计算架构师总是应该把握大局。每当设计云计算架构时,架构师总是要记住三点:人员、流程和技术。云计算架构师必须每次都围绕这三个概念应用到其设计中。

    企业可以拥有最好的技术,但是如果不训练其员工,并且没有开发一个流程,那么这项技术将毫无用处。随着人们对新的数字化需求的转变,云计算架构师的角色将继续发生变化。因此,需要确保云计算架构师继续学习的动力,不断思考如何通过利用新技术来改善人们的生活。

    来源:互联网

  • ?

    清楚!看图学习云计算总体架构及技术体系

    CU

    展开

    云计算是一种能够通过网络以便利的、按需付费的方式获取IT资源(包括网络、服务器(虚机、容器)、存储、平台、应用和服务等)并提高其可用性的模式,这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放。

    云计算技术与服务架构

    SaaS是一种新型软件发布模式,应用软件安装在 厂商或者服务供应商那里,用户通过网络使用。Salesforce、NetSuite、Google Apps、微软Office365是典型案例。

    软件开发者可以在PaaS之上直接开发新的应用,不需要购买和部署服务器和OS、数据库和中间件软件而直接部署代码即可。

    运行客户自己的应用。Salesforce的Force、Google AppEngine和微软 Azure都是PaaS模式的典型代表。

    IaaS(Infrastructure as a Service,基础架构即服务)通过互联网提供数据中心、基础架构硬件和软件资源。典型

    IaaS的代表产品是亚马逊的AWS(Elastic Compute Cloud)、Google的CloudEngine。

    云计算基础设施服务

    基础设施:机房和带宽

    硬件:服务器、存储、数据中心网络

    软件:操作系统、虚拟化软件等

    基础架构管理:抽象、池化、服务/实例/接口

    云计算应用开发和执行环境

    将云计算应用开发和执行环境以PaaS形式提供给外部开发者。

    基于云计算基础架构提供各种OS和运行环境(数据库、开发语言运行环境、文件系统),支持多开发语言库为开发人员提供云计算应用开发工具(开发环境插件、本地仿真环境等)

    基于多租户架构为开发者开发的应用提供执行环境

    应用的监控和管理根据应用负载提供良好的资源伸缩性,同时保证应用的可靠性等

    云计算应用软件

    各类利用云计算基础架构或之上的应用执行环境平台开发的应用,以SaaS的形式提供给外部用户。

    利用了云计算基础架构和多租户架构的执行环境,因此可以保证应用具有良好的可伸缩性以及多租户共享。

    提供商将这些云计算应用按多租户方式提供给客户,典型的如CRM、企业邮件、办公文档、企业协同系统等

    云计算技术体系

  • ?

    2018浅析云计算架构

    闵鹏笑

    展开

    在今天的改变与未来的发展预测中表明,有越来越多的企业开始主动拥抱“云”,用云计算提升自身的IT服务能力和运营效率。云计算要求基础设施具有良好的弹性、扩展性、自动化、数据移动、多租户、空间效率和对虚拟化的支持。应当高度贴合网络未来更高层次的发展趋势,随需而动的运维理念。

    那么具体而言,应着重从高端服务器、高密度低成本服务器、海量存储设备和高性能计算设备等基础设施领域提高云计算数据中心的数据处理能力。那么,云计算环境下的数据中心基础设施各部分的架构应该是什么样的呢?我们来看这两点的分析:

    1,云计算机房架构

    为满足云计算服务弹性的需要,云计算的机房一般都将采用标准化、模块化的机房设计架构。模块化机房包括集装箱模块化机房和楼宇模块化机房。为减轻了建设方在机房选址方面的压力,帮助建设方将原来半年的建设周期缩短到两个月,而能耗仅为传统机房的50%,可适应沙漠炎热干旱地区和极地严寒地区的极端恶劣环境。楼宇模块化机房采用冷热风道隔离、精确送风、室外冷源等领先制冷技术,可适用于大中型数据中心的积木化建设和扩展。

    2,云计算数据中心总体架构

    云计算架构分为服务和管理两大部分。在服务方面,主要以提供用户基于云的各种服务为主,共包含3个层次:平台即服务PaaS、基础设施即服务IaaS、软件即服务SaaS.在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心能够安全、稳定地运行,并且能够被有效管理。着力于提高网络数据处理和存储能力,致力于低碳高效的利用基础资源。

  • ?

    架构设计之云计算架构介绍

    裘磬

    展开

    一、云计算介绍

    任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。

    云计算架构示例1

    云计算架构示例2

    云计算架构示例3

    二、云计算服务模式

    1、IaaS: Infrastructure-as-a-Service(基础设施即服务)

    基础架构,或称基础设施(Infrastructure)是云的基础。它由服务器、网络设备、存储磁盘等物理资产组成。在使用IaaS时,用户并不实际控制底层基础架构,而是控制操作系统、存储和部署应用程序,还在有限的程度上控制网络组件的选择。

    通过IaaS这种模式,用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关的应用,并只需为其所租用的那部分资源进行付费,而同时这些基础设施繁琐的管理工作则交给IaaS供应商来负责。

    我们从阿里云上购买的云主机就是属于此类了。

    2、PaaS: Platform-as-a-Service(平台即服务)

    平台即服务(Platform as a Service,PaaS)提供对操作系统和相关服务的访问。它让用户能够使用提供商支持的编程语言和工具把应用程序部署到云中。用户不必管理或控制底层基础架构,而是控制部署的应用程序并在一定程度上控制应用程序驻留环境的配置。PaaS的提供者包括Google App Engine、Windows Azure、Force、Heroku等。小企业软件工作室是非常适合使用PaaS的企业。通过使用云平台,可以创建世界级的产品,而不需要负担内部生产的开销。

    3、SaaS: Software-as-a-Service(软件即服务)

    软件即服务(SaaS)为商用软件提供基于网络的访问。您有可能已经使用过SaaS,即使您当时并不知道。SaaS的示例太多了,例如Netflix、Photoshop、Acrobat、Intuit QuickBooks Online、Gmail、Google Docs、Office Web Apps、Zoho、WebQQ、新浪微盘等等。可能不太明显的SaaS实现包括移动应用程序市场中的相当一部分。

    简单的说,就是做好软件,用户基于互联网来使用就可以了,并且是可以按需购买使用。

    4、DaaS:Data-as-a-service(数据即服务)

    DaaS是Data-as-a-service(数据即服务),是继 IaaS、PaaS、SaaS之后又一个新的服务概念。

    数据即服务(Data-as-a-Service,DaaS)通过资源的集中化管理,为提升IT效率以及系统性能指明了方向。因此DaaS在过去的几年中得到了许多CIO的青睐,它包含的主要技术有数据虚拟化、数据集成、SOA、BPM以及PaaS等。

    5、CaaS:Communications-as-a-Service(通讯即服务)

    CaaS是Communications-as-a-Service缩写,意思是通讯即服务(也可称为协作即服务)。CaaS是将传统电信的能力如消息、语音、视频、会议、通信协同等封装成API(Application Programming Interface,应用软件编程接口)或者SDK(Software Development Kit,软件开发工具包)通过互联网对外开放,提供给第三方(企业、SME、垂直行业、CP/SP以及个人开发者等等)使用,将电信能力真正作为服务对外提供。

    6、MaaS:Machine as a Service(物联网即服务)

    MaaS(Machine as a Service)物联网即服务,这个概念伴随着物联网产生,物联网常见的两种业务形式就是MAI与MaaS,因此MaaS属于物联网业务形式的一种。

    7、XaaS:X as a service(一切都是服务)

    一切皆服务(XaaS)是一个统称,代表 “X as a service”、“anything as a service”或“everything as a service” 。这一缩写指越来越多地通过互联网提供的服务,而不仅仅指本地或现场服务。云计算的本质就是XaaS。

    以上六种服务都是XaaS。

    三、总结

    everything as a service

    以前我们使用软件可以说都是一个拷贝(everything is a copy),在云计算时代,我想只能说所有软件可能都是“everything as a service”。

云计算架构设计

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP