- ?
云计算时代,数据库架构设计有哪些改变?
飞珍
展开
【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/
- ?
多云平台监控系统的设计与实现
喻绿兰
展开
杨靖琦,胡勋
(中国电子科学研究院,北京 100041)
:近年来,随着云计算的兴起和逐步发展,云平台已成为各类企业和机构提供服务的主要方式,为保证云平台高效稳定运行,需要对云平台进行实时监控。针对以上需求,基于开源监控工具Ganglia和Ceilometer,设计并实现了一个多云平台监控系统,提供云平台、物理机和虚拟机中内存、CPU和硬盘等资源使用情况的监控能力,同时,通过物理资源管理、监控策略管理、日志管理和用户管理等功能,提升监控系统的可扩展水平和用户友好程度。最终,实现对多云平台全方位可视化的管理和控制。
:云平台;监控系统;物理机;虚拟机
:TP399文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.030
引用格式:杨靖琦,胡勋.多云平台监控系统的设计与实现[J].微型机与应用,2017,36(10):102-105.
0引言
计算平台的发展主要经历了以主机为中心和以PC为中心两个阶段,目前正处于以网络为中心的阶段。在这一阶段,随着云计算技术的快速发展,以云平台为代表的网络计算平台逐渐成为主要的资源提供方式。企业可以基于分散的计算、存储等物理资源按照不同组织架构搭建云平台,动态地为用户提供所需的计算、存储等资源,提高资源利用率,降低运营复杂度和成本[1]。随着云平台的不断增多和规模的不断扩大,平台监控难度急剧增加,传统的人工查询方式已不适用于多个大规模云平台的监控和管理,为实现更有效的云平台管理,需提供云平台资源的统一监控管理能力,从而直观地了解平台运行状态,最大限度地使用系统的资源。
目前,国内已开展了对云平台监控的研究,其中一些研究[2]实现了OpenStack云平台中虚拟资源的监控,另外一些研究[3]实现了OpenStack云平台中物理资源的监控,但现有云平台监控研究成果大多针对单个云平台的单一资源类型,无法提供多个平台中物理资源和虚拟资源的多功能、一体化监控系统。为解决现有问题,本文设计并实现了面向多个云平台、覆盖物理资源和虚拟资源的监控系统。
本文的多云平台监控系统面向OpenStack云平台设计和实现,具有可移植性,其中物理资源监控是平台无关的,无需修改即可适用于其他平台,虚拟资源监控可通过修改访问接口的方式应用于对其他云平台的监控,由于文章篇幅限制,在此不做赘述。
1云平台及监控方法
1.1OpenStack
OpenStack是美国国家航天局和Rackspace公司共同开发的开源云计算平台,可支撑公有云或私有云的建设和管理,为用户提供IaaS(基础设施即服务)层的云服务。OpenStack包括Nova、Swift、Glance和Keystone等主要模块,分别提供计算、存储、镜像和安全认证等能力,由于其具备模块松耦合、组件配置灵活、易于二次开发等优点,已成为应用最广的开源云平台[4]。
1.2Ceilometer
2012年10月,随着OpenStack Folsom的发布,Ceilometer项目发布了第一个版本,从2013年开始,Ceilometer作为OpenStack发行版的一部分发布,提供OpenStack平台的虚拟机监控功能。为适应云计算环境节点大规模动态调整的特点,Ceilometer通过插件机制,提供了可灵活扩展的架构。
Ceilometer通过轮询计算节点上的虚拟机实例获取监控信息,并在数据库中将监控信息进行持久化存储,为计费和监控提供支撑。
1.3Ganglia
目前,在集群计算机监控领域主要有Cacti、Parmon、Nagios、Ganglia等软件系统。通过对此类软件的比较分析可知,Ganglia具备功能模块丰富、监控功能强、可扩展性高等优点,同时具有良好的移植性,支撑在Linux、Solaris、Mac OS和Windows等主流操作系统上运行,可满足复杂环境下的集群监控需求[5]。
Ganglia是加州学校伯克利分校发起的计算机集群监视项目[6],用于监控大规模集群的运行状态,如:CPU、内存、网络负载、硬盘利用率等。Ganglia采用分布式的监控结构,通过安装gmond和gmetad软件实现集群的监控,其中,被监控的节点安装gmond实现节点运行状态的收集和上报;监控节点安装gmetad实现与gmond通信,通过轮询的方式收集区域内节点上报的状态信息。Ganglia使用RRDTool工具实现采集数据的存储和处理,并可通过个性化配置实现基于Web的图形化显示。
2系统设计
2.1系统架构设计
多云平台监控系统提供云平台、服务器和虚拟机监控数据的获取、处理和展现功能,其系统架构如图1所示。
资源层:依托分布式服务器设备,基于OpenStack开源软件,搭建异构云计算平台,可为用户按需提供物理资源和虚拟资源,是监控系统监控主体。
监控层:基于Ganglia软件实现服务器资源状态监控,基于Ceilometer组件实现虚拟机资源状态监控,通过对服务器和虚拟机监控信息的获取和融合处理,为展示层提供所需状态数据,同时根据资源监控策略,实现资源状态告警和利用率告警信息生成。
展示层:以Web页面方式进行信息展示,提供异构云监控和异构云管理两类功能,实现异构云平台资源信息和状态的统一监视和控制。其中:
多云平台监控主要展现云平台总体状态、云平台监控、服务器监控、虚拟机监控等相关信息。
(1)云平台总体状态:实时监控数据中心所包含的服务器、虚拟机的数量和相关信息;
(2)云平台监控:对数据中心进行监控,提供数据中心列表、地理位置、概述、运行状态等信息的展示;
(3)服务器监控:对服务器进行监控,提供服务器实时监控信息,并展示服务器所包含的虚拟机信息;
(4)虚拟机监控:对虚拟机进行监控,提供虚拟机实时监控信息,并展示虚拟机配置。
多云平台管理主要提供物理资源管理、监控策略管理、日志查询和用户管理等功能。
(1)物理资源管理:提供数据中心、服务器等物理区域和物理设备信息添加修改功能;
(2)监控策略管理:对服务器和虚拟机等计算资源需要监控的指标和阈值进行查看和设置;
(3)日志查看:记录计算资源监控软件产生的用户操作日志和告警日志,提供分时段查看功能;
(4)用户管理:提供监控系统用户的增加、删除、修改和查询功能。
2.2系统类图与接口设计
使用基于开放源码的Web应用框架Django开发异构云平台监控系统,构建支持监控信息处理和显示的MTV架构,即Model、Template、View,多云平台监控系统类图如图2所示。
其中,Model(Cloud、Server、VM、Log)定义资源信息和监控数据的存储格式,并且提供了数据库访问的API;View(IndexView、CloudView、ServerView、VmView、ManagerView)定义应该显示哪些数据,是业务逻辑处理模块;Template定义View的数据应该如何被显示。MonitorVM、GraphForServer、UpdateStatus三个类分别提供虚拟机状态监控、服务器状态绘图和状态信息更新功能。
按照系统类设计,异构云平台监控系统内部接口示意图如图3所示,接口标识见表1。
监控状态获取VMStatus监控虚拟机资源使用情况
3系统实现与部署
基于OpenStack搭建多个云计算平台[7],用来模拟四个数据中心,每个云平台由1个控制节点和网络节点及若干个计算节点组成,基于KVM的虚拟化技术实现计算资源的虚拟化,构建弹性计算环境。其中环境配置及功能如表2所示。
所有节点通过2台48口交换机相连,一台负责控制流信息的交互,另一台用于数据流信息的交互。环境中计算资源与外部网络是隔离的,网络节点单独有一个网卡与外部网络相连,通过GRE隧道协议,使得外部网络环境中的用户能够登录访问虚拟机。
通过安装OpenStack的Ceilometer模块和Ganglia软件(Python版),多云平台监控系统可对多个云平台节点进行监控,并能够动态适应集群规模调整,以适应混合云伸缩的需要,其安装示意图如图4所示。
多云平台监控服务器端:运行基于Django Web框架的多云平台监控软件,通过获取并处理Ceilometer和Ganglia的监控数据,实现对云平台中虚拟资源和物理资源的监控,为用户提供基于浏览器的可视化交互界面,系统后台数据存储在MySQL数据库中。
Ceilometer:云平台各节点安装compute agent收集节点的状态信息,实现虚拟机的监控,Ceilometer监控信息可存储于MangoDB、MySQL、PostgreSQL和HBase等数据库中,其中对MongoDB是支持最好的,本文系统使用MangoDB存储虚拟机监控信息。
Ganglia:云平台控制节点安装gmetad和gmond,网络节点和计算节点安装gmond,通过修改源代码,选取并配置所需监控指标,实现集群整体和各物理节点CPU、内存、硬盘和网络负载等运行状态监控,Ganglia监控数据默认存储在RRD数据库中。
多云平台监控系统可实现对各个云平台、服务器、虚拟机相关配置信息和运行状态的监控与管理。
4结论
本文提出了基于Ganglia与Ceilometer的多云平台监控系统设计与实现方法,实现了多个云平台服务器和虚拟机的一体化监控,为云平台资源运行情况提供统一的可视化监控管理能力,提升平台管理水平。在此基础上,监控系统的实现可为云平台资源的组织、调度和分配提供决策依据,提高资源使用的合理性。
参考文献
[1] 张建勋,古志民,郑超. 云计算研究进展综述[J]. 计算机应用研究, 2010,27(2):429-433.
[2] 刘智超. 基于OpenStack的虚拟机集群监控系统的设计与实现[D]. 北京:北京邮电大学,2014.
[3] 尤海鹏. 基于Ganglia的数据中心监控平台设计[D]. 济南:山东大学, 2014.
[4] 李志军,孔朋朋,雷振伍. 基于OpenStack的私有云平台设计[J]. 微型机与应用, 2016,35(9):24-26.
[5] 吴怡凤,归强,罗明宇,等. 集群计算机监控技术研究[J].计算机与现代化, 2013(11):218-222.
[6] MASSIE M, LI B, NICHOLES B, et al.Monitoring with Ganglia[M].O’Reilly Media,2012.
[7] 王霄飞. 基于OpenStack构建私有云计算平台[D]. 广州:华南理工大学, 2013.
- ?
你们知道云计算交互设计师需要哪些能力吗
丁聪展
展开
做云计算的交互设计与其他设计师有什么区别吗?如果非要说可能就是云计算类的交互设计师对于业务的要求上有些特别。
因为大部分的设计师都是艺术专业或者心理学等文科专业的,如果不花时间去学习计算机、网络、编程等相关的内容的话,对于云计算类业务在理解上有一定的难度的。
交互设计
首先都说是交互设计师了,交互设计师的专业能力是必不可少且要求较高的。
1. 需求分析能力
需求分析能力是一个交互设计师必备的技能,筛选掉不合理的需求,然后还要能够在需求中挖掘用户目标,清楚产品本身的定位、需求优先级、项目资源等,这些都是有助于设计师后面的设计和方案决策。
2. 用户角色和场景分析能力
因为交互设计师就是做的用户体验,所以能够正确理解用户角色的特点,以及这样一个用户在什么场景下使用我们的产品是非常重要的。
3. 信息结构设计、任务、页面流程设计、界面设计能力
这些应该算是交互设计师的基本能力了,将需求转化界面,能够熟练掌握一些信息设计、流程设计的方案,界面设计布局合理,表达清晰、跟随现代设计趋势。有时候我会把交互设计师比喻成魔术师,因为真的很神奇,能够将一大堆错综复杂的逻辑和流程梳理的很清晰,能够将一堆文字转化成界面。
4. 工具使用能力
这里包含手绘、软件使用。对于业务很复杂的需求,同时对于一些不定的需求,涂改也很方便。软件使用的话,就基本上是能够使用 Axure 等交互设计软件制作低保真、高保真原型了,能够使用流程设计或者脑图工具进行流程/信息结构设计,这些也算是交互设计师的基本功。
5. 方案权衡和推行能力
作为交互设计师,需要能够从用户目标、使用场景、研发成本、产品定位等等角度去分析,然后将自己的方案介绍给大家并能够说服大家按照自己设计的方案做执行。一个好的方案,只有真正实现了,才能称得上一个完美的方案,无法被执行或者说没有被执行的方案永远都不是彼时彼景的好方案。
- ?
Linux云计算系统架构师前景解读
Elana
展开
随着我国经济体量的不断增长和互联网技术的迅速发展,我们已快速进入了DT时代。
一、什么是“DT”?
它是以服务大众、激发生产力为主的技术。DT是数据处理技术(Data Technology)的英文缩写。马云曾经在一次演讲中说道:“人类正从IT时代走向DT时代”。
二、云计算人才的需求量有多大?
云计算产业人才需求量保持高速增长。我国云计算市场即将进入产业规模高速增长阶段,届时对满足产业发展的人才需求将呈现空前增长态势,尤其是对优秀产业人才的需求将不断扩大。
据工信部统计预测,未来三年将是我国云计算产业人才需求相对集中的时期,对于云计算产业人才的需求每年将呈现数十万的产业人才缺口。
三、造成云计算产业人才需求数量迅猛增长的原因主要是:
1.我国云计算产业市场规模快速增长,与云计算行业风口正盛不相称的是,云计算人才需求和供给出现了很大程度的失衡。从猎聘网发布的《互联网行业人才紧缺指数(TSI)报告》来看,IT互联网的TSI指数高达2.798% 其中前端开发(云计算行业)工程师的稀缺指数达到了12.719%,而国内大学教育在课程体系内容、教学实践到硬件,都难以满足实际需求。
2.相关云计算企业加大了对核心技术的投入,提高了客户端的服务及推广,越来越多的企业和个人接受并很好的运用大数据云计算来协助工作,导致近年来云计算客户量和市场需求迅猛增长。
3.随着云计算新市场、新业务、新应用的不断出现,国内外各大知名软件企业加速占据国内云计算产业高地,在全国加速建立分公司和研究中心。
四、公有云的市场前景
作为整个云计算产业的关键组成部分,公有云市场近年来发展迅猛。如今伴随着技术的进一步完善,公有云的安全性与可靠性得到了越来越多的企业信赖;同时其特有的灵活配置、低成本、无需一次性大额投资等优势,将吸引更多中小企业采用公有云,这都使得其市场空间加速扩大。预计到2021年,我国公有云市场服务规模将达到570.3亿元。
五、从事大数据云计算行业人员的薪酬待遇?
作为新兴行业,优秀的云计算专业人才在业内屈指可数,对云计算职位的基础岗位,一般大专以上应届生经过系统专业的培训即可胜任,月薪在1万元左右。而高端的云计算架构师等岗位,薪资水平一般在20万~50万。
六、怎样成为一名快速成长为一名Linux云计算系统架构师
相比较高校培养,纵横动力课程更贴近企业需求,紧跟市场更新速度,可实现零基础教学,注重夯实基础,厚积薄发;将理论学习与上机实训课融为一体,强调学员的实际动手操作能力;
分阶段学习,各阶段以项目贯穿学习过程,同时以新的项目课程作为各阶段学习的节点;项目难度由浅入深,项目规模由小到大,同时项目库不断扩展让学员轻松积累项目经验学员;毕业设计课程由合作企业提供企业真实项目需求,并为学员提供项目完成的资源支持。
优秀的教学,纵横动力的师资队伍成员,全部由行业高端云计算系统架构师组成,拥有丰富的工作经验,课程体系每年升级并根据市场动态定期微调,培养体系严谨、实用。引用教师评价考核机制,学员匿名为讲师打分,好不好你说了算!
纵横承诺
1.提供业内真实“大数据云主机”实训环境
2.零距离参与大数据企业项目实战
3.企业实战云计算总架构师亲临指导授课
4.客户需求逆向定制课程
5.学员可为讲师考核打分,保证授课质量
6.全国近万家大数据企业订单式人才培养,考核合格即上岗
7.终身免费复训,学会为止
七、如何确保优质就业?
纵横动力依托优越控股集团优质的行业资源,不断探索和创新校企合作培养IT专业人才模式,入驻成都以来,获得了成都市政府和经信委的认可,同时公司承接了工信部考试中心业务,毕业学员通过认证考试后可获得国家认可的相关专业认证证书。
纵横动力致力于提升学员价值,学员价值的提升是我们孜孜以求的目标。
纵横动力成立于2015年 隶属于优越国际控股集团,是国内第一家以研带教的高端IT培训机构,位于成都市高新区天府四街长虹科技大厦B座4楼,先后在北京、沈阳、西安、贵阳、兰州、福州、长沙等8座城市投资建设了数千米的实训基地。
- ?
支撑云计算的五大关键技术
雅容
展开
云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。
(1)编程模型
MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。
(2)海量数据分布存储技术
云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统(GoogleFile
System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。主服务器存储文件系统所以的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。
客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
(3)海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。
BT是建立在GFS,Scheduler,Lock
Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。
Google的很多项目使用BT来存储数据,包括网页查询,Google
earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功的提供了灵活高效的服务。
(4)虚拟化技术
通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
(5)云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。
云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
- ?
细数云计算的核心技术-系统虚拟化
纪念
展开
简介
说到系统虚拟化,我们应该从虚拟化开始说起。虚拟化是表示计算机资源的抽象方法,可以简化基础设施、系统和软件等,技术有很多种,如网络虚拟化,内存虚拟化,桌面虚拟化和应用虚拟化等等。
系统虚拟化是使用虚拟机管理程序在一台物理机上虚拟和运行一台或多台虚拟机,虚拟机和物理机一样运行软件,而且相互之间的隔离的,互补影响。
用途
软件测试:使用虚拟机配置软件测试环境,比五路方式快很多,而且在硬件成本上节省很多。
桌面应用:可以打破平台专属软件限制,提升桌面安全性和相关性。
服务器整合:可以将多台物理机工作整合到一台物理家上,简化了IT架构复杂度
自动化管理:使用分布式资源调度,动态迁移和高可用性等虚拟化管理技术能极大提升数据中心的自动化管理,并实现容灾。
快速应用部署:引入虚拟化应用发布格式,可以快读的发布虚拟机,方便多个数据中心之间进行迁移。
技术分类
硬件仿真:在物理机操作系统上创建一个模拟硬件的程序来仿真索要的硬件,并且在这个程序上跑虚拟机。
全虚拟化:在客户操作系统和硬件之间捕捉和处理那些虚拟胡敏感的指令,使客户操作系统无需修改就能运行。知名的产品有VirtualBox,VMware等
半虚拟化:和全虚拟化类似,利用虚拟机管理程序实现对底层硬件的共享访问。典型产品是Hyper-V。和全虚拟化相比,这种模式的架构更简洁,在整体速度上有很大优势。
硬件辅助虚拟化:主要是英特尔和AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到软件技术进行应建华来提高性能。
操作系统级虚拟化:对服务器啊哦做系统进行简单的隔离实现虚拟化,实现成本低,性能不错,但在资源隔离方面稍差一些。
虚拟机的特征
一致性:一款软件运行在虚拟机和物理机上的行为基本要一致。
可控性:虚拟化管理程序对系统资源有控制能力和管理权限。
高效性:大多数客户机指令应该由硬件直接执行不需要虚拟化管理程序参与,提高效率。
在硬件角度可以对CPU、内存和IO进行虚拟化,而且各有优缺点,根据实际的虚拟化需求选择相应的虚拟化技术来实现。
VMware
VMware在这个虚拟化行业占据近乎垄断的地位,下面让我们一起看一下VMware,vSphere主要用于服务器端虚拟化,通过在一台物理机上虚拟出多台虚拟机实现服务器整合和资源优化等目的。vCloud是云计算计划IaaS和PaaS产品。VMware View是左面虚拟化的产品,简化IT管理和降低IT成本。虚拟化是云计算的基础,VMware当然也没有放弃云计算这块“肥肉”
虚拟网络
当我们谈到电脑的时候,我们首先想到CPU、内容和IO,在互联网高度发达的时代,网卡是我们不能忽略的,因为没有网卡我们就不能够将电脑连到互联网。根据虚拟化的一个核心思想(一致性),我们要让客户操作系统无法察觉到他是在一个虚拟化的平台上工作,那么我们需要一个和物理网卡完全一致的虚拟网卡支持客户机连接到网络,一般通过虚拟交换机完成物理和虚拟之间的沟通。
动态迁移
动态迁移是让一台运行中的虚拟机从一台主机迁移到另一台主机,并且确保上面的应用在迁移过程中正常运行。
优点:排除危险、方便维护和资源优化。
挑战:虚拟磁盘无法迁移,网络设置无法迁移,迁移速度不够快,指令集的兼容性,范围限制等等。
针对虚拟化技术还有很多相关的技术、产品和厂商,我今天就先介绍到这里,以后再做深入的探讨。
释放价值,分享知识和经验,解读IT前沿和技术。帮助他人,提升自己。
- ?
求真务实:企业云计算平台的基础框架和技术标尺(1)
Sahar
展开
在企业云计算平台(以下简称云平台)的建设过程中,IaaS平台(基础设施即服务,Infrastructure as a Service)是IaaS和Paas建设的前提和基础,其规划设计和具体实施是至关重要的。
那么,当企业进行IaaS平台建设时,如何去有效评估既有的IT基础设施架构?基于实际评估结果,如何设定IaaS平台建设的各个渐进阶段?对这些渐进阶段又如何去进行客观评估?这些问题,企业用户和相关的云计算服务提供商必须面对并作出契合实际的准确回答。
IaaS平台规划:务实和细节
目前,云计算的主流公司都有各自的云平台参考模型,这些模型的底层原理和相关组件大同小异,对云平台的框架性结构进行了规划和定义。研究这些参考模型,对理解云平台的各组件固然是大有裨益的,但是,在企业的云平台建设中,需要解决的关键问题不仅仅是整体结构的规划和定义,更为重要和现实的问题是进行具体而微的细节设计。
作为云平台基础的IaaS平台建设,其路线图规划绝不是大而化之的务虚工作,而是建立在全面掌握实际情况基础上的核心设计工作,可以说“处处需务实、步步要落实”。这些工作包括:对现有IT基础设施的“云化”程度进行评估,在此基础上,对构建IaaS平台所需的具体模块进行技术细节规划,进而设定建设相应模块的先后次序,最终,完成具备完善云计算服务能力的IaaS平台。
Iaas平台成熟度模型和CCRA
在业界具有相当知名度的Iaas平台成熟度模型和CCRA(Cloud Computing Reference Architecture,云计算参考框架),是建立在云计算领域的实际服务经验之上的云平台建设标准。这些经验包括:为企业用户提供云计算平台咨询服务、主导云平台规划设计工作、主持云平台的具体技术实施工作。正因为来源于实践,IaaS平台成熟度模型和CCRA才具有极其重要的现实意义,才能被被广泛地应用于IaaS平台构建的实践活动中。
事实上,业界公认,IaaS平台成熟度模型是衡量企业IaaS建设水平的标尺,而CCRA则定义了用于具体实现IaaS平台的Adoption Pattern(即“采用模式”,可理解为用于具体实现的架构、模式和方法。实际上,CCRA还定义了PaaS平台和SaaS平台等其他5类Adoption Pattern,但本文只讨论IaaS平台相关内容),是对企业IaaS整体架构进行设计时的基础框架,是规划IaaS建设路线图时所依据的纲领,而且,从服务的角度看,也是IaaS平台建成后能为企业提供的一个整体服务目录。
下面两图是IaaS平台成熟度模型的5个等级与CCRA IaaS平台采用模式的6个渐进建设阶段之间的对应关系。为了方便读者阅读,提供了两个版本的图,第一个图适用于在手机等移动终端查看,第二个图适合于在PC端查看。
上图中,右边是CCRA IaaS采用模式的6个渐进式建设阶段,是IaaS的规划设计,是基础架构;左边是IaaS平台成熟度模型所有5个级别的成熟度,是对规划设计的成熟度评估,是技术标尺。
在纵向层次,从下往上的方向上,云计算能力在不断增长,右边的6个渐进式建设阶段是企业建设IaaS平台的必由历程,从低级阶段向高级阶段进化,而左边的IaaS成熟度模型则用于衡量企业IaaS建设的成熟度,也是从底层次逐渐往高层次演进;
在两者相互对应的层次关系上:
(1)在大体层次上,CCRA IaaS采用模式0~4级的建设阶段对应于IaaS成熟度模型1~4级的成熟度。也就是说,对CCRA IaaS采用模式0~4级的建设阶段,如果以IaaS成熟度模型去衡量,成熟度在1~4级别之间(具体的IaaS平台的单个建设阶段所对应的成熟度,如图中所示)。在纵向上,这两者都属于企业内部的云化数据中心的建设范畴。
(2)CCRA IaaS采用模式第5级的建设阶段对应于IaaS成熟度模型第5级成熟度。也就是说,对CCRA IaaS采用模式第5级的建设阶段,如果以IaaS成熟度模型去衡量,成熟度为第5级。在纵向上,这两者都已经超越了企业内部云化数据中心的范畴,站在了云服务提供商的高度。
实践证明,基于这两个重要的标尺和框架,逐步地、分阶段地推进IaaS平台的建设是扎实的、可行的,其渐进式建设过程是目标明确的,也是和缓的,这使得企业的IT基础设施在极低的风险下得以平稳提升至IaaS平台水平。
砌墙与Iaas平台建设的类比
其实,这两项标准和框架的配合,正如手工砌墙的过程。在砌墙之前,设计人员要先到实地勘测,根据以往的墙体设计经验(相当于CCRA的Adoption Pattern),结合实际勘测所得情况,进行墙体的各项规格参数设计,完成设计图纸后,工人再按图纸去砌墙。在砌墙的过程中,要用拉水平线和放置铅直线等方式保证质量,还要用建筑业的各项既定标准去衡量墙的质量(相当于用Iaas平台成熟度模型去衡量企业的IaaS建设水平),一旦出现问题就及时修正和整改,就这样,“一边砌墙,一边衡量”,直到墙体完工并通过验收。
如上所述,IaaS平台的建设对应于砌墙,IaaS平台成熟度模型相当于水平线、铅直线和各项建筑业标准,CCRA的IaaS Adoption Pattern类似于由以往所积累的墙体设计经验而形成的通用设计模式和方法,而具体的企业IaaS规划设计则类比于墙的各项具体规格参数和设计图纸。
具体来说,就是在构建云平台的时候,结合企业的实际情况,将Iaas平台成熟度模型用于衡量IaaS现状和具体建设成效,将CCRA的IaaS Adoption Pattern用于具体的IaaS平台框架设计和阶段性建设目标的设定。也就是说,在企业进行云平台建设时,先采用Iaas平台成熟度模型去衡量企业的IT基础设施现状,基于具体的衡量和评估结果,依据CCRA的IaaS Adoption Pattern所对应的IaaS平台基础框架,规划企业的IaaS平台建设路线图。此后,当IaaS建设推进到一定阶段时,再用Iaas平台成熟度模型去衡量建设的具体成效,根据客观的衡量和评估结果,进行总结和归纳,并依据CCRA对下一阶段的建设内容和目标进行修正。随后,继续推行IaaS建设,同样遵循上述过程,如此循环往复,直到IaaS平台实现了预先规划的建设目标,当然,用于作出这一判断的技术标尺也正是Iaas平台成熟度模型。
至此,本文对Iaas平台成熟度模型和CCRA的基础知识进行了简要的介绍。企业IaaS平台的规划设计人员必须在思想上充分地认识到,正确理解并熟练运用IaaS平台建设的技术标尺和基础框架,就可以成功地分析企业的IT基础设施建设现状,进而有效地为企业构建出务实的IaaS平台。
《企业云计算IaaS平台的技术标尺和基础框架》系列文章的下一篇,将重点对Iaas平台成熟度模型和CCRA的各层次内容分别进行较为详尽的分析和梳理。
- ?
阿里专家强琦:流式计算的系统设计和实现
以丹
展开
更多深度文章,请关注云计算频道:https://yq.aliyun/cloud
阿里云数据事业部强琦为大家带来题为“流式计算的系统设计与实现”的演讲,本文主要从增量计算和流式计算开始谈起,然后讲解了与批量计算的区别,重点对典型系统技术概要进行了分析,包括Storm、Kinesis、MillWheel,接着介绍了核心技术、消息机制以及StreamSQL等,一起来了解下吧。
增量计算和流式计算
流式计算
流计算对于时效性要求比较严格,实时计算就是对计算的时效性要求比较强。流计算是利用分布式的思想和方法,对海量“流”式数据进行实时处理的系统,它源自对海量数据“时效”价值上的挖掘诉求。
那么,通常说的实时系统或者实时计算,严格意义上来说分成三大类:
ad-hoc computing(数据的实时计算):计算不可枚举,计算在query时发生。
stream computing(实时数据的计算):计算可枚举,计算在数据发生变化时发生。
continuous computing(实时数据的实时计算):大数据集的在线复杂实时计算。
增量计算
增量计算是分批,也就是batch,每个batch会计算出一个function的delta值,数据的一个delta最终会变成对function的一个delta值,最终通过增量计算达到效果。
batch => delta: f(x + delta) = g( f(x), delta )
实际上是在数据的delta值上计算的一个结果,这个f(x)我们称之为oldValue,整个function的一个oldValue从公式就可以看到,整个增量计算与全量计算和批量计算有很大的不一样的地方,就在于它是有状态的计算,而批量计算系统和全量计算系统是无状态的计算,所以这就会导致整个系统的设计思路理念和整个的容错机制会有很大的不同,相对于oldValue本批次的数据,delta作为一个输入,整体上是一个有状态的计算,它会在系统的时效性、系统的复杂性和系统性能之间去做tradeoff,如果batch里的数据量是非常少的,那这个系统表现出来的时效性是最实时的,当然,整个系统的容错吞吐就会受到影响,就是说一批次的数据量是比较少的情况下,整个的系统吞吐会比较低,整个系统的容错复杂度也会比较高,那么在增量计算情况下,它有哪些优势呢?
1.相比以前的全量计算,中间的计算结果是实时产出的,也就是说它的时效性是很强的;
2.我们把一个计算平摊在每一个时间段,可以做到平摊计算。整个集群的规模是受峰值的影响,双十一的峰值流量是非常大的,如果按照最峰值的流量去计算,整个服务器资源是相对较高的,如果能够把传统的计算平摊在每一分钟每一秒,实际可以起到降低成本的作用;
3.整个数据处理链路如果放在一次Query中进行处理,也即是全部的数据在进行一个function的计算时,会大量膨胀中间结果,也就是说像Group By Count会到达200G,而增量计算可以做到中间结果不膨胀;
4.增量计算是一个有状态的计算,在分布式领域,有状态的failover策略会跟无状态的计算系统截然不同,但是它的优势是恢复快,任务可以切成很多碎片去运行,一旦任务因为任何几台服务器的抖动而宕机,整个的恢复是从前一次有效的batch开始计算,而不是像全量计算和离线计算一样,全部要重新进行计算,当在离线计算和在线计算混合部署的情况下,这显得尤为重要;
5.增量计算把一大块数据分批去计算,因此在批量计算里面经常遇到会一些数据倾斜问题在增量计算并不会遇到。在真实场景下,数据倾斜会对整个计算系统产生非常致命的影响,所以假设不同的节点之间数据倾斜比是1000,这个实际是很平常的,双十一的时候,光小米一家店铺就做到了很高的销售额,小米店铺和其他店铺的成交是上万倍甚至几十万倍的scale,传统的分布式计算的整个计算延时是受最慢的那个节点影响,如果把全部的数据分批次,实际上对于每一批来说,数据的倾斜度就会缓解,而且每个批次是可以并行去运行的,所以这可以大大地去降低整个计算任务在数据倾斜情况下的运行效率问题。
增量计算和流式计算应用场景
日志采集和在线分析:如基于访问日志、交易数据的BI算法分析。比较有名的像Google的统计、百度的统计,一些网站根据访问日志,会分析出各种的UV、 PV、 IPV等运营指标,有了流式计算,就可以对这些访问的时效性做到秒级、分钟级的监控,比如双十一当天,不同的店铺会通过店铺的实时访问情况来决定后面的运营策略;
大数据的预处理:数据清洗、字段补全等;
风险监测与告警:如交易业务的虚假交易实时监测与分析;
网站与移动应用分析统计:如双11运营、淘宝量子统计、CNZZ、友盟等各类统计业务;
网络安全监测:如CDN的恶意攻击分析与检测;
在线服务计量与计费管理系统 搜索引擎的关键词点击计费;
此外,流式计算和增量计算也应用在工业4.0和物联网上。
流式计算的数据特点
流(stream)是由业务产生的有向无界的数据流。
不可控性:你不知道数据的到达时机以及相关数据的顺序,对于数据质量和规模也是不可控的;
时效性要求:在容错方案、体系架构和结构输出方面都与传统的计算是截然不同的;
体系缺失:传统学术领域已经对批量计算和离线计算的体系研究的非常成熟,而在实时领域如数据仓库中间层等领域都是缺失的,包括数据源管理、数据质量管理等等。
另外,数据处理粒度最小,可以小到几条数据,对架构产生决定性影响;
处理算子对全局状态影响不同,有状态、无状态、顺序不同等;
输出要求,比如一致性和连贯性等。
整个流计算会对系统有非常多的不一样的要求,这就会导致整个系统有非常大的复杂性,跟离线非常的不同,我们的计算仍然要求时效性、要求快,质量上要求它的计算一定是精准的,对容错的要求,不论你的机器、集群、网络硬件有任何的宕机,计算应该是持续稳定,对整个计算的要求也是非常多样性的。关于多样性,不同的业务场景,对计算的结果要求也是不一样的,有些要求精确,一点数据都不能丢、精度损失,还有的业务场景要求可以多但是不能少,还有丢数据有一个sla在保证等,所以种种特点导致我们做流式计算和增量计算系统会面临与传统的离线计算和增量计算完全不同的要求。
与批量计算的区别
从架构角度,增量计算、流式计算和离线处理、批处理有什么本质的区别?
与批量计算的区别如上图所示,比如全量计算设计理念是面向吞吐,而流式计算是实时计算的一部分,面向延时;随之而来的整个全量DAG是一个串型的DAG,是一个StageByStage的DAG,而流式计算的DAG是一个并行DAG,也就是说Batch跟Batch之间是完全可以并行的,离线的批量系统它的串型化和Streaming场景下的并行化,它们在整个数据的时效性上
有非常大的区别,特别是在Latency的体现。
典型系统计算概要分析
下面将向大家介绍业界比较经典的几个流计算产品:
Twitter Storm
Storm是Twitter内部使用开源被广泛使用的一套流计算系统,那么它的一个核心概念是说,一个任务要创建一个Topology,它表示了一个完整的流计算作业,它的最开始的源头名字叫做Spout,做收集数据的任务,它的前面可以挂任何的数据源、任何一个队列系统甚至可以对接文件,那么Bolt是它的具体计算任务所在的载体,而Bolt里有诸多的Task,它是在Spout和Bolt里负责具体一个数据分片的实体,它也是Storm里调度的最小单位。Acker负责跟踪消息是否被处理的节点。Storm的整个容错是采用源头重发的消息机制
源头重发在网络流量激增的情况下,会造成系统的雪崩风险大大提升。上图是两个Storm的作业,它先从源头读出数据,然后进行filter过滤,最终进行join,join后进行一些逻辑处理。
Nimbus–Zookeeper–Supervisor
Storm采用了Nimbus Supervisor之间的方式进行任务调度和跟踪,它们之间是利用Zookeeper来进行通讯,Nimbus相当于一个全局的任务Master,负责接收Topology,然后进行二重的资源调度,并且将调度的信息记录到Zookeeper中,定期检查Zookeeper中的各种Supervisor的心跳信息,根据心跳状态决定任务是否进行重新调度,而Supervsor充当着每台物理机的一个watchdog,它在轮询Zookeeper中的调度任务信息,然后接收到发现有启动任务的信息,就会拉启进程,启动Task,同时定期要把心跳信息写入Zookeeper,以便Supervisor来做出重新调度或者系统的重发操作。
消息跟踪机制是Storm的核心,保证消息至少被处理一次,它追踪源头信息的所有子孙信息。
基本思路如下:
Acker节点是进行消息跟踪的节点,以源头消息的ID为hash key,来确定跟踪的Acker,源头信息对应的所有的子孙消息都有该Acker负责跟踪,而消息树上每产生一个新的子孙消息,则通知对应的Acker,子孙消息被处理,然后再去通知对应的Acker,当Acker里所有的子孙消息都被处理的时候,那么整个数据处理就完成了。
子孙的产生是由父节点,而处理是被子节点。所以Storm用了一个非常巧妙的异或方法,当父节点产生这个消息时,产生一个随机数,把这个随机数异或到Acker里,Acker把这个随机数传递到下一步的节点,当这个节点正确被处理以后,再把这节点发送给Acker去做异或,所以Storm利用了这个Acker机制来压缩整个数据的跟踪机制,最终保证任意节点出现宕机而值不会变成0。
Transactional Topology
光有以上的机制,还远远不够。被系统重发的消息没有任何附加信息,用户无法判断消息是否是被重发的等一些问题还有待解决,为解决消息被重复处理的问题,Storm 0.7.0以后版本推出了Transactional Topology进行改进,
原理如下:
在Spout上将源头消息串行划分成 Batch,为每个Batch赋以递增的id,记录在Zookeeper中,利用Acker跟踪Batch是否被完全处理完成,超时或者节点异常,Spout重发Batch内的所有消息,不影响中间状态的操作可以并发的执行,例如 Batch内的聚合操作,用户代码利用唯一的Batch ID进行去重。
整个Topology同一时刻只能有一个Batch正在提交,以保证在每个节点上Batch串行递增,简化用户去重的逻辑。
Storm优缺点
优点:消息在框架内不落地,处理非常高效,保证了消息至少被处理,Transactional Topology为消息去重提供了可能,调度模式简单,扩展能力强(关闭重发模式下),社区资源丰富,拥有各种常见消息源的Spout实现。
当然Storm也有自己的劣势:Transactional Topology对Batch串行执行方式,性能下降严重;Batch太大太小都有问题,大小需要用户根据具体业务分情况设置等。
Amazon Kinesis
Kinesis系统是一种完全托管的实时处理大规模数据流的开放服务。
所有节点运行于EC2中:相对Storm来说,它采用了消息节点内部重放的系统,而不是像Storm那样子源头重发,它的所有的节点都已经在EC2中,无需单独的调度策略、复用安全、资源隔离机制,且扩展性好、弹性可伸缩。
只支持单级Task,可以利用多个Stream组成复杂的DAG-Task,用户代码需要实现DAG-Task内部的消息去重逻辑。
数据收集与计算独立:数据收集模块(Shard)对消息进行持久化,最长保留24小时;可以Get方式从其它系统中读取Shard数据,计算模块(Kinesis App)处理被推送的数据,Instance个数与Shard个数相同;用户代码可以自主控制Checkpoint节奏。
用户可以自主调用相应的SplitShard\MergeShard接口,Stream上所有App的并发度随之调整。具体实现方法如下:
每个Shard串行将接收到的消息写入S3文件中,SplitShard后,原有Shard不再接收新数据,原有Shard对应的所有App的Instance处理完消息后关闭,启动新的Shards(两个)和对应新的Instances。
使计算可以更加的弹性,服务的可用性也更高。
Google MillWheel
MillWheel系统是利用内部支持Snapshot功能的Bigtable来进行持续化中间结果,将每个节点的计算输出消息进行持久化,实现消息的“不丢不重”。
区别于Storm的是,它没有复杂的跟踪树。因为每一级都把它的输出消息进行持久化,用户可以通过SetTimer\ProcessTimer接口解决用户代码在消息到来时才能取得控制流的弊端,然后在源头节点(Injector)上将数据打上系统时间戳,每个内部节点(Computation)计算出所有输入Pipe上的最小时间戳,向所有输出Pipe上广播当前完成的最小时间戳,用户可以利用Low Watermark这一机制解决消息乱序或一致性问题。
核心技术
那么,流式计算和增量计算中最核心的一些技术和难点有哪些呢?
从这张图可以看到,整个流计算是由一个复杂的Topology所构成。那么,从输入到输出,其中比较重要的两个角色一是Jobmaster,一是Coordinator。Jobmaster是每个Job负责运行时的一个master;而Coordinator是刚才所说的消息跟踪的一个角色,所以Coordinator最好是完全可以做到无状态的线性扩展。
Batch数据从源头进入后,进入Source节点,Source节点会从消息源读取数据,蓝色的部分代表着Worker节点,蓝色节点再向橙色节点进行数据传输的时候,遵循着Shuffle的方法,可以是哈希的方法,可以是广播的方法,也可以是任何用户自定义的方法,output节点会将输出结果向在线系统输出,或者向下一级MQ节点输出,输出的结果也是按照Batch去对齐。
系统...
- ?
网络安全等级保护云计算安全防护技术体系设计
宣沂
展开
随着云计算应用越来越广泛,政务、通信、金融、电子商务等越来越多的领域开始使用云计算,云计算服务正稳步成为IT基础服务和信息技术关键基础设施。云计算从2008年至今,经历了技术储备期、服务发展期,基于其独特的优势,例如减少开销和能耗、提高业务的灵活性、按需服务、提升业务系统可用性和高可扩展性等,可为用户提供更加便捷且成本低廉的服务,云计算服务正向模式成熟期迈进,期望实现方便、快捷、按需获取服务的远景目标。
然而,在云计算发展过程中安全可信问题成为阻碍其发展的首要因素。尤其云计算服务具有按需自助服务、资源池化、泛在接入、快速弹性伸缩、服务可计算等五大特征,并且具有公有云、社区云、混合云和私有云等四种部署模式,IaaS、PaaS和SaaS三种主流的服务模式,云计算服务提供者和云服务客户两大责任主体,因此,如何确定安全责任,如何定级、如何监管、如何进行安全防护技术体系设计都具有前所未有的难度。
此次修订对云计算平台、系统的扩展设计要求进行了规范,针对不同安全等级的云计算平台或采用云计算技术的信息系统明确安全设计目标、确定安全设计策略,并提出包括第一级至第四级云计算平台系统安全保护环境的安全计算环境、安全区域边界、安全通信网络和安全管理中心等方面的设计技术要求。适用于指导网络安全等级保护云计算平台系统安全技术方案设计和实施,也可以作为网络安全职能部门对云计算平台系统进行监督、检查和指导的依据。
确定定级对象
云计算功能框架
云计算功能架构分为五个逻辑层,资源层、云服务层、云访问层、云用户层和云管理层,具体如图1所示。
云用户层:云用户指访问云计算平台的各类用户,包括云服务提供者和云服务使用者。用户层主要是指云服务与租户或云用户的交互界面,例如云服务使用者对云资源的管理、对云服务的监控,云服务使用者向云服务提供者追加或减少云资源的订购等。
云访问层:访问层主要面向云服务提供者、云服务使用者提供访问和管理,包括网络通信访问、面向云服务提供者和使用者的服务访问以及面向最终用户的应用访问等,各层之间的粗实线表示访问的接口。基于访问层,云服务使用者可以实现对云服务的自动或手动访问。访问层访问云服务的方式是多样的,可以基于浏览器的方式,也可以基于远程通信的方式(例如WebService)。实现安全控制是访问层的重要功能,主要包括授权、访问特定服务的请求安全加固和完整性校验、通信协议管控等。
云服务层:云服务层主要是面向用户提供虚拟机等基础服务、平台服务和应用服务,也可以分为网络服务、弹性计算服务、云存储服务以及面向用户的应用服务,主要的服务包括但不局限于负载均衡、虚拟主机、对象存储服务、分布式数据库与大数据计算服务等。
资源层:资源层包括云资源层和硬件设施层。云资源层包括网络资源、计算资源和存储资源等的资源池,并实现资源管理、任务调度和服务管理等方面功能。硬件设施层主要包括计算存储设备、网络设备和安全设备等硬件设备及硬件设备的运行环境等。
云管理层(跨层功能):云管理层主要是跨层访问功能的集合,包括对云服务的业务管理、云平台及云服务的运维运营管理、以及对云平台系统和服务的安全管理。业务管理主要包括产品目录、账户管理、计费等;运维管理主要包括服务策略管理、服务水平协议等;安全管理主要包括认证管理、授权管理、审计管理等。
定级对象确定及管理职责划分
云计算保护环境是云服务商的云计算平台,及云服务客户在云计算平台之上部署的软件及相关组件的集合。其中,云计算平台的等级保护定级和按照等级的保护工作由云服务商负责,对于大型云计算平台可以将云计算基础设施平台及辅助支撑系统划分为不同的等级对象,各自独立定级。如果云服务客户在云计算平台上部署的软件及相关组件可以构成等级保护定级对象,则一般称为云服务客户信息系统,针对其的具体定级和按等级开展的保护工作由云服务客户负责。
云服务商的云计算平台可以承载多个不同等级的云服务客户信息系统,云计算平台的安全保护等级应不低于其承载云服务客户信息系统的最高安全保护等级。对于提供公共服务的云计算平台安全保护等级应不低于第二级。
定级的重点在于定级对象管理职责的划分,根据不同云服务模式职责划分边界有所不同,具体如下:
1. 对于IaaS基础设施服务模式,云服务商的职责范围包括虚拟机监视器和硬件,云租户的职责范围包括操作系统、数据库、中间件、应用;
2. 对于PaaS平台即服务模式,云服务商的职责范围包括虚拟机监视器、硬件,操作系统、数据库、中间件,云租户的职责范围主要为应用;
3. 对于SaaS软件即服务模式,云服务商的职责范围包括虚拟机监视器、硬件,操作系统、数据库、中间件、应用。云租户的职责范围主要有用户访问和用户账号安全。
根据数据安全管理职责不变的原则,业务数据永远由云租户负责,但是对于数据的传输、存储等完整性和保密性措施是否能够实现则取决于云计算平台提供的安全功能或服务。
确定安全保护对象
相对传统信息系统,云计算平台或系统的安全保护对象所有增加,具体如表1所示。
云计算安全防护体系框架建立
云安全防护技术体系是云计算平台或系统安全建设的重要指导和依据,我们将等级保护思想融入到云安全防护体系的构建,清晰描述了云安全防护体系建立的原则及方法,提出了基于等级保护的云安全防护技术体系框架。
云安全防护技术体系的设计方法
首先,明确保护对象;
其次,采用蛛网图法分析保护对象所面临的安全威胁及自身所存在的安全漏洞;
最后,结合威胁分析和系统的脆弱性提出安全防护措施。
利用蛛网图法提出了针对保护对象的安全威胁、脆弱性及安全保护措施分析方法,具体如下图所示:
1. 威胁及漏洞分析:可针对云计算信息系统的保护对象从威胁场景、威胁来源和威胁对象三个方面来分析云计算信息系统所面临的安全威胁、自身的弱点以及潜在影响和发生的可能性等因素,进而分析并确定具体的安全防护需求。利用此分析方法,识别出近百种安全威胁场景,包括虚拟机逃逸、虚拟机间相关攻击、恶意虚拟机进行网络攻击、API持续攻击等。并且根据不同等级信息系统应该实现的安全防护能力,明确不同等级云计算系统应对抗的安全威胁[2]。
2. 确定保护对象,详见第二章第三节。
3. 防护措施:对于云计算安全防护措施的选定,可采用德尔菲法来进行,广泛邀请云计算安全领域“政、产、学、研”的专家参与,充分利用专家的经验和学识,确保建立的安全防护措施能够对抗相应等级云计算系统面临的安全威胁。
云安全防护技术体系框架
基于上述方法明确云计算安全保护措施是单点的、离散的,无法体现出云计算平台或云计算信息系统整体防护、纵深防护的思想,更重要的是针对云计算服务的两大责任主体的责任边界需要明确,只有根据职责明确一个组织建设云计算平台或云计算信息系统的目标、对象、范围,才能更好的进行安全设计、规划和建设实施。云计算安全防护技术体系框架设计方法:
根据云计算安全防护体系框架设计方法,我们需要以云计算平台或云计算信息系统的界定及特征为基础,充分考虑云计算的功能框架和服务模式;云计算功能框架包括用户层、访问层、资源层、服务层和管理层(跨层功能),服务模式主要包括IaaS 、 PaaS 和SaaS,不同服务模式云服务商或云计算服务提供者与云租户或云计算服务使用者的责任边界不同;
·以等级保护“一个中心,三重防护”的纵深防护思想为指导,从通信网络到区域边界再到计算环境进行重重防护,通过安全管理中心进行集中监控、调度和管理,经过20年的信息系统安全建设实践,证明这是非常有效的安全设计指导方法。
云计算安全防护技术体系框架具体如图下图所示:
用户通过安全的通信网络以网络直接访问、API接口访问和Web服务访问等方式安全地访问云服务商提供的安全计算环境,其中用户终端自身的安全保障不在本部分范畴内。
安全计算环境包括资源层安全和服务层安全。
其中,资源层分为物理资源和虚拟资源,需要明确物理资源安全设计技术要求和虚拟资源安全设计要求,其中物理与环境安全不在本部分范畴内。
服务层是对云服务商所提供服务的实现,包含实现服务所需的软件组件,根据服务模式不同,云服务商和云服务客户承担的安全责任不同。
服务层安全设计需要明确云服务商控制的资源范围内的安全设计技术要求,并且云服务商可以通过提供安全接口和安全服务为云服务客户提供安全技术和安全防护能力。
云计算环境的系统管理、安全管理和安全审计由安全管理中心统一管控。结合本框架对不同等级的云计算环境进行安全技术设计,同时通过服务层安全支持对不同等级云服务客户端(业务系统)的安全设计。
分等级安全设计实现
修订中的云计算要求的级差与原标准保持一致。但是考虑到公共云平台会部署多个租户、多个业务系统,一旦云计算平台发生安全事件,影响范围较大。因此,公共云的云计算平台安全保护等级最低应该为二级。
结合云计算安全防护技术体系框架,针对不同等级云计算平台或云计算信息系统的明确具体的安全设计目标、策略和技术要求,具体如下:
第1步:基于上述分析和云等保系列标准的强度要求,确定各等级云计算平台安全设计的设计目标、设计策略;
第2步:从安全计算环境、安全区域边界、安全通信网络和安全管理中心等维度明确安全技术要求,明确具体安全机制;
第3步:结合云计算功能框架各个层次以及具体保护对象,针对各个功能层次及保护对象的安全技术机制实现的要求。
云计算的总体框架如下图所示:
在安全计算环境方面,主要增加了虚拟化安全、接口安全、镜像和快照安全等云计算安全相关的控制点,同时也将身份鉴别、访问控制等安全控制措施与云计算不同层次对象安全特性相结合提出相应的安全措施,上图给出了针对第三级接口安全、镜像和快照安全的具体设计要求。
区域边界设计除了互联网边界、第三方边界、不同物理区域的边界安全防护外,增加了虚拟网络区域边界、虚拟机与宿主机之间的区域边界等防护安全要求。安全通信网络在物理通信网络基础上增加了虚拟网络通信的安全保护要求,安全管理中心高等级增加了对云计算安全态势的预测、预判能力要求以及运维地域的限定要求。
小结
随着云计算技术的应用和推广,政务、金融、通信、公共服务等越来越多的行业和领域开始进行云计算平台建设,云计算安全与云计算平台系统建设同步规划、同步设计是迫切需要解决的问题,亟需相关的标准出台给予指导。
本文提出云计算安全防护体系设计的方法论:
首先,研究云计算平台或采用云计算技术的信息系统的界定及突出特征,确定定级对象及安全保护对象;
其次,分析云计算平台或云计算系统面临的安全威胁;
第三,按照“一个中心,三重防护”的纵深防御思想进行云计算平台安全防护体系设计;
第四,给出安全体系结构实现的技术方法,即安全设计要求指标体系;
最后,结合等级保护不同等级的级差特点,明确不同等级的技术要求,并给出结合云计算功能框架、保护对象的安全保护机制实现技术要求。
修订工作分别针对公共云、行业云和某单位政务云安全建设开展了试点验证,在安全解决方案设计和安全建设过程中具有重要的指导作用,大大提升了试点平台系统的安全防护能力。目前,云计算建设、应用越来越广泛,大型云计算平台已经成为国家关键基础设施,保障云计算的安全成为关注焦点,标准的颁布实施将成为指导云计算安全、稳定和健康发展的基石。
- ?
架构设计之云计算架构介绍
猫眼
展开
一、云计算介绍
任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是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”。
云计算系统设计
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并