精华内容
下载资源
问答
  • 云计算环境下通信网络路由协调控制器设计.pdf
  • 云计算环境中存储必备的9大要求

    千次阅读 2010-03-04 18:35:00
    介绍在最近对云计算的所有关注,存储更多地被视为基础平台。时至今日,许多云计算提供的仅仅局限于CPU内核的集合,定量的内存分配,低转速存储,或者还有一些面向互联网的IP技术。近来,出现了有趣的与云计算和...

    介绍


    在最近对云计算的所有关注中,存储更多地被视为基础平台。时至今日,许多云计算提供的仅仅局限于CPU内核的集合,定量的内存分配,低转速存储,或者还有一些面向互联网的IP技术。近来,出现了有趣的与云计算和存储相关的高级技术,特别是使用 Web Services访问方式,使得访问存储不再受限于设备文件或者NFS加载点。

    典型的数据存储和管理的"企业级特征"在IT架构创新上不断推成出新。存储架构师意识到这些特征对于关键业务和生产应用非常重要,但目前的云计算还缺乏这些特征。本篇白皮书的目标是描述企业云计算中存储必备的9个要素。

    要素1:性能


    性能需要付出成本。在一个架构良好的应用里,性能和成本处于平衡状态。达到这点的关键是使用合适的技术去匹配企业业务应用的性能,首先要求将企业的业务语言转换成IT模式。因为这种转换困难,通常企业止步于静态的IT架构,无法应对业务变化着的性能需求。企业云计算提供了一个更能应对变化着的性能需求的平台。

    在早期的云计算平台里,存储I/O一般都会有较高的延迟。这是因为厂商注意到使云计算的数据更容易访问,但没注意到提高与性能、带宽和IOPS相关的服务级别。有两个原因导致延迟较高:访问的模式和类型,以及存储分布的配置。

    访问模式包括位于OSI模型物理层之上的多层协议的组合(如SOAP, NFS, TCP, IP和FCP)。数据访问包括共享的物理服务层(如以太网)和几个协议层(如SOAP或NFS),一般比专门的物理层(如FC)产生更多的延迟。市场上大多数云计算平台包括Internet的数据访问,产生了更多的数据访问延迟。

    对于存储介质,大多数云计算的市场在RAID或JBOD配置中使用SATA磁盘。因为SATA(有段时间被视为近线磁盘)的性能一般比企业磁盘(一般指FC盘)稍差一些,导致存储设备的性能低于应用的需求。

    当你采用低性能存储介质的相对低带宽和高延迟的访问模式时,使用整个存储子系统的企业无法支持更多的关键业务应用的需求。其结果是,这种方案通常仅适用于测试和开发。

    相比来说,企业云计算平台需要提供更多不同性能存储层的选择。当性能需求的变化时,例如,应用从测试迁移到生产环境,存储平台应该能使用这种变化。理想的企业云计算的存储应该有多种性能区,能够被调整,以提供合适的I/O性能级别给业务性能的需求。

    最后,为了满足企业高端存储的性能需求,云计算方案必须采用高于或者目前正在使用的企业级技术。一般使用FC SAN。此外,如何使用技术与技术本身同等重要。在一个系统管理环境里,企业级需求下的虚拟机配置必须能够持续提供高性能。

    要素2:安全性


    安全性和虚拟化通常被视为相互矛盾的。毕竟虚拟化使得应用从物理硬件和网络边界中解放出来。安全性,换而言之,就是建立边界。企业需要考虑虚拟化设计的初始架构。

    在大多数云计算市场里,无论公有的还是私有的,数据安全性都是基于信任的,这信任通常都在管理程序里。当多数虚机共享物理LUN,CPU和内存时,由管理程序确保数据是否毁坏或者被错误的虚机访问。这与集群服务器多年来面临的基本挑战相同。任何也许需要接管进程的物理服务器必须能访问数据/应用/操作系统的权限。例如,为了主机外备份,LUN也许需要映射给公共的备份服务器。

    在企业云计算中,有两种方式去保护业务数据。第一种涉及系统程序管理安全。主要的目标是:系统尽可能少地被使用,避免任何虚拟机被其他虚拟机造成负面的影响。企业也需要保护LUN被其他服务器访问,如同主机外备份服务器。

    其他需要注意的地方是数据通道。企业必须注意只能给需要维护必要功能的物理服务器提供访问路径。这可以通过NPIV(SAN N端口 ID虚拟化)使用得Zoning、LUN Masking、访问列表、权限配置来完成。

    要素3:自动ILM存储


    信息生命周期管理(ILM)曾经成为非常有效的市场行为的重心,被那些出售分层存储的厂商所推崇。虽然ILM本质上非常简单 - 存储的成本与数据的业务价值相匹配,实际的挑战来自于真正的执行效果,众多所谓的ILM方案,粒度都不够细,难以达到这样的目标。

    今天,传统的ILM并没有部署到市场上的大多数云计算平台中。原因有两个,第一,在许多云计算中,大部分磁盘介质采用处于典型ILM方案中的最低层存储,这样就没法把数据往更底层迁移,ILM也就无法部署。第二,许多企业不需要为云计算常用的计算类型而更长时间地管理数据,因为传统云计算通常用于功能测试/ 开发、概念验证(POC)、Web服务器测试等。考虑到多种因素,实施ILM策略所需细粒度的复杂性和成本与经济节省的云计算不相符。

    根据一些行业报告,70%的数据是静态的。通过将合适的数据存储在合适的介质上,企业能削减成本。他们能意识到通过部署云平台能节省成本,在云计算中实施ILM带来的经济效益意义重大。但前提是无需中断应用,而且不能增加不必要的操作复杂性。

    为了做到这些,企业必须使用基于策略的块级ILM方法,无论访问方式和应用类型。通过在数据块一级跟踪数据的属性,就无需在操作系统这一级执行数据归档或数据迁移。这种方法还能独立于操作系统类型,且独立于用于存储数据的访问方式。它不仅在保持性能(所有的数据写入都在高速层完成)的同时优化存储的成本,而且通过将不使用的数据块沉淀到低速层减少电能的消耗。这很合理,因为近线存储仅消耗企业存储的大约20%的能耗。为此,要做到真正适合企业级应用的自动分级存储,卷级或文件级数据迁移无法胜任,颗粒度必须细化到数据块级。只有数据块级的数据迁移才可能独立于操作系统类型,且独立于存储数据的访问方式,做到对应用支持的随需相应。

    要素4:存储访问模式


    访问存储空间有三种主流方式:基于数据块 (FC SAN或iSCSI)、基于文件(CIFS/NFS)、或通过Web服务。基于块和文件的访问方式在企业应用中最常见,能更好地控制性能、可用性和安全性。在这点上,市场上大多数云计算平台利用Web服务的接口,如SOAP和REST(代表性状态传输)访问数据。虽然,这是最灵活的方式,但有性能的影响。理想的情况是,企业云提供全部的三种访问存储的方式来支持不同应用架构。

    要素5:可用性


    IT架构的维护窗口被大量的缩减,因为企业需要支持在不同时区的用户并保证全天候的可用性。虽然服务级别协议(SLA)一般与可用性密不可分,从业务角度看,它难以衡量,因为有着多种架构的复合SLA的重叠。

    在前面提到,在市场上大多数云计算平台中,I/O性能最先得到考虑。如果云平台依赖于不被内部IT集团管理的部分架构,那么冗余的架构部分和途径是减少停机风险的最佳方式。虽然,云存储服务提供商在考虑成本的同时继续增加可用性,但是目前市场上的服务级别协议不能满足企业关键应用的需求。

    在高端的企业级云计算中,存储系统够出来企业内的企业级存储方案,包括多路径、控制器、不同的光纤网、RAID技术、端到端的架构控制/监控,和成熟的变更管理过程。在低端的企业级云计算中,存储可用性与今天市场上云计算平台的服务水平相当。为了提供企业需要的服务水平,企业级云存储供应商必须利用健全的架构设计和被充分验证过的创新技术。

    要素6:主数据保护


    主数据指的是在线运行的数据。主数据能够采用单一技术,或者结合多种技术进行保护。一些常用的方法包括:RAID保护、多份拷贝、远程复制、快照、和持续数据保护。

    在市场上大多数云计算平台里,主数据保护的问题常常留给用户。今天,很少发现上述的方法在大众云计算平台中使用,因为技术的复杂性和成本。有一些大众云存储方案通过维护数据的多份拷贝来保护主数据,整个系统运行没有RAID保护的存储里,以此降低成本。

    企业级云的主数据保护应该基于内部企业级方案。当方案的业务影响分析(BIA)需要时,例如快照和容灾等可靠的技术应该就绪。

    内部企业方案和企业云存储的主要差别在于,主数据保护在方案中是如何绑定的。为了延续根据需要部署云环境的经验,各种选项必须打包,这样服务能自动部署。其结果是,将一系列绑定的选项打包,能够应对大量需求。也许不存在可以利用快照、远程复制等与客户需求相匹配的技术。无论如何,多数用户将意识到,常常需要牺牲灵活性去获取在企业云中其它的管理好处。

    要素7:次级数据保护


    次级数据来源于主数据的历史拷贝来形成备份。这种数据保护意味着减少数据损坏,恢复被删除或被写覆盖的数据,为了业务或法规的需要将数据长期保存。典型的方案常包括备份软件和几类存储媒介。数据重复删除也许能被用上,但这在关系到数据隔离的多用户环境下,可能产生些问题。

    有些商业和公共领域上的方案,被加入到大众云存储中,以完成次级数据保护。但大众云计算平台的供应商很少将这些与在线存储一并打包。虽然原因各异,但在许多情况下,与恢复时间和保留期相关的服务水平(SLA)问题很难处理。

    无论方案是私有的还是多客户云平台,管理手段、可见性和恢复的服务水平是次级数据保护的关键。一旦提交恢复请求,恢复的启动应该直接而且能够自动完成。用户应该能掌控可预见的恢复性能水平(恢复的数据GB/时长),而且应该能从一个简短的选项列表中选择保留的时长。最后,用户应该能检查那些在线备份的状态。因为频度和保留期决定了存储备份所需的资源 - 也就是成本 - 客户应该能够在线观察资源使用状况和收费情况,以免在结账时感到意外。

    要素8:存储的灵活适应性


    存储的灵活适应性是指能够根据业务的需要的变化做到存储资源的随需响应。归根结底,它取决于操作系统对存储变化的检查能力和所使用的访问方式。

    在这里讨论的9个要素里,这一点是大众型云计算平台做得最好的要素。大多数方案都有按照预先设计的数量,逐渐增加存储的能力。删除空间也是一个选项,通常用于卷或加载点。如上所述,操作系统对存储变化的应对能力通常是个局限。

    支持企业云需求的存储需要能灵活扩展,需按照客户能理解的方式计费。虽然增加和删除存储空间非常重要,用户倾向于仅为其用到的空间付费。他们也希望在基于Web的管理方式下,具有调整和生成使用状况报表的功能。这种功能帮助他们控制成本,提供业务规划的智能。

    要素9:存储报表


    当公司考虑将其全部或部分IT架构外包的时候,经常顾虑的是这些特定技术的不可见性。客户需要包括从容量和性能角度了解运行环境的状态。为了达到这个目的,通过用户管理界面,输出丰富的存储报表成为必须,使得客户对于存储高效的运行充满信心。

    在市场上云计算平台里,与存储相关的报表是最基本的工具。许多提供商提供标准的报表来使用,在一些场合下,他们也提供基本的性能评估工具,或者来自提供商,或者来自共享厂商,或者是第三方工具。

    企业云比传统企业存储有优势,传统企业存储常常导致客户使用单一存储厂商的方案。这使得报表非常简单,因为数据不用像来自多厂商平台那样,需要进行翻译,才能生成一份统一外观的报表。有关历史和实时使用情况的详细信息,连同一些关键性能指标 - 历史的或实时的 - 应该可通过用户管理界面7x24小时实时查看。最终,为了减少企业对失去控制的担忧,云计算的提供商应该具备更综合性、更精确的报表能力,尤其是对于存储系统使用情况的可见性。

    结论


    一个强健的企业级云不应该只片面关注CPU、内存、磁盘、和IP地址分配,在规划企业级云计算平台策略时,应该包括本文所提到的9大要素。这样,企业才能拥更完备的云计算平台来支持业务运行。

    展开全文
  • 而微服务的开发模式不同,它的思路是将每个大层面的应用,再次分解,将每个相对独立的小模块都变成一个独立的程序(所谓一个小的服务)每个服务都的独立运行在进程,独立部署,每个服务之间通过轻量级的方式进行...

    下载地址:下载完整MP4文件

    1.邱洋总结

    • 微服务不是石头缝里面蹦出来的,是基于类似SOA、Blackboard、C/S等应用架构基础上,并融合敏捷开发、DevOps等理念的基础上发展而来
    • 微服务相比传统应用优点明显(快速部署、去中心、良好的隔离性等),缺点也不少(更复杂、通信损耗、测试成本高)
    • 微服务不仅仅是一种新型的应用设计方法,使用这种架构的企业的组织架构可能也需要作出适当调整
    • AWS针对微服务设计了ECS(基于EC2的容器服务)、Lambda(基于事件驱动的计算平台,开发人员只要编写javascript或java逻辑就行,lambda负责执行工作,类似HPC的执行模式)
    • 原来AWS的ElasticBeanstalk就已经在底层使用Docker来进行应用环境交付了,只是限定更加多(需要指定语言平台,如java、php、.net等)而ECS则没有这么多要求。EB好比GAE而ECS更像EC2

    2.关于微服务(Microservices)

    2.1为什么需要微服务

    原有3层的应用架构(表现层、逻辑层、持久层–数据层)每个大层面的应用程序都有大量逻辑进行包裹,因此开发、维护和管理起来非常费时费力,且由于开发周期长都存需求落后风险

    图片1

    而微服务的开发模式不同,它的思路是将每个大层面的应用,再次分解,将每个相对独立的小模块都变成一个独立的程序(所谓一个小的服务)每个服务都的独立运行在进程中,独立部署,每个服务之间通过轻量级的方式进行交互,例如http api。不同的服务可以不同的开发语言,数据存储保存机制。这样就可以敏捷的开发和维护应用,时间周期也变得非常短

    图片2

    2.2 为什么微服务会出现?

    技术发展带来的复杂性,开发时间上的开销,大环境所承担的各种风险,相关理念与开发思想(如敏捷开发)共同推波助澜的结果

    微服务是以历史上存在的、流行过的编程架构为基石的,而非石头缝里蹦出来的,这些架构包括:

    • Blackboard架构:背后的理念是,一系列独立的程序携手合作,致力于处理同一个数据结构
    • Client/Server架构:客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现
    • Component Based架构:在组件对象模型的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件
    • Peer-To-Peer架构:不同于主从式架构,网络上的每个使用端或程式的实体都拥有相同的等级,同时扮演用户端与服务器的角色。
    • Service Oriented 架构:大名鼎鼎的SOA架构,是构造分布式计算的应用程序的方法。它将应用程序功能作为服务发送给最终用户或者其他服务。

    另一方面,微服务不仅传承了各种应用架构,而且受到众多软件设计领域的思想的影响,比如:

    • 领域设计驱动(分析模型化的复杂业务)
    • 敏捷方法(提升效率减少浪费)
    • 持续交付(更快、更可靠、更频繁的应用部署)
    • 虚拟化和IaaS(简化基础架构环境)
    • DevOps(让团队更加小巧)

    2.3 微服务的特征

    • :每个服务只做一件事情,并且目标是把事情做好、做极致 。例如业内有些人的甚至用代码尺寸衡量(例如100行、1000行以内的代码)。
    • 运行在独立的进程中:不同的服务可以运行在不同的主机之上
    • 轻量级通信机制:指的是服务和服务之间,通过轻量级的通信机制,进行沟通(轻,是指通信跟语言和平台无关,例如json、xml等)。而相反的传统重量级通信机制比如(.net remoting或java rmi)
    • 松耦合:不需要改变依赖,只需要改变当前服务本身,并独立部署。这意味着该服务的部署和运行,和其他服务之间呈现独立的姿态

    2.4 微服务的优缺点

    优点:

    • 良好的隔离性和可用性,场景:某一个服务的故障,并不会影响到其他无关的服务
    • 独立交付速度大大提高,场景:现在强调的持续部署、持续开发对交付速度有很高要求,Microservices可以做到。而传统的Monolithic一体化应用部署的交付速度提升非常难,对基础架构、对环境、对应用测试的要求高,很难做到
    • 去中心化的管理,场景:在管理部署传统应用的时候,都有部署一个打包的应用、有一个关键核心应用,就是是一个中心点。而Microservices并没有一个中心,因此可以在运维过程中各团队可以针对部件独立部署,DevOps ,降低风险

    缺点:

    • 复杂性,Microservice本质上是分布式,而分布式系统本身存在复杂性,需要开发、测试和运维人员等都需要有处理复杂系统的经验
    • 服务的操作开销,Microservice因为有很多服务,相比传统架构有很多服务间通讯的开销,因此在效率上不如传统Monolithic。并且一般都需要遵循DevOps进行管理模式和流程。
    • 服务接口不匹配后的问题?虽然Microservice使用标准化接口,但由于服务多而且不同服务的接口存在版本,一旦某服务版本失去了控制,或与其他服务通讯的匹配,则会出现不可控的风险
    • 测试,相比传统应用架构,每次发布版本,都需要整个生态系统测试,因此整体测试时间更长更复杂
    • 扇形增加的需求数,主要原因是随着服务的增加,数据流量就会大幅度增加

    3.微服务设计

    3.1 康威定律 Conway’s Law(应用架构对组织架构有要求)

    图片3

    任何设计系统的组织……必然会产生以下设计结果,即其结构就是该组织沟通结构的写照

    —-翻译—–
    有什么样的组织架构,就有什么样的软件产品。用传统的组织架构去开发Microservice就会出问题

    3.2 传统应用组织架构(SILOs)

    图片4
    传企业应用架构如下:
    - 产品团队
    - 用户交互体验
    - 开发团队
    - 测试团队
    - 数据库团队
    - 系统管理
    - 网络管理
    - 存储管理等

    传统应用架构采用一体化(Monolithic)应用使用这种模式是比较好的,但是Microservice使用这种架构会有问题(因为每个服务都可能存在需要搭配这样的班子的情况),而这种组织架构下,信息在团队间沟通成本是非常大的

    3.3 针对Microservice,组织需要作出调整(DevOps)

    图片5

    调整方法:针对Microservice的各个service建立一个个敏捷小型的高效团队,每个小型团队针对每个服务(贯穿于整个应用的各个服务模块)负责,独立进行相应的开发与管理工作

    图片10
    Microservice的架构跟DevOps有密切的关联,Microservice是DevOps思想逐步演化的结果,而DevOps也是实现Microservice最好的工具

    3.4 如何设计 smaller(真正的小) 的服务

    推荐一本书:Building Microservice

    图片6

    将服务做小的关键点总结:

    • 每个服务要关注“业务”领域,每个服务解决一个具体问题
    • 结构上呈现“松散、耦合”架构,便于后期部署、测试、调试
    • “有边界”的上下文,并不需要每个服务周边的部分—其他服务、依赖服务等,团队只关注服务本身和服务的API;传统应用的需求分析需要对全局需求有了解并设计后才能开发,而微服务可以更快让团队开始
    • 每个服务都可以独立部署
    • 需要配套思想对应的工具(如DevOps的工具等)
    • 鼓励大家使用新技术(建议:伯斯塔尔法则,做的时候要保守,接受的时候要开放)
    • 自动化的文化
    • 能在两周内重写的东西(衡量Microservice的服务小的标准)
    • 两张披萨团队(亚马逊内部思路,一个灵活敏捷的团队应该控制在10个人左右)

    图片9

    3.5 Microservice的实践- Netflix IPC Stack

    图片7
    ★Netflix IPC Stack 1.0
    Netflix内部的一个应用,1.0采用传统的SILOs风格的应用,不符合Microservice的设计风格

    图片8
    ★Netflix IPC Stack 2.0
    Netflix 在 IPC Stack 2.0开始抽象出了比较粗的服务,并独立部署在彼此隔离的容器中,且通过HTTP API进行交互

    4. Microservice的相关技术与云服务

    4.1 容器计算技术

    图片11

    传统虚拟机(拥有hypervisor)会存在性能损耗,而docker采用LXC技术取消了hypervisor,直接使用Linux Kernel,提升了性能。而docker的这种快速部署和管理能力,正好和Microservice的服务快速部署吻合

    4.2 AWS上的docker运行模式有3种

    1. EC2(直接使用EC2服务中内置了docker能力的AMI启动实例来使用docker)
    2. AWS Elastic BeanStalk(利用docker技术进行封装,来自动部署弹性web应用和服务架构的托管类应用,可支持php、java、.net等语言环境)
    3. EC2 Container Service(提供针对docker容器的可视化、流水线式的管理能力)

    4.3 EC2 Container Service

    ECS的关键组件

    1、机群(Container Cluster)
    - 区分区域
    - 相当于资源池
    - 相当于容器实例的分组
    - 启动时为空、动态扩容与调整

    2、容器实例(运行容器的EC2实例)
    - 包含一个EC2实例
    - 在实例中存在一个Docker进程
    - 在实例中存在一个 ECS的代理(Agent是开源的,用goLang开发)
    图片12

    3、任务(就是一个个docker 容器)
    - 每个实例可以设置多个任务
    - 任务是作业的单位
    - 允许任务分组和设置关联
    - 任务运行在EC2实例中

    4、任务 定义
    - 通过json来定义任务
    - 包括:docker hub模板、cpu数量、内存等
    图片13

    图片14

    任务 调度(实现计算资源的管理)
    - 长期运行的服务(Long-running services)
    - 批量执行任务(RunTask for bach jobs)
    - 集成第三方调度器schedulers

    4.4 Microservice的实践- Coursera(使用了ECS)

    4.4.1 一个mooc网站

    图片15

    4.4.2 Coursera的需求

    之前Coursera开发了一套传统的互联网应用架构,有很多程序单元,而每一个单元里面有很多服务(粒度很粗),主要的需求是

    • 可靠性:因为服务的人员比较多,所以如果应用宕机则对公司声誉2.影响大
    • 更容易开发:互联网公司生存压力,需要快速上线更多应用满足客户需求,另一方面,小并且公式化的开发模式是必须的
    • 更快部署
    • 成本的考虑:希望投入产出比更高
    • 更高效的运维:只有1个运维人员,现有环境维护太复杂
      图片16

    4.4.3 Coursera的选择之路

    Coursera尝试了很多方法,最后不希望自己运维和折腾了,所以选择了ECS
    1.自己的现有技术
    - 尝试过,但是不可靠
    - 操作困难

    2.MESOS
    - 非常强大,实际操作过程中易用性差
    - 需要一直与之匹配的DevOps团队

    3.Kubernetes
    - 在GCE上表现的很好,其他地方就不行了(而GCE是google的IaaS平台)

    4.使用ECS
    - 维护成本几乎为0
    - Coursera已经使用了AWS的服务,如IAM等希望继续沿用
    - 开发人员更好理解和操作(docker本身还是主机不用改变语言开发方式),学习成本低

    4.4.4 最终Coursera改造后的Microservice架构

    • 大量的使用ECS的work部署Microservice中的service
    • 前端+调度器 设计
      • 生成的请求(通过API调用 或 内部通信都通过scheduler来分配)
      • 新请求保存在 SQS 队列中
      • 根据来自其他服务的状态 而 处理请求
    • 后端设计
      • 试图通过ECS 的API 来运行task(不是通过界面操作,更快更及时)
      • 如果任务失败,则任务自动回滚到队列中,之后重试
      • 保持任务状态的跟踪,并更新 Cassandra数据库(一种NoSQL数据库)

    图片17

    4.5 AWS的Lambda(托管的、事件驱动架构的计算平台服务)

    特点:

    • 零管理:是一个计算平台而不是一个windows或linux,因此不需要过多的管理环境相关的东西(例如多少cpu、内存、带宽等)
    • 事件驱动:基于事件产生对代码块的自动调用
    • 计算平台:对于开发人员来讲,就是一个计算平台,提交代码然后等待结果即可
    • 用户可以专注业务逻辑而不是基础架构:用户针对业务进行服务开发(可以使用javascript、java等)并设定好触发机制上传代码,而AWS Lambda负责后续的工作,如容量、扩展、部署、容错、监控、日志等
    • 自动化扩展:用户仅仅负担所使用的费用,不会超过/低于资源调配
    • 细粒度的定价:价格计量单位是毫秒(单位是100ms)对于短时间任务非常有价值,没有最低消费,可以免费试用
    • 事件以不同的形态和尺寸发生:S3事件通知、DynamoDB Streams事件、Kinesis(事件流)事件、定制化事件
    • 同步异步都可调用:针对不同的业务场景可以选择同步异步模式调用,如某些应用日志产生问题后异步响应触发lambda调用。或定制实践发生后同步触发lambda调用

    图片18

    基础架构的扩展性、利用率情况

    资源种类 扩展性 利用率
    企业自有IDC 周级
    Amazon EC2 分钟级
    Container 较高
    AWS Lambda 毫秒 最高

    4.6 Microservice的实践-AWS Lambda使用方法示例

    4.6.1 一个内容管理系统(CMS)

    具体需求包括:
    - 允许用户上传头像
    - 需要将图片保存
    - 需要为头像制作缩略图,在不同的web位置使用

    4.6.2 传统情况

    • 一个CMS应用搞定所有工作,涉及的流程包括:上传头像→保存图片→将图片生成缩略图

    • 传统情况下修改任意环节(如保存图片)则需要将CMS系统重新打包然后更新

    4.6.2 Lambda改造情况

    • 用户上传图片到S3中,一个新的S3对象将触发lambda函数来转换成缩略图,将缩略图保存到S3的另外一个bucket
    • 另一方面将元数据保存到DynamoDB中,当一个新的保存条目后触发一个创建ECS的task的事件去执行其他操作(如生成GIF图)

    图片18

    展开全文
  • 基于云计算的智能楼宇控制系统

    千次阅读 2020-02-24 20:45:57
    该系统利用云服务器存储环境数据并进行深入挖掘,生成基于用户行为习惯的控制方案,通过Internet发送给客户端,发挥云计算的高效性、智慧性、跨平台等优势,在较大程度上提升了智能楼宇系统的水平, 极大地改善...

    基于云计算的智能楼宇控制系统

     

    本人原创文章,知网可见,转载表明原处

    摘要:针对目前楼宇系统只有简单控制功能,不能对用户行为数据进行深入挖掘的普遍状况,提出了基于云计算的智能楼宇控制系统。该系统利用云服务器存储环境数据并进行深入挖掘,生成基于用户行为习惯的控制方案,通过Internet发送给客户端,发挥云计算的高效性、智慧性、跨平台等优势,在较大程度上提升了智能楼宇系统的水平, 极大地改善了人们的生活。

    0引言

    随着我国城市化的发展,城镇化和智能化水平进一步提高,因此市面上出现了大量的智能楼宇解决方案。这些智能楼宇解决方案普遍具有网络化、信息化、便捷化的特点,能方便使用者对于各样复杂的信息进行收集和管理,满足现代信息社会的基本要求。然而这些智能楼宇解决方案,较多还是停留在简单控制功能上,不能对用户行为数据进行深入挖掘,无法发挥智能楼宇的智慧性。本文提出了基于云计算的智能楼宇控制系统,能够根据用户行为实现楼宇智能调控,同时具有了安全便利和智慧高效的特点,并真正地发挥智能楼宇的智慧性。

    1 系统整体方案设计

    该系统包括数据采集模块、智能网关模块、云服务器模块、客户端模块,总体结构如图1所示。数据采集模块将数据包通过串口发送到智能网关模块,智能网关模块通过Internet传给云服务器,云服务器存储信息并生成方案给客户端。

    该系统布局相对简单,协调器节点安装于楼宇的靠近中心位置处,并通过串口与智能网关模块相连,对整个Zigbee网络进行维护与控制、缩短通信距离以及降低发射功率。楼宇各部分均置有路由器节点,路由器节点则与对该部分的终端节点设备相互通信,终端节点可按照用户需求个性化搭配。

    1 主体结构原理示意框图

     

    2 系统实现

    2.1 数据采集模块

    数据采集模块包括终端节点、协调器结点以及路由器节点。终端节点采集楼宇中各项数据,协调器建立和维护一个Zigbee网络管理其网络中的其他节点,路由器实现其他节点的消息转发功能。其中,由协调器节点、路由器节点和终端节点构成ZigBee三级树型无线传感网络,构成数据采集模块的网络骨架。

    该模块中环境信息采集传感器有温度传感器、湿度传感器、光照度传感器、土壤传感器、车距传感器、烟雾传感器、PM2.5传感器和人体红外传感器;设备控制器有灯光控制器、插座控制器、窗帘控制器、空气净化器控制器、加湿器控制器、音乐控制器、声光报警设备、空调、电脑和电视机ZigBee转红外信号控制模块等。

    数据采集模块的三种节点均采用TI公司的CC2530芯片,具体内部结构见图2所示。CC2530芯片拥有丰富的端口,能够同时连接控制多个设备,同时具有良好的扩展性,CC2530芯片与就近的传感器或设备控制器通信连接并进行信息传输,并将多个传感器或设备控制器的信息通过一个无线数据包传递,用以降低室内无线信号辐射。

    2 CC2530原理图

    2.2 智能网关模块

    智能网关模块在网络层以上实现网络互连,以基于TCP/IP协议的Socket编程实现协调器串口数据的网络传输,将数据通过WiFi路由器转发给网络。智能网关模块可使用在不同的通信协议、数据格式,甚至体系结构不同的两种系统之间。

    智能网关在系统内部建立统一的数据处理中心,首先收集传感器节点的数据,并对系统内部数据进行管理,实现内部设备之间的信息交互;同时对外连接Internet,提供系统网络内部各设备与外部设备相互通信的桥梁。

    智能网关具有感知网络接入的能力,即对各节点属性、状态等信息的获取功能,可以感知各节点的实时状态。并且具有对节点的远程控制、唤醒、诊断等功能,即实现节点的自动化管理。

    智能网关实现了传感网络到通信网络的协议转换,将协议适配层上传输的标准格式数据进行统一封装,将广域接入层下发的数据解包成标准格式数据,实现命令的解析,之后转换为感知层协议可以识别的信号和控制指令。

    此外,智能网关具有异构网络互通的能力,因为智能网关接入必然存在跨域通信的要求,需要完善的寻址技术以确保所有节点的信息都能被准确地进行定位和查询。

    总而言之,智能网关在本系统中主要完成了三个任务:首先,是收集传感器节点的数据;其次,执行数据协议转换;然后,将协议转换后的数据快速的发送到Internet。除此以外,智能网关同时具有相应的管理和控制能力。

     

    2.3 云服务器模块

    云服务器采用Hadoop架构进行开发设计,并运用数据存储、数据管理和数据挖掘技术,对智能家居系统的环境信息、历史信息、用户行为信息等进行分析挖掘,进而预测用户行为,并生成宜居的智能楼宇控制方案。数据通过Internet从智能网关模块传入云服务器,云服务器处理后再通过Internet传输至客户端,进而实现更高层次智能楼宇管理。如图3为系统数据挖掘与控制流程示意图。

    数据采集模块中各传感器采集到的环境实时数据全部传至智能网关模块中,由其进行信息汇总和整合;这些汇总数据通过Internet上传至云服务器的数据库中储存,如过程A所示。数据库将数据进行预处理操作并构建数据仓库,如过程B所示。云服务器采用频繁模式挖掘算法、关联规则挖掘算法、决策树算法对数据仓库中的数据进行进一步分析、预测,如过程C所示。云服务器将得到用户行为的预测数据,结合该系统的室内ZigBee网络布局,生成最佳控制方案,如过程D所示。所生成控制方案将通过Internet回传至智能网关模块,由其生成具体控制命令,通过串口传输给协调器节点进而控制各种设备,如过程E所示。例如,系统能够判断出某用户上班时间,提前20分钟将打开空调和加湿器至适宜的温湿度,控制窗帘打开或关闭,并在用户来到办公室后打开灯光,用户离开后依次关闭灯光、空调和加湿器灯设备。

    云服务器对用户日常行为习惯进行数据挖掘,形成符合用户行为习惯的智能楼宇控制方案,用户能够选择在云服务器中预先存放适宜本人工作或生活的个性化数据,由相应算法将数据挖据结果与健康生活或工作数据结合进行微调,产生用户最佳健康生活或工作管理引导方案,通过算法逐步改变某些控制信息,使用户慢慢适应更健康的生活或工作习惯,改掉不良行为。

    3 系统数据挖掘与控制流程示意图

     

    2.4 客户端模块

    客户端模块大致分为手机客户端或PC机客户端,客户端模块通过Internet与云服务器相连,获取数据采集模块的数据,以及云服务器针对用户行为习惯定制的解决方案。

    客户端可以对环境感知信息和视频数据进行实时访问,对各种设备控制器进行控制,以实现智能门禁、智能安防、智能浇水、智能窗帘等等。

            客户可使用微信、app或者网页方式接入并登录本系统,登录后首先对用户身份进行验证,确认安全后进入该系统主控制页面进行功能模式选择与设置,客户端模式如下:

    1)自动模式,该模式下系统通过用户设定或系统预定义的参数阈值进行自动控制,用户能够查看当前环境状态及设备控制信息,也能够修改控制参数。

    2)手动模式,该模式下用户能够通过手动控制楼宇中各设备运转,还能够查看到环境信息及当前设备运转状态,通过进入各子系统控制模块进行手动控制操作,包括但不限于控制窗帘开关、电视机换台、空调温度控制。

    3)专家模式:该模式是基于云计算,采用数据挖掘算法统计并挖掘用户行为数据,根据用户行为习惯而生成的一系列控制参数,如用户对空气温湿度程度、光照强弱等环境的个性化需求,是一个真正属于用户自己的个性化智慧型的智能楼宇控制,同时用户能够在该模式下发现自身的一些隐性行为习惯。

     

    3 系统测试

    通过该系统,用户可以采取自动或手动方式实现环境信息实时采集和楼宇的联动控制,也可采用专家模式中生成的智能楼宇控制方案。网页端运行如图4所示。手机端APP运行图如图5所示。

    本系统所含传感器包括温度传感器、湿度传感器、光照度传感器、土壤传感器、车距传感器、PM2.5传感器和人体红外传感器;所含设备控制器为灯光控制器、插座控制器、窗帘控制器、空气净化器控制器。

    4 网页端运行图

     

    5 手机端APP运行图

    4 结语

    本文设计实现的基于云计算的智能楼宇控制系统,经过测试能很好地完成项目预期要求。实现了楼宇监控系统的控制和对用户行为数据进行深入挖掘,生成了一套合理的生成基于用户习惯的智能楼宇控制方案,系统功能强大,并且具有功耗低、成本低、安全性好、布局灵活、操作简单等特点,在现代楼宇环境中具有很好的应用前景。

     

     

     

     

    展开全文
  • 目前业界公认的第三方的对于云计算的定义和解释是NIST(National Institute of Standards and Technology,美国国家标准和技术研究院)的说法,其对于云计算的服务形式的说明如下:SaaS(软件即服务):提供给消费者的...

    目前业界公认的第三方的对于云计算的定义和解释是NIST(National Institute of Standards and Technology,美国国家标准和技术研究院)的说法,其对于云计算的服务形式的说明如下:

    SaaS(软件即服务):提供给消费者的服务是运营商运行在云计算基础设施上的应用程序,消费者可以在各种设备上通过瘦客户端界面访问,如浏览器(例如基于Web的邮件)。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储,甚至独立的应用能力等等,消费者仅仅需要对应用进行有限的,特殊的配置。

    PaaS(平台即服务):提供给消费者的服务是把客户使用支持的开发语言和工具(例如Java、python、.Net等)开发的或者购买的应用程序部署到供应商的云计算基础设施上。消费者不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能够控制部署的应用程序,也可能控制运行应用程序的托管环境配置。

    IaaS(基础架构即服务): 提供给消费者的服务是处理能力、存储、网络和其他基本的计算资源,用户能够利用这些计算资源部署和运行任意软件,包括操作系统和应用程序。消费者不能管理或控制任何云计算基础设施,但能控制操作系统、储存、部署的应用,也有可能获得有限制的网络组件(例如,防火墙、负载均衡器等)的控制。

    简单来说:

    IaaS给你的是远程的登录终端界面(虚拟服务器)或者Web Service接口(云存储)。

    PaaS给你的是数据库连接串或者中间件部署界面,或者是应用的部署管理界面。

    SaaS给你的就是访问应用的客户端或者Web界面。

    展开全文
  • 云计算环境下的运维管理实践

    千次阅读 2017-01-10 22:53:24
    云作为一个新生事物,在改变资源供给模式的同时也对...\x0a本文就是从实践角度出发,对某行业客户在构建云计算环境中遇到的几个云运行环境的运维新问题或薄弱环节进行了分析,并针对该类问题采取了一些改进实践措施;
  • 云计算环境下的应用架构设计

    千次阅读 2012-01-17 18:35:30
    作者从云计算环境下应用的特点出发,分析了在云计算环境下应用程序开发设计的一些新变化。根据这些特点,本文提出一个“自我感知应用”(Self-Sensing Application)的新概念,接着以Windows Azure平台为例阐述如何...
  • 因此,庞大的数据中心不仅是企业管理效能的倍增,也是企业不得不背负的巨大包袱。 云计算是一种革新的 IT运用模式,它透过硬件的虚拟化将大量的服务器硬件抽象成为一个巨大的资源池,可以动态...
  • 云计算是一种基于服务的架构体系,有两种基本服模式:云计算和云存储。基于云计算服务的应用程序,无论是金融服务还是网络角色扮演游戏,几乎在所有情况下都需要高性能的云存储来满足数据处理的需求[1]。网络时代是一个...
  • 云计算

    2020-11-09 23:03:36
    主要云计算提供商最初将数据库作为应用程序使用,以便在通用计算实例上运行,但很快就开始使用更高级别的应用程序服务来扩展其IaaS产品。云计算数据库已经成为技术开发的关键领域,云计算提供商可以通过启动不同...
  • 云计算服务推出之时,人们曾乐观的估计,今后的电脑无需大容量硬盘,因为所有的应用和个人数据(包括图片,视频、文档和电子邮件)都将被存储于远程服务 器中,用户只要很少的投入就可以得到按需分配的存储资源。...
  • 在最近对云计算的所有关注,存储更多地被视为基础平台。时至今日,许多云计算提供的仅仅局限于CPU内核的集合,定量的内存分配,低转速存储,或者还有一些面向互联网的IP技术。近来,出现了有趣的与云计算和存储...
  • 作者:吕金明,系统架构师,...在大数据迅速发展的今天,很大一部分支持来自于底层技术的不断发展,其中非常重要的一点就是系统资源的管理和控制,大数据平台的核心就是对资源的调度管理,在调度和管理之后如何对...
  • 云计算概论

    2020-12-21 20:33:14
    三种服务模式之间的关系五,云计算主要部署模式六,云计算是商业模式的创新七,典型的云计算产品1.Amazon的AWS2.Windows Azure Platform3.IBM蓝云解决方案八,云计算技术的新发展九,我国云计算的产业状况1....
  • 云计算中的术语

    千次阅读 2017-10-22 16:31:26
    断路设计模式,这是一种原生云的设计模式,可以构建和操作弹性的、可伸缩的微服务。 Cloud architecture: 云架构,包含了前端平台、后端平台、基于云端的交付和网络等云计算所需的全部组件。 Cloud broker...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,500
精华内容 11,000
关键字:

云计算环境中的主要控制器