数据专栏

智能大数据搬运工,你想要的我们都有

数据资讯

数据学院

数据百科

本文作者:HelloDeveloper “电子发票、食品溯源、数字身份、慈善信息上链……”这些名词在过去的一年中越来越多出现在大众眼前。区块链不再是某一数字货币的代名词,而是越来越多的作为一种技术呈现商业价值,其特有的去中心化、可追溯、不可篡改等特性逐渐被挖掘,与云计算、AI等一道成为新一代具有变革性的技术动力,牵引着千行百业创新发展。 技术在政策的驱动下日益高涨。 去年10月,在中央明确“把区块链作为核心技术自主创新的突破口,加快推动区块链技术和产业创新发展”后,以京沪穗为首的各省市地区陆续推出相关政策,11月区块链政策出台环比增长140%。对于科技企业来说,踏上时代与政策的红利是快速发展的好时机,但要想在竞争日益激烈的上升阶段占得先机,选择特定的行业深耕细作尤为重要。 由于行业的需求千差万别,我们从政策、市场需求、行业特性、技术成熟度等方面着重谈两个创新的行业,希望能够抛砖引玉,找到区块链与行业的结合点,共同挖掘区块链落地的商业价值。 政务:政策下迎来红利期 在讨论区块链在政务领域的发展可行性前,不妨先来看一组数据。 据公开资料统计,在2019年落地的846个项目中,涵盖12大应用领域共计100+应用场景。其中政务类项目214项,占比约25%,与金融行业一起占据绝对的领先地位。 从更细致的数据分析,2019年上半年,区块链政务应用的数量占区块链应用总量的20.3%,低于全年平均水平。从中可以看出,区块链在政务领域的应用不仅数量大,且在去年一直成上升趋势,这将极大提振投资者的信心,也能进一步推动技术的研发创新。 这样的上升趋势能否在2020年继续呢?这是肯定的,区块链在政务领域最大的刺激与决定性因素在于政策,而在去年10月份中央申明态度后,各地方政府对于区块链项目的鼓励政策可谓此起彼伏。 尤其在政务领域,我们看到很多由政府牵头的项目已经取得了阶段性的成果: 北京海淀区通过区块链技术,实现“不动产登记+用电过户”同步办理;南京建设证照链实现证照可信互认; 重庆应用区块链技术试点企业开办、工程项目审批两项业务;上海提出探索用区块链技术加速“市民云”建设; 广州市“智慧破产审理系统”系统上线,其包含全国首个破产审判区块链协同平台。 政策牵引下,科技巨头纷纷加码区块链政务。 以百度智能云为例,其通过三大平台(联盟链BaaS、可信计算平台、可信数字身份平台)及两个垂直行业专项解决方案,全面赋能各政务场景。 其中,联盟链BaaS平台与可信计算平台相互集合,降低了多个管理局之间数据协作的成本。让从前需要到各个机构获取证明的繁琐流程,现在可以一站式完成。而数字身份则不仅实现了政务的一网通办,也提升了各个行业涉及身份认证时的效率。由此可见,我国头部科技企业已经具备技术与经验上的实力,这为产业进一步的创新发展打下了良好的基础。 总的来说,目前区块链在政务领域的应用多落地于一线城市,而为政府项目提供技术支持的也多为头部科技公司,但市场远不止于此。 我国人口基数大,新增人口多,且未来二三线城市以至乡镇都将在政策带动下逐步数字化,市场需求长期存在。此外,考虑到政务类应用如数字身份、电子存证等涉及公民信息等敏感因素,对安全性等技术要求较高,市场进入门槛高。因此,具备优秀人才与技术资源的企业,在一段时间内依旧具有强大竞争力,无须考虑同质化的问题。 金融:全球在创新 需求在推动 无论是最早抓住人眼球的数字货币,还是现如今被大力开发的跨境支付、资金追溯、电子票据等应用,区块链与金融领域都有着密不可分的关系。有人会好奇,作为最早也是落地应用最多的领域之一,金融行业在2020年还会是区块链技术最肥沃的土壤吗? 我国中央政府在去年十月对区块链技术的肯定,无疑为2020年市场的蓬勃发展释放了利好信号,尤其是“金融创新”口号的日益响亮,也为区跨链在金融领域的发展提供了更多可能。 但与政务领域不同,金融业的发展与国际各个区域市场的关系紧密相连,那不妨就以此时间点为界,看看世界上主要国家对区块链在金融领域的态度。 纵观全球,绝大多数国家尤其是发达国家对区块链技术持鼓励态度,特拨科研经费、成立专项实验室等都是普通配置。美国、英国、俄罗斯国家和地区等都在探索区块链在金融体系建设方面的应用。以英国为例,去年11月,英国议会成立跨党派区块链小组全球专家委员会,该全球专家委员会共14人,将同委员会中28位英国议员共同推进区块链的发展。 此外,整理去年10月以来的公开信息发现,美国、英国、法国、新加坡等对加密行业的监管愈加严格,在税收、支付等领域严密管控,并呼吁制定全球性的监管框架。更有力的监管或许意味着,披着金融创新外套做投机生意的可能性越来越小,市场越来越规范,区块链的技术价值也将更多得到重视。 政策支持只是推动,市场有需求才是区块链在金融领域的火热的直接原因,而金融行业与区块链的特性则是两者结合基础。 金融行业涉及银行、保险、证券等多领域,所有这些都离不开交易,自然涉及交易的双方、时间、资产等数不清的交易信息,这就是金融业永远需要解决的问题,即交易信息记录的安全性和完备性。而区块链作为一种革命性的底层技术,也是一个分布式的总账本,最初的功能就是记账,解决的就是这样的问题。而因其具有的去中心化、不可篡改、可追溯等特点,还能解决账本的信用问题、公证问题、审计问题、确权问题等等,这意味着其不仅能改革金融基础建设,更是从监管、交易、征信、虚拟货币等场景起到增效作用。区块链技术的优越性十分明显,而金融行业本身数字化程度高的特点更进一步降低了使用门槛。 与政务领域一样,头部科技公司的推动力量不容小觑。它们紧随政策与资本,不断加大区块链技术在金融领域的创新实践,为区块链由技术真正转化为可落地的解决方案,繁荣行业发展,最终服务大众生活打下夯实基础。 以百度智能云为例,其在去年11月紧随国家政策,推出“链上可信金融”解决方案,构建了新型金融业务的核心技术基础设施与创新业务产品矩阵,包括百度金融联盟链平台、可信计算平台、分布式身份平台、数字积分平台,能够加速金融行业的业务协作和数据流通,更好地支持金融行业高效发展。 相信在头部科技企业的带动下,技术向纵深推进,必将带动金融行业整体效率的提升与进步,毫无疑问也会带动区块链在整个金融行业的发展。 综上所述,政务与金融行业受政策牵引、资本青睐、自身行业特性与技术创新等因素的影响,在2020年有望迎来高速发展阶段。从以上观察中可以看出,更多行业或者行业中的某一细分领域也正在积极和区块链相结合,只要选择了适合自身的发展路径,任何行业的企业都能享受到技术带来的红利。 原文链接地址: https://developer.baidu.com/topic/show/290686
来源:OSCHINA
发布时间:2020-03-10 18:07:00
Serverless 计算将会成为云时代默认的计算范式,并取代 Serverful (传统云)计算模式,因此也就意味着服务器 -- 客户端模式的终结。 ------《简化云端编程:伯克利视角下的 Serverless计算》 前言 Serverless计算让开发者能够以更高的灵活性和更低的成本构建现代应用程序。开发者无需配置和管理服务器等基础设施,可将全部精力投入核心业务。 Serverless相比传统的serverful开发方式有着本质的区别: 计算和存储的解耦;它们独立扩展,独立定价; 代码的执行不再需要手动分配资源; 按使用量计费。 Serverless快速构建构建APP问卷调查 函数服务作为Serverless架构中的核心计算组件,可应用于各类Serverless架构,主要包括两大类:Web、移动、IoT、AI等无服务器后端和数据处理系统后端。 其中,Web、移动serverless后端的典型场景应用最为广泛,本文介绍如何使用函数服务+API网关分分钟在京东云APP中构建用户问卷调查。 构建APP问卷调查可由两个简单函数完成:获取问卷内容和提交答案。 Step1:创建存储 创建一个用于存储问卷题库及用户答案的数据库或对象存储bucket,本示例创建一个云缓存Redis实例(主从4GB)。 Step2:创建函数 在函数服务中创建并测试两个函数(运行时:Python2.7) 创建函数1 创建函数jcloud-app-survey-topic:请求用户PIN,问卷版本version,从数据库获取问卷内容,将入口文件index.py与依赖库redis SDK打包上传至函数服务。index.py代码如下: #coding=utf-8 import json import redis'''下载问卷''' def handler(event,context): if not bool(event): result = { 'statusCode': 200, 'headers': {}, 'body': "", } return result body = event['detail']['body'] body = json.loads(body) pin = body.get('pin', "") version = body.get('version', "") print(pin) print(version) r = redis.Redis(host='redis-v214pzrgiicq-proxy-nlb.jvessel-open-hb.jdcloud.com', port=6379, db=0) topic = r.hget('topic_' + version, version) data = {'pin': pin, 'version': version, 'topic': topic} data = json.dumps(data) result = { 'statusCode': 200, 'headers': {}, 'body': data, } return result 函数测试 创建函数2 创建函数2jcloud-app-survey-submit :请求用户PIN,问卷版本version,用户答案submit,上传至数据库,将入口文件index.py与依赖库redis SDK打包上传至函数服务。index.py代码如下。 #coding=utf-8 import json import redis''' 上传问卷结果''' def handler(event,context): if not bool(event): result = { 'statusCode': 200, 'headers': {}, 'body': "", } return result body = event['detail']['body'] body = json.loads(body) pin = body.get('pin', "") version = body.get('version', "") submit = body.get('submit', "") print(pin) print(version) print(submit) r = redis.Redis(host='*********.jdcloud.com', port=6379, db=0) old = r.hget('submit_' + version, pin) if old != None : data = {'code': 1, 'desc': 'user have submitted'} data = json.dumps(data) result = { 'statusCode': 200, 'headers': {}, 'body': data, } return result r.hset('submit_' + version, pin, submit) data = {'code': 0, 'desc': 'success'} data = json.dumps(data) result = { 'statusCode': 200, 'headers': {}, 'body': data, } return result 函数测试 Step 3:创建发布API 在API网关创建两个API,作为触发器绑定至对应函数,通过function响应API请求,并将API发布至测试环境。jcloud-app-survey-topic函数绑定API触发器如下: jcloud-app-survey-submit函数绑定API触发器如下: Step 4:验证上线 通过本地API接口测试工具验证API接口无误,即可与前端H5页面开发联调,测试完成后,可通过函数版本、别名功能管理线上函数迭代发布。 问卷提交页 以上,快速完成APP后端上线,只等活动上线 最终效果 最后,APP调查问卷效果如下: 点击“ 京东云 ”了解更多关于队列服务
来源:OSCHINA
发布时间:2019-10-30 14:34:00
自从 云终端 出来以后对于它的吐槽就一直没有中断过的,有说它配置低性能差的,也有的说它兼容性差的,还有的说它显示效果差的,总之就是有各种各样吐槽的。虽然说对云终端的吐槽有很多也一直没有中断过,但是使用它的人数并没有因此而减少的,反而是一直在不断增加的。是什么原因让你明知道云终端有不少的缺点,但是却仍然使用它的。 首先性能并不差,我认为首先很重要的一个原因就是云终端虽然有一些小问题,但是它并不影响我们的正常办公使用,虽然说它本身的配置低,但是它更多的情况下是通过协议连接服务器使用的,它的性能其实并不低的,完全可以媲美i3/i5电脑性能的,对于office办公、教学应用和播放高清视频来说都是流畅无卡顿的。可以说出来一些大型的3D应用和特殊的外设无法兼容外,云终端的体验并不比传统PC差的。而大型的3D应用和特殊外设对于大多数用户来说使用的并不多的。 其次使用成本低,云终端配置是不高兼容性也没有传统PC那么好,但是它的使用成本低,即使是算上服务器的价格每个用户采购成本也可以比传统PC低10%-30%左右的,加上云终端本身的功耗低省电以及免维护的特点,和使用传统PC相比每年可以节省95%左右用电成本和维护成本,低的使用成本使得云终端虽然有一些缺点,但是还是有很多用户愿意使用它的。 第三数据安全高,随着社会的发展,人们对数据安全的意识越来越高的,传统的PC虽然性能强大,但是对于本地数据的管控却做的不是很好的,云终端性能是不强,但是它对于数据的管控却比传统PC要好,本地不存储重要数据,同时可以禁止云终端接入U盘等带存储拷贝功能的外设设备,通过后台服务器可以管控每一个用户使用桌面的情况,任何用户访问重要数据都需要授权,确保数据不被拷贝和任何形式传输泄露出去的。 云终端虽然有一些缺点和使用上的问题,但是同时它也具备传统PC所没有的优点,同时最主要的它的缺点对于很多人来说是可以忽略不计,并不影响正常的办公使用的,所以才会有这么多人坚持使用它的。 来源禹龙云
来源:OSCHINA
发布时间:2019-10-30 14:22:00
ACP 说明:以下题目收集自网络和参与过考试的同学的分享,原内容有 765 道题,本人有一定阿里云实操经验,考试准备了一周时间,学习阿里云官方文档和网上找测试题,最终于 19-11 通过考试。题目整理得格式不好,有些答案的 ABCD 都缺失了,但答案是对的,只是需要自己对应下选项。ACP 考试本身更接近理论,但也是需要有一定实操经验的,可以使用阿里云按量计费的实例熟悉一下。希望这个能对大家有所帮助。 全部题库 ★1/765、阿里云的云服务器ECS产品根据底层使用的硬件不同划分为不同的实例系列。对于实例系列I采用 lIntel Xeon CPU,实例系列采用 Haswell CPU。以下关于云服务器ECS产品的实例系列说法正确的是 。(正确 答案的数量:3个) A、实例系列Ⅱ的用户可以获得更大的实例规格 B、实例系列I相对于实例系列I增加了一些新的指令集,使整数和浮点运算的性能翻倍 C、ECS实例创建以后可以进行实例系列I与实例系列∏的变更 D、实例系列Ⅱ全部为O优化实例,配合SSD云盘使用可以获得更高的O性能 提示:排除法,实例系列I和实例系列Ⅱ直接是不同的处理器系列,创建之后不支持变更 答案:ABD 2★3/765、使用集群是解决高并发,海量数据的通常手段,对于这种类型的网站而言,不管多么强大的服务器都满 足不了持续增长的业务需求。这种情况下,需要增加服务器来分担原有系统的压力我们可以开通阿里云上哪个服 务来实现该请求的分发? A、ECS B、SLB C、RDS D、DRDS 提示:划重点:来实现该请求的分发,所以需要负载均衡SLB。 答案B 1★4/765、云计算是一种商业计算模型,它将计算任务分布在大量计算机组成的资源池上,使各种应用系统能够根 据需要获取计算力、存储空间和信息服务。以下哪些是按照云计算服务的部署方式分类的?(正确答案的数量:3 个) 、公共云 混合云 专有云 D、能源云 提示:能源云并不属于的云计算服务的部署方式。云计算的四种部署方式私有云、社区云、公有云(公共云)和混 合云。相关链接 答案:ABC 3★5/765、在阿里云的云盾态势感知中看到的所有安全威胁,阿里云的系统都会自动处理,不需要用户主动参与 只要知道就可以了。 A、正确 错误 提示: 答案B 1★6/765、通过阿里云“弹性伸缩”服务自动创建的ECS符合以下哪些特征?(正确答案的数量:3个) A、创建的ECS会配置相同的IP地址 、如果伸缩组里指定了RDS实例,系统会自动将ECS的P加入指定的RDS访问白名单当中 如果伸缩组里指定了SLB实例,系统会自动将ECS的加入到SLB组里 D、创建的ECS配置都是相同的 提示:弹性伸缩出来的机器配置和规格相同,但是不会出现相同I的情况 答案BCD 1★7/765、弹性伸缩一定要搭配负载均衡SLB、云监控才能使用。 A、对 错 提示:弹性伸缩无需搭载负载均衡SLB,云监控一起使用。 答案B 1★8/765、阿里云OSS图片处理服务,绑定域名名需要做线上验证,其中一步是下载验证文件并上传到您域名 的下,此步骤为验证您对绑定域名的所有权 A、有效率 B、根目录 C、顶级目录 D、子目录 提示:线上验证是将下载的验证文件放置于域名的根目录下来完成验证绑定域名的所有权。 答案B 3★9765、阿里云的负载均衡SLB支持同一地域( Region)跨可用区(Zone)容灾,结合DNS还可以支持跨地 域( Region)的容灾。 A、对 B、错 提示:多个不同地域的负载均衡SLB支持通过DNS轮询来实现跨域容灾,相关链接 答案A 1★10765、您在创建阿里云的云服务器ECS实例时必须要选择 来指定新建的云服务器ECS实例的系 统盘的配置? A、IP地址 、镜像 C、安全组 D、区域 提示:ECS的系统盘的配置需要通过镜像来新建完成。 答案B 2★11765、阿里云作为云计算服务的提供商,为用户提供的安全保障服务包括 (正确答案的数 量:2个) A、云计算底层硬件设施的安全运维 B、云服务器ECS中的应用维护 C、云计算租户之间的安全隔离 D、云数据库RDS的P白名单设置 提示:阿里云作为云计算服务的提供商为用户提供的安全保障会包括云计算底层硬件设施的安全运维、云计算 租户之间的安全隔离。但是云服务器ECS中的应用维护和云数据库RDS的IP白名单设置还是需要用户自己来 做 答案:AC 4★12765、阿里云对象存储OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。与自建存 储对比,OSS在可靠性、安全、成本和数据处理能力等几个方面都具有优势。以下 不是OSS在数据处 理能力方面表现出来的优势。 提供大规模的数据分析能力 B、提供实时缩放图片的处理功能 C、提供实时的“文字水印”的图片处理功能 D、提供实时的“图片水印”的图片处理功能 提示:对象存储OSS并不具备大规模的数据分析能力。 答案:A 1★13/765、A公司管理员小牛近期发现公司的网站访问速度越来越慢,偶尔会出现无法打开的现象,从web 日志中发现了数据被恶意爬取的行为,且并发访问量较大,这种情况下可以使用阿里云的安全产品进 行防护。 A、安全管家 B、态势感知 、Web应用防火墙(WAF) D、云安全中心(安骑士) 提示:划重点:从web日志中发现了数据被恶意爬取的行为,且并发访问量较大。所以需要用到Web应用防火 墙(WAF)的防爬虫功能。 答案C 3★14765、如果用户只使用阿里云的云盾的DDoS基础防护功能,当攻击规模超过服务上限时,会触发黑洞规 则,之后用户的服务器仍可以对外提供服务,只是速度受到限制。 A、正确 B、错误 提示:当ECS或SLB实例的公网I遭到大量DDoS攻击,且DDoS攻击的流量超出对应的黑洞阈值后,该公网IP将 被黑洞,所有来自外部的流量都将被丢弃,导致相关的业务无法正常访问。相关链接 答案B 3★15/765、在使用阿里云的公网IP的负载均衡SLB实例的四层(TCP协议)转发时,后端云服务器池中的ECS 实例不能直接向该ECS实例所在的负载均衡SLB实例的公网发送请求 错 提示这和负载均衡TCP的实现机制有关。在四层TCP协议服务中,当前不支持后端云服务器的ECS既作为 Realserver,又作为客户端向所在的负载均衡实例发送请求。因为,返回的数据包只在云服务器内部转发,不 经过负载均衡,所以在负载均衡实例的后端ECS上去访问的负载均衡的服务地址是不通的。相关链接 答案:A 4*16/765、阿里云对象存储OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用OSS管理 的文件可以很方便地对外提供分享,分享前点击文件后面的“获取地址”文字链接即可得到当前文件的地址,这 个分享使用的是____应用层(七层)协议。 A、FTP B、HTTP C、TCP D、SMTP 提示:OSS的分享文件使用的是HTTP应用层(七层)的协议。 答案:B 4÷17/765、您已经创建好的阿里云的云服务器ECS实例上部署了服务A,当服务A不再需要提供服务时,可以 使用该云服务器部署服务B,如果服务A和B所需的操作系统不同,则需要更换该ECS实例的系统盘。在执行该 操作的过程中,以下说法正确的是?(正确答案的数量:5个) A、更换系统盘前云服务器ECS实例要处于已停止状态 B、更换系统盘时可以选择用户自定义镜像、阿里云为您提供的公共镜像 C、在有数据盘的情况下,如果是Windows系统更换至Linux系统,由于Linux默认无法识别NTFS格式,需要您 单独安装软件识别,例如ntfs-3G等 D、在有数据盘的情况下,如果是Linux系统更换至Windows系统,由于Windows系统默认无法识别ext3,ext4,xfs 等文件系统格式的磁盘,需要您单独安装软件识别,例如ext2read ext2fsd等 E、更换系统盘之后,您的长服务器ECS实例的IP地址会发生变化 F、更换系统盘之后,您现有系统盘的自动快照及其上的数据会丢失 提示:排除法,更换系统盘并不是导致网络层的IP地址会发生变化。 答案:ABCDF 2★18765、阿里云对象存储OSS提供了丰富的文件上传和下载接口,用户可以通过API方便地实现大容量存储 空间的管理。如果您想建立一个大型图片分享站点,该网站允许大量用户通过WEB方式进行图片的上传和分 享,可以使用阿里云的 产品与OSS配合实现。 A、负载均衡SLB B、云服务器ECS C、云数据RDS D、内容分发网络CDN 提示题目中要求允许大量用户通过WEB方式进行图片的上传和分享,所以需要云服务器ECS来提供WEB服务 支持。 答案B 3★19765、阿里云的负载均衡SLB实例和后端云服务器ECS实例之间是通过公网进行通信的,所以云服务器 ECS实例必须配置外网带宽。 A、对 B、错 提示:负载均衡SLB实例和后端云服务器ECS实例之间是通过内网通信的。 答案B 3★20765、某期货交易网站,使用阿里云负载均衡SLB服务。由于期货交易对于负载有高敏感性,高频的健康 检查有可能会对用户的正常访问带来影响。该网站可以通过以下方式减少健康检查对正常业务的影响:降低健 康检查的频率,增大健康检查间隔。 A、对 B、错 提示如果您的业务对负载敏感性高,高频率的健康检查探测可能会对正常业务访问造成影响。您可以结合业 务情况,通过降低健康检査频率、增大健康检査间隔、七层检査修改为四层检査等方式,来降低对业务的影 响。但为了保障业务的持续可用,不建议关闭健康检查。相关链接 答案:A 21/765、某保险公司的线上平台每天在线订单量超过20万笔,一年来频繁受到大流量攻击(超过10G),使 服务断断续续,严重影响了公司的品牌和业务量。如果该客户使用阿里云的 产品可以抵御这类攻 击,保证业务的高可用性。 A、DDoS基础防护 B、安全管家 C、态势感知 D、DDoS高防IP 提示DDoS基础防护只能防护5GB以下的DDoS攻击,超过5GB的DDoS攻击需要用到DDoS高防IP。 答案D 4★22765、您成功地创建了一台阿里云的云服务器ECS实例准备进行应用的部署。在部署应用之前如何保证 该云服务器ECS实例具备防御500M以内的DDoS攻击的能力? 、阿里云的云盾产品提供免费的基础DDoS防护服务,不需要单独购买 B、需要另行购买DDoS防护服务才可以具备防护功能 C、需要您自己架设防DDoS服务 D、其他都不对 提示:阿里云的云盾免费的DDoS基础防护提供最高5G的默认DDoS防护能力,所以5G以下可以选择云盾DDoS 基础防护,5G以上可以选择云盾的DDoS高防服务。 答案:A 3★23/765、某电子购物网站,为了方便用户,提供了购物车的功能,即在用户登录期间,可以添加自己喜欢 的商品到购物车,选择完成后一次性付款即可。上述网站搭建在阿里云上,选用了云服务器ECS实例和负载均 衡SLB实例,应用程序将会话信息和购物车信息都只保存在了应用程序的内存中,公测期间发现绝大部分测试 用户的购物车功能没有问题,但一小部分用户的购物车发生了最早添加的商品随机丢失的现象。试分析以下哪 些原因可能会造成这种情况?(正确答案的数量:3个 用户购物的时长超过了负载均衡SLB实例中定义的会话保持的超时时间 B、用户使用手机登录,一次购物的过程中,发生过网络的切换导致的重新链接 C、某台云服务器ECS实例状态不正常,导致这部分用户前期的购物篮记录被清空 D、负载均衡SLB实例未开启会话保持功能 E、负载均衡SLB实例进行上备可用区切换导致部分用户数据丟失 提示:商品的数据都保存在内存中,那既然出现了数据丢失,出现的问题要么是用户没有访问保存购物数据的 那台机器,要么是保存他那台数据的机器出问题了。 答案:ACE 1★24765、阿里云的负载均衡SLB提供对多台云服务器ECS实例进行流量分发的服务,可以通过流量分发扩展 应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。阿里云的负载均衡SLB可以支持 协议。(正确答案的数量:4个) 、UDP B、 Https C、 PPPOE 、TCP E、HTTP 提示 PPPOE是很老的拨号协议,阿里云负载均衡SLB不支持此协议。 答案:ABDE 3★25/765、小明是一个社交网站的架构师,创业初期用户量较少,每个注册客户上传的图片文件直接保存在 了一台阿里云的云服务器ECS实例上。最近用户量爆增,图片存储的空间达到了35T,WEB服务器由原来的1 合ECS实例扩展到了5合ECS实例,性能问题得到了解决,可是保存在ECS实例的图片无法在多台ECS之间共 享读写。阿里云的 产品非常适合解决这个问题。 、对象存储OSS B、负载均衡SLB C、归档存储( Archive Storage) D、内容分发网络CDN 提示:划重点:保存在ECS实例的图片无法在多台ECS之间共享读写,所以需要对象存储OSS提升图片存储的性 能已经共享读写图片。 答案:A 3★26/765、使用阿里云的负载均衡SLB实例时,合理的会话保持配置可以实现与某个连接( Session)相关的 所有应用请求能够由同一台后端云服务器ECS实例进行处理,维持业务的延续性。七层服务的会话保持是基于 实现的 A、源I B、负载均衡IP cookIe D、用户的UUID 提示四层服务的会话保持是基于源IP实现的,七层服务的会话保持是基于 Cookie实现的。 答案:C 2★27765、阿里云的云盾“DDoS基础防护”为阿里云用户提供最高5G的默认DDoS防护能力。用户如果加入安 全信誉防护联盟计划,云盾将基于安全信誉分进一步提升DDoS防护能力,用户最高可获得100G的免费DDos 防护资源。以下有关云盾“DDoS基础防护”的特点描述正确的是。(正确答案的数量:3个) A、BGP线路防护:受到DDoS攻击不会影响访问速度,带宽充足不会被其他用户连带影响,优质带宽保证业务 可用和稳定 精准防护:精准识别攻击,秒级开启防护,自研清洗设备和算法保证极低误杀 免安装免维护:无需采购昂贵清洗设备,自动为云上客户开通免安装,智能业务学习和配置防护规则 D、分布式:通过散列分布式的虚拟节点将业务分散部署,有效避免网络攻击的发生 提示具体的可以参考DDoS基础防护服务的产品简介:相关链接 答案:ABC 3★28/765、当您的云服务器ECS实例的镜像选择了 Aliyun linux,可以兼容以下操作系统 A、 CentoS B、 Windows server2008 C、 OpenSUSE D、 UBUNTU 提示 Aliyun Linux和 Centos都属于 Redhat一家的。兼容 Red hat。其中包括( Red Hat Enterprise linux, Fedora, Centos, Scientific Linux, Oracle linux),参考:相关链接 答案:A 3★29/765、阿里云弹性伸缩( Auto Scaling)中,当进行弹性收缩时,对于运行在需要移出伸缩组的ECS实例 上的应用,如果简单的中断服务,会影响到客户体验。如果需要确保在ECS实例上任务处理完成才释放该实 例,弹性伸缩提供了解决方案:在创建ECS实例使用的镜像中存放一个包含处理逻辑的脚本,并设置成在ECS 实例操作系统关机时自动执行该脚本。 对 B、错 提示:如您需要确保在ECS实例上任务处理完成才让弹性伸缩释放该实例,您需要在自定义镜像中存放执行脚 本,并设置命令在操作系统关机时自动执行该脚本。相关链接 答案:A 1★30765、对 ECS API接口调用是通过向 ECS API的服务端地址发送 Http Get请求,并按照接口说明在请求 中加入相应请求参数来完成的 对 B、错 提示:云服务器ECS的API是通过向 ECS API的服务端地址发送 Http Get请求来实现相关的业务请求。相关链 接 答案:A 1★31/765、用户如果想要在OSS中模拟实现文件夹的创建操作,需要使用的API是 A、 Multipart Upload B、 putobject C、 Get object D、 Copy object 提示OSS中文件夹的概念仅是一个逻辑概念,在通过 APISDK的方式设置文件夹的时候可以指定 object对应的 key值包括前面的目录即可实现该功能。相关链接 答案B 4★32765、您拥有香港地域可用区A、华北1(青岛)地域可用区B和华南1(深圳)可用区B的云服务器ECS 实例,现在希望通过购买新的块存储挂载到已有的云服务器ECS实例上进行磁盘空间的扩容,肯定不能购买 可用区的块存储。 华北1(青岛)地域可用区A B、华北1(青岛)地域可用区B C、香港地域可用区A D、华南1(深圳)地域可用区B 提示:根据题意,购买新的块存储意味创建新的数据盘,所以只能购买同一个可用区的云盘,所以只能选择: 香港地域可用区A,华北1(青岛)地域可用区B和华南1(深圳)可用区B 答案:A 2★33765、CDN节点系统关键组件有哪些?(正确答案的数量:3个) A、 origin 、LVS tengine D、 swift 提示:LVS做四层均衡负载; Tengine做七层负载均衡;Swit做HTP缓存。相关链接 答案:BCD 1★34765、云盾安骑上可以保防阿里云以外的服务器。 错 提示:云盾安骑士支持防护阿里云的ECS以及非阿里云的线下机房的实例。相关链接 答案:A 1★35765、云计算是一种商业计算模型,它将计算任务分布在大量计算机组成的资源池上,使各种应用系统 能够根据需要获取计算力、存储空间和信息服务。以下关于使用公共云计算相对于使用传统IC的优势,从云 计算的使用者角度来看,说法正确的有 ?(正确答案的数量:4个) 、云计算的使用者节约了建立基础设施的成本 B、云计算的使用者能快速搭建应用 C、云计算的使用者简化了管理和维护工作 D、云计算的使用者可以完全管理和控制底层基础设施 E、云计算的使用者拥有更大的灵活性和扩展性 提示:阿里云云计算的使用者是不可以管理和控制底层基础设施。 答案:ABCE 1★36/765、C公司基于阿里云对象存储OSS和云服务器ECS实例构建了一个网站,ECS实例与OSS之间有频繁 的文件上传和下载需求。系统管理员小赵最近通过阿里云管理控制台中的费用中心发现OSS的流量费用增长很 快,但是从ECS实例上部署的应用系统日志里没有发现网站访问量有明显增长。请您帮小赵判断一下有可能是 原因导致的。 A、系统架构中缺少云数据库RDS B、可能是ECS实例通过公网地址调用OSs的API C、ECS实例的系统配置不足,需要增加内存 D、系统架构中缺少负载均衡SLB 提示:题目中说:ECS和OSS之前有频繁的上传和下载的需求,但是ECS的访问量很小,但公网流量增长却很 快,所以可以判断是ECS辽过公网AP访问OSS导致的公网流量。 答案B 3★37765、阿里云负载均衡SLB是对多台云服务器ECS实例进行流量分发的服务。配置和管理一个负载均衡 SLB实例,主要涉及以下操作。(正确答案的数量:3个) 、负载均衡SLB实例的属性配置 B、负载均衡SLB实例的监听配置 负载均衡SLB实例的后端ECS实例配置 负载均衡SLB的公网IP E、负载均衡SLB的操作日志存储位置 提示:公网P是购买负载均衡SLB时候系统分配的,或者你单独购买EIP后单独给负载均衡SLB绑定。并不是在 你在负载均衡的配置和管理里面可以设定的。 答案:ABC 4★38765、阿里云对象存储OSS自动为每个 Bucket分配一个“外网地址”和“内网地址。正确使用OSS的内网地 址,可以节省OSS与云服务器ECS实例之间的流量费用,云服务器ECS实例通过内网访问OS能够有效的提升上传 和下载的质量。场景可以使用OSS的“内网地址”通信。(正确答案的数量:3个) A、 OSS Bucket在R1地域,用户有两台云服务器ECS实例分别在该地域的可用区A和可用区B,两台ECS实例上 的访问日志都要保存到OSS中 B、 OSS Bucket在R1地域,用户有1台云服务器ECS实例在R1地域的可用区A,此台ECS实例上的访问日志要保 存到OSS中 C、 oss Bucket在R2地域,用户在R1地域的可用区A有1台云服务器ECS实例,此台ECS实例上的访问日志要保 存到OSS中 D、 OSS Bucket在R1地域,在该地域的可用区B用户有1台云服务器ECS实例,此台ECS实例上的访问日志要保 存到OSS中 提示题目中问的是云服务器ECS实例通过内网访问OSS,所以要求云服务器CS和OSS需要处于同一个地 域," OSS Bucke在R2地域用户在R1地域的可用区A有1台云服务器ECS实例"明显不符合要求。 答案:ABD 3★39/765、阿里云的负载均衡SLB提供对多台云服务器ECS实例进行流量分发的服务,可以通过流量分发扩展 应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。阿里云的负载均衡SLB支持 层 网络协议的负载均衡服务。(正确答案的数量:2个) 、4层(传输层 B、7层(应用层 C、3层(网络层) D、2层(数据链路层) 提示:阿里云的负载均衡SLB目前仅支持4层和7层的负载均衡。 答案AB 3★40765、使用阿里云的负载均衡SLB时,为了实现跨地域( Region)的高可用性,可以在不同的地域 ( Region)创建多个负载均衡SLB实例,通过的方式对外提供服务。 A、DNS轮询 B、DNS最小连接数 C、DNS广播 D、DNS多播 提示:实现不同地域的多个负载均衡SLB的负载,需要通过DNS轮询来实现,相关链接 答案:A 1★41/765、在使用阿里云DDoS高防理P时, CNAME配置非常简单,只需要配一条DNS记录就可以启用。 、正确 B、错误 提示:CNAM接入模式更加方便,您只需要在域名解析服务商处(如万网云解析或者 DNSPod)修改一次解析 配置即可生效,实现零部署、零运维。相关链接 答案:A 4★42/765、SLB是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。下列 关于SLB说法错误的是? SLB的服务能力与后端ECS的公网宽带规格无关 、同一组ECS不可以搭建多个网站并同时进行负载均衡 C、在使用SLB的过程中随时调整后端ECS的数目 D、不同操作系统的ECS可以同时做为SLB服务的后端服务器 提示:同一组ECS可以同时搭建多个网站并进行负载均衡 答案B 3★43765、用户可以通过控制台或AP配置监听的健康检查。下列属于SLB健康检查必选参数配置的有?(正 确答案的数量:3个 A、响应超时时间 B、健康检查间隔 C、不健康阀值 健康检査请求 提示:注意题目要求的是必选参数,考的是配置健康检査的实际操作能力,健康检査请求不是必须的配置参 数。相关链接 答案:ABC 1★44765、阿里云的云盾DDoS高防IP可以抵御数百G的DDoS攻击,阿里云及非阿里云主机都可以使用云盾 DDoS高防I服务。 错 提示:云盾DDoS高防I产品是针对解决互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服 务不可用的情况 答案:A ★45/765、您已经在阿里云的一台经典网络类型的没有数据盘的云服务器ECS实例上运行所有的应用,现在出 于业务发展的需要,您希望将这台云服务器ECS实例迁移到相同地域的专有网络VPC中去,以下 操作 是可行的。 直接将云服务器ECS实例的类型转换为专有网络 B、将该云服务器ECS实例的安全组变更为专有网络类型 C、制作该云服务器ECS实例的镜像,基于该镜像制作专有网络类型的云服务器ECS实例,业务会短暂停顿 D、无法迁移 提示题目中需要将经典网络的云服务器ECS实例迁移到相同地域的专有网络VPC中去,虽然目前阿里云支持直 接迁移,但是从上云实践的规范中出发,因为云服务器或捆绑或者依赖其他多个附属的云产品(如:数据库 RDS等),所以运营一键辽多并不能完成其他附属云产品的转换。所以基于镜像来迁移至专用网络ⅤPC中去是 最稳妥的方法。 3★46/765、阿里云弹性伸缩( Auto Scaling)中的伸缩组是指部署了相同应用的云服务器ECS实例的集合,其 中的ECS实例既可以是包年包月的,也可以是按量付费的。对于业务量突变的场景,按量计费的ECS实例会在 满足业务需求的同时尽可能的节省成本;对于用户已有的包年包月的闲置的ECS实例,也可以手工添加到满足 一定条件的伸缩组,能充分利用闲置资源。 B、错 提示:弹性伸缩( Auto Scaling)中既支持自动伸缩,也支持手动添加闲置的ECS实例,手动添加的ECS的规格 配置不需要和伸缩配置中的配置相同。 答案:A 3★47765、阿里云对象存储OSS的存储费用在所有地域支持“按量付费”,在部分地域支持“包年包月”和“按量 付费两种方式。用户可以通过“包年包月”的付费方式可以获得资源包”,根据业务需求选择合适的资源包可 以节约使用OSS的成本。以下有关OSS包年包月收费方式的说法中是正确的。(正确答案的数 量:3个) 、费用一次性支付,立即生效 B、用户购买的“包年包月”资源包在有效期内,扣费方式为先扣除已购买的资源包内的额度,超出部分按量收 费 C、“包年包月”的资源包,采用按存储容量的阶梯计价,容量越大,单价越便宜 D、存储容量相同的“包年包月”的资源包,购买时长越短,单价越便宜 提示:排除法,存储容量相勹的“包年包月”的资源包,购买时长越短,单价越贵,购买时长越长,单价越便宜 答案:ABC 4★48/765、阿里云对象存储OSS中所有数据都保存在 Bucket中,当一个 oss bucket设置成 权限,意味 着该 oSS Bucket仅允许其他用户来访问( GET Object)属于该 Bucke下的 objecto A、公共读写 公共读 C、私有 D、私有读 提示:允许其他用户访问就代表允许公共访问此 Bucket,所以选择公共读 答案B 2★49/765、阿里云内容分发网络CDN建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成 的分布式网络替代传统以 WEB Server为中心的数据传输模式。CDN加速特别适合在站点访问量大,且静态资 源被不同用户重复访问的比例高的场景中使用,重复访问率越高加速效果越明显。 A、对 B、错 提示:文档原话,阿里云CDN(内容分发网络)全称是 Alibaba Cloud Content Delivery Network,建立并覆盖在 承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以 WEB Server为中心的数据 传输模式。 答案:A 4★50765、阿里云对象存储OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。与自建存 储对比,OSS在可靠性、安全、成本和数据处理能力等几个方面都具有优势。以下是OSS在安全性方 面表现出来的优势。 A、流量清洗和黑洞设备需要另外购买,阿里云的云市场有多家优质的供应商可供选择 B、OSS提供灵活的开发接口,兼容市面上主流的安全防护设备和协议 、提供多种鉴权和授权机制,以及白名单、防盗链、主子账号功能 D、阿里云提供定制化的安全服务,可根据用户的需要一对一定制开发 提示:安全性主要表现在三方面:1.提供企业级多层次安全防护。2.多用户资源隔离机制,支持异地容灾机 制。3.提供多种鉴权和授权机制及白名单、防盜链、主子账号功能。相关链接 答案C 3★51765、开通阿里云对象存储OSS服务后,您首先需要使用OSS管理控制台或 OpenAPI创建存储空间 Bucket 以用来存储文件,以下有关 Bucket的说法 是正确的。 、 Bucket的名称要求全局唯一,且创建后不支持更改 B、 Bucket的名称要求全局唯一,创建后支持更改 C、 Bucket的名称只要求在本帐号内唯一,创建后支持更改 D、 Bucket的名称要求在本帐号内唯一,且创建后不支持更改 提示:每个 Bucket存储空间的名字全局唯一, Bucket存储空间一旦创建成功,名称和所处地域不能修改。 答案:A 3★52765、云服务器ECS系统资源监控 Dashboard页面内容有哪些?(正确答案的数量:3个) 、CPU使用率 磁盘IO C、网络带宽 D、TPS 提示 Dashboard不支持对TPS的监控 答案:ABC 3★53/765、阿里云的负载均衡SLB包含了几个主要的部分:来自外部的访问请求、 Listener、 LLoadBalancer、 Backendserver等,关于 Listener的说法中正确的是 主要包括用户定制的负载均衡策略和转发规则 B、提供对外服务的ECS实例集合 C、是指负载均衡SLB实例 D、通过配置监控规则,可以生成负载均衡SLB实例的监控指标 提示: Listener:用户定制的监听器,定义了负载均衡策略和转发规则。相关链接 答案A 3★54765、阿里云对象存储OSS是阿里云提供的海量、安全、低成本、高可靠的云存储服务。为了方便用户把 OSS服务集成到自己的网站或应用中,OSS提供了“自定义域名绑定”的功能,通过该功能用户可以实现通过自 己的域名来访问OSS中的文件(如: http://img.mydomain.net/xxxx )以下有关OSS绑定域名的相关说法 是正确的。(正确答案的数量:3个 、如果用户绑定的域名和OSS服务在同一个阿里云帐号中管理,在OSS管理控制台中可以选择自动添加或修 改域名的 CNAME记录 、不管域名是否在阿里云管理,绑定到OSS的域名必须在工信部备案 C、如果在OSS绑定域名时提示绑定的域名已经被其他用户绑定,此时用户无需额外操作即可进行强制绑定 绑定域名的时候可以选择“自动”或“手动"添加域名解析 提示:在OSS绑定域名时提ˉ绑定的域名已经被其他用户绑定,需要验证域名所有权后才可继续进行绑定操作。 相关链接 答案:ABD 3★55765、您需要将阿里云的专有网络vPC与传统数据中心组成一个按需定制的网络环境,实现应用的平滑 迁移上云。专有网络ⅤPC可以与 连接方式组合来实现该架构。(正确答案的数量:2个 A、 VRouter 专线 C、SDN VPN 提示根据题意,需要让专有网络ⅤPC与传统数据中心实现内网访问,所以专线和ⅤPN可以满足要求。 答案BD 3★56765、阿里云对象存储OSS里存储的文件可以进行分享和下载,当文件所在的 Bucket的读写权限为“私 有”时,OSS分享链接采用的安全机制是 A、在管理控制台中获取文件访问URL时设置分享链接的访问密码,访客下载文件时凭密码访问 B、“私有权限的文件对外享时,访客只能看到文件的一部分内容(前500K) C、在管理控制台中获取文件访间URL时设置分享链接有效的时间,超过设定时间就无法下载 D、“私有”权限的文件对外分享时,系统会检查文件的大小,超过2M的文件不允许分享 提示:出于安全考虑,目前控制台针对私有 bucketp的获取URL链接签名操作做了优化,使用的 AccessKey是临时 生成的密钥对,主账号用户最长有效时间是64800秒(18小时),RAM子账号用户以及sts用户最长有效时间是 3600秒(1小时),超时后链接就无法访问了。相关链接 答案:C 1★57/765、阿里云OSS与自建存储相比,有以下哪些优点?(正确答案的数量:4个) A、海量存储 低成本 C、安全 、多线BGP接入 E、支持数据备份 提示:自建的存储也是支持数据备份的,这个并不是OSS独有的优势。 答案:ABCD 1★58765、以下 安全事件是不能由阿里云态势感知集中管理的 A、发现主机有异常进程 B、发现主机成为肉鸡 C、机房断电 D、发现网站被DDoS攻击成功 提示机房断电是态势感知不能预测到的故障。 答案:C 4★59/765、阿里云对象存储OSS与云服务器ECS实例之间的内网通信免费,只要 OSS Bucke和ECS实例的所属 地域在中国大陆范围内,就可以使用内网地址免费通信 A、对 提示:只有ECS和OSS的 Bucket处于同一个地域( Region),才可以使用内网地址通信。 答案B 3★60765、用户开启SLB会话保持功能后,SLB会把来自同一客户端的访问请求分发到不同的后端ECS上进行 处理 A、对 提示:开启会话保持后,负载均衡监听会把来自同一客户端的访问请求分发到同一台后端服务器上。相关链接 答案B 1★61/765、阿里云内容分发网络CDN支持大文件下载加速、音视频点播加速,以及HTPS安全加速。 A、对 B、错 提示阿里云内容分发网络CDN支持各类网站静态内网的加速服务,支持 Https。相关链接 答案:A 1★62/765、A电商平台近几年业务增长很快,访问量持续保持每年提升300%,平台运营团队因此获得了公司 的年度特别奖励。在高兴之余运营团队发现平台系统带宽的支出是以每年500%的比例增长的,如果能有效降 低这块成本可以提升整体的运营质量。此时,该公司选择阿里云的 服务,效果会最明显。 A、支持多可用区的云数据库RDS 内容分发网络CDN C、对象存储OSS D、负载均衡SLB 提示:题目中说"系统带宽的支出是以每年500%的比例增长的",说明服务很占用带宽资源,可以通过内容分发 网络CDN来减少服务器的带宽输出。 答案B 5★63765、您部署在阿里云云服务器ECS上的服务,希望能够通过阿里云的产品来提升该服务的可用性,以下 哪种方案的可用性最高? 、在同一个地域的多个可用区的多台云服务器上部署应用,并挂载在同一个负载均衡实例后面 B、在同一个地域的同一个可用区的多台云服务器上部署应用,并挂载在同一个负载均衡实例后面 C、在不同地域的多个可用区的多台云服务器上部署应用,并挂载在同一个负载均衡实例后面 D、在不同地域的同一个可用区的多台云服务器上部署应用,并挂载在同一个负载均衡实例后面 提示:1、SLB不能跨地域,要想跨地域只能在多个地域单独配置不同的SLB再通过DNS轮询实现转发。2、同 个地域下,SLB通过在不同可用区配置ECS实现灾备。四个选项都是只有一个SLB,所以可用性最高的就是 多个可用部署应用 答案:A 3★64765、使用阿里云对象存储OSS保存云服务器ECS实例上的业务系统日志,可以有效降低存储成本。如果 ECS实例和OSS在同一地域,只能通过公网地址传输数据。 A、 对错 提示ECS实例和OSS在同一地域,是可以通过内网来传输数据的。 答案B 1★65/765、在使用阿里云弹性伸缩( Auto Scaling)创建伸缩组之后,除地域属性之外,还有以下哪些属性不可以 修改?(正确答案的数量:2个 A、伸缩组名称 、负载均衡实例 RDS数据库实例 D、移出策略 提示:伸缩组名称是可以修改成其他名称,移出策略是可以修改为其他策略。 答案BC 3★66765、在阿里云的负载均衡SLB的管理控制台中,可以根据一些监控的统计指标来设置报警信息,常见的 如流量、数据包、连接数等,设置报警阈值,一旦触发了报警条件,就会通过多种方式进行报警。目前还不支 持 的报警方式 电话报警 B、邮件报警 C、短信报瞀 D、旺旺报警 提示:阿里云的负载均衡SLB的监控报警目前还不支持电话报警。开通云监控服务后,您可以在云监控控制台配 置监控报警规则。云监控支持“短信”、“邮件”、‘旺旺”三种报警方式,暂不支持电话报警。相关链接 答案A 1★67/765、用户A是公司的系统管理员,经常去上海出差,每当他在上海远程登录服务器时系统就会发出报警 信息,提示“有人异地登录,请注意服务器安全”通过 方法可以快速、自助解决这个问题。 A、立即提交工单,咨询阿里云工程师 B、向公司领导请求帮助 C、登录阿里云管理控制台,在安骑土配置项里填加“常用登录地点” D、向朋友电话求助,他是业界有名的黑客高手 提示题目中说的是系统管理员每次在上海出差时候远程登录服务器就会发出异地的报警信息,所以需要通过 控制台的添加“常用登录地点”来解决这个报警信息的问题 答案C 3★68765、阿里云对象存储OSS的存储空间 Bucket支持删除操作,在删除 Bucke前必须先删除 Bucket中的所有 文件,包括未完成的分片文件。 错 提示:删除 Bucket前,碎片文件也必须要一起删除。相关链接 答案:A 1★69/765、您希望基于已有的磁盘快照在青岛可用区A的云服务器ECS实例创建一个新的块存储磁盘,您可以 使用 快照创建该磁盘。 A、以上都不行 B、青岛可用区A的某个ECS实例的系统盘快照1 C、北京可用区A的某个ECS实例的数据盘快照 D、香港可用区A的某个FCS实例的数据盘快照 提示题目中要求的是在ECS上面新挂载一块数据盘,所以可以使用和它同一个可用区的非系统盘快照来创建。 所以三个选项都是不符合要求的。系统盘快照,不能用来作为创建新的数据盘。 答案:A 3★70765、阿里云内容分发网络CDN建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成 的分布式网络替代传统以 WEB Server为中心的数据传输模式。用户使用阿里云CDN时 步骤是必须 的。(正确答案的数量:2个) A、手动刷新缓存 B、添加“加速域名” CNAME域名解析 D、CDN使用资源监控 提示:CDN快速入门操作流程1开通CDN服务2添加加速域名3.配置 CNAME相关链接 答案BC 2★71765、BGP(边界网关协议)主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的 传播和选择最好的路由,BGP线路可有效避免不同运营商之间网络访问慢的问题。 正确 B、错误 提示:边界网关协议,简称BGP,主要用于互联网AS(自治系统)之间的互联。BGP协议的最主要功能在于控 制路由的传播和选择最好的路由。使用BGP髙防可以解决跨运营商访问慢、部分小运营商访问不稳定的情况。 这个是文档的原话。 答案:A 3★72/765、当一个阿里云的云服务器ECS实例无法加入指定的安全组时,可能是 原因造成的 A、该云服务器ECS实例的状态为运行中 B、云服务器ECS实例创建之后默认已经加入一个安全组,不能再加入其它安全组 、本云服务器ECS实例目前已经加入的安全组数量达到上限 D、该云服务器ECS实例没有开启公网带宽,所以无法加入安全组 提示:每个ECS实例最多可以加入5个安全组,当超过5个了以后就无法继续加入其他安全组 答案:C 2★73765、D公司在线视频业务全国排名前五,整个业务系统全部建设在阿里云之上,使用的云产品有云服务 器ECS、对象存储OSS、内容分发网络CDN。最近发现有黑客恶意下载公司的正版视频,在国外社区里分 发。假设你是D公司的系统管理员,从技术上可以如何解决这个问题? A、启用阿里云CDN的IP黑名单功能 启用阿里云CDN的URL鉴权功能 C、启用阿里云OSS的Reer黑名单功能 D、启用云服务顺的安全组功能 提示:划重点:公司使用了CDN,黑客恶意下载公司的正版视频。所以需要对CDN的访问进行保护,但是题目 中并不知道黑客的具体IP或者某一段IP,知道具体IP的话可以直接把具体IP或者这段加入黑名单,所以只能 需要采用CDN的URL鉴权能防止在社区在分发的问题。 答案B 3★74765、您发现某台阿里云的云服务器ECS实例的磁盘上的数据被误删除,需要回滚到之前某个时刻的数 据,可以通过对该磁盘进行回滚操作来实现。登录到阿里云的管理控制台进行回滚操作时,您发现不能进行该 操作,可能是 原因造成的。(正确答案的数量:3个) A、云服务器ECS实例的状态为“运行中” B、云服务器ECS实例的状态为启动中 云服务器ECS实例的状态为“已过期 D、云服务器ECS实例的状态为“已停止 提示:回滚磁盘必须要求云盘必须已经挂载到某台ECS实例上,而且已经停止实例。所以不会是“已停止”的状 态造成的。 答案:ABC 3★75/765、在删除阿里云弹性伸缩( Auto Scaling)的伸缩组时有两种模式:强制删除和非强制删除。在非强制 删除模式下,必须满足以下哪两个条件才可以删除?(正确答案的数量:2个) A、伸缩组没有任何伸缩活动正在执行 B、伸缩组当前的ECS实例数量为0 C、伸缩组没有对应的定时任务以及报警任务 D、伸缩组没有和负载均衡SLB、云数据库RDS配合使用 提示:如果 Forcedelete属性为 false,必须满足以下两个条件,才能删除伸缩组:1.伸缩组没有任何伸缩活动正 在执行。2伸缩组当前的ECS实例数量( Total Capacity)为0。 答案:AB 1★76/765、实现PC中ECS服务器切换迁移到同VPC下的其他交换机,包括以下几步,请选择正确的顺序 1打开云服务器管理控制台;2找到对应的需要切换迁移的云服务器;3.选择您所需的交换机,同 时指定新交换机下的IP;4.修改云服务器的私网地址; A、1,2,3,4 B、1,2,4,3 C、1,3,2,4 D、1,3,4,2 提示: 答案B 2★7765、阿里云的云盾的安骑士提供了服务器密码暴力破解防护,用户再也不用设置难记的复杂密码了。 A、正确 错误 提示:云盾的安骑士暴力破解防护,但是用户仍然需要做好密码的妥善保管工作。 答案B 4★78/765、阿里云弹性伸缩( Auto scaling)中的伸缩组,是指具有相同应用场景的ECS实例集合。当用户创建 个伸缩组时需要包含以下哪些内容?(正确答案的数量:3个) 、伸缩规则 、伸缩活动 伸缩配置 D、伸缩触发任务 提示:伸缩组包含伸缩配置、伸缩规则、伸缩活动。相关链接 答案:ABC 4★79765、您在阿里云的 Windows系统的云服务器ECS实例中不建议删除或者重命名 administrator账户,如果 进行以上操作可能会引起在阿里云的管理控制台上修改密码失效 对 B、错 提示:对 administrator账户做了操作,如禁用、删除和改名等操作确实会导致在控制台修改ECS实例密码不成 功。相关链接 答案:A 1★80765、在使用阿里云云产品时,可以通过以下哪些方式来提供数据库服务??(正确答案的数量:4个) A、 Linux的环境安装包安装数据库 单独购买RDS数据库 使用镜像市场免费配置环境的数据库 D、 Windows的环境安裝包安装数据库 提示四种方式都是支持提供数据库的服务的。 答案:ABCD 2★81765、阿里云的云盾先知计划的目的是帮助企业建立私有的 中心,以较低的成本发现企业自 身企业的安全风险,并得到解决方案。 A、私有数据中心 B、应急响应中心 C、病毒防护中心 D、远程备份中心 提示:先知计划是一个帮助企业建立私有应急响应中心的平台(帮助企业收集漏洞信息)。 答案B 2★82/765、在服务器上手动安装阿里云的云盾客户端安骑上时需要 权限。 A、系统管理员权限 B、系统普通用户权限 C、FTP服务权限 D、数据库权限 提示在服务器上手动安装安骑士时需要管理员权限。相关链接 答案:A 3★83/765、您可以根据业务的需要,选择采用手动或者镜像的方式进行阿里云的云服务器ECS实例的使用环境 的部署。针对这两种部署方式,以下说法中正确的包括 。(正确答案的数量:3个) Δ、阿里云的云市场提供了丰富的镜像资源,大部分镜像都集成了操作系统和应用程序 B、在创建ECS实例时,可以选择云市场的镜像来快速获得所需的应用程序,无需自行安装,如PHP、 MySQL 等 、如果您需要个性化定制的运行环境,可以使用手动部署 D、如果您使用镜像市场的镜像来重新初始化ECS实例,可以通过更换系统盘来完成操作,同时数据盘的数据 也会受到影响 提示:更改系统盘操作,只会影响系统盘的数据,数据盘的数据不会受到任何影响。 答案:ABC 1★84765、交换机,是组成VPC网络的基础网络设备。它可以连接不同的云产品实例。在VPC网络内创建 云产品实例的时候,必须指定云产品实例所在的交换机。下面关于交换机说法错误的是? A、VPC的交换机,是一个3层交换机,不支持2层广播和组播; B、只有当ⅤPC的状态为 Available时,才能创建新的交换机; C、交换机不支持并行创建,一个交换机创建成功之后,才能够创建下一个; D、交换机创建完成之后,无法修改 CIDRBlock; E、删除交换机时,该交换机所连接的云产品实例也一同删除; 提示删除交换机之前,必须先删除目标交换机所连接的云产品实例。 答案:E 2★85765、您在原有的数据中心已经部署了部分应用,现在需要构建新的应用,但本地的数据中心内的物理 资源不够用,也没有办法进行扩容,使用以下哪些方案可以用于解决该问题?(正确答案的数量:3个) A、在阿里云上申请专有网络VPC服务,并基于VPC申请新的云服务资源,与您原有的数据中心使用相同的内 网地址网段 、通过专线打通原有数据中心与阿里云上的VPC,实现已有数据中心向云上的平滑迁移 、通过VPN打通原有数据中心与阿里云上的VPC,实现已有数据中心向云上的平滑迁移 D、直接申请阿里云的云服务器无需任何操作就可以与原有的数据中心内网打通,实现已有数据中心向云上的 平滑迁移 提示:无需任何操作是不会打通的。 答案:ABC 1★86/765、若您的阿里云的云服务器ECS的实例希望能够和 internet直接连通,就一定要开启公网带宽或者绑 定EIP。 B、错 提示因为题目是说需要直接连通,所以只能通过公网带宽或者EIP来实现。 答案:A 1★87765、阿里云CDN不仅支持图片和cs文件加速,还支持视频流媒体加速。 B、错 提示:阿里云CDN广泛应用于网站与应用加速、音视频点播、文件等场景,通过高性能缓存机制,提高访问效 率和资源可用性。符合题目的描述。相关链接 答案:A 1★88/765、某社交网站的整个平台基于阿里云的负载均衡SLB、云服务器ECS和云数据库RDS构建,原来只提 供wEB纯动态的文字信息交流。最近网络直播很流行,运营团队为了增加会员活跃度,也准备开设网络直播 业务,实现全国20万会员随时随地快速观看直播,预计同步在线人数3000。需要再开通阿里云的 品来支撑这个业务。(正确答案的数量:4个) A、高性能计算HPC( AliCloud hPc) B、弹性伸缩( Auto Scaling) 对像存储OSS D、媒体转码( Media Transcoding 内容分发网络CDN 提示:题目中要求创建是計¢网站,需要支持直播,所以需要媒体转码( Media Transcoding)服务;同时支持全 国的会员随时随地快速观看,所以需要用到对象存储OSS来保存直播视频内容且配合内容分发网络CDN实现全 国地区的加速观看。 答案BCDE 4★89/765、某互联网金融公司为了实现业务快速上线,系统快速部署,基于阿里云搭建I基础架构。由于其 业务特性,不定期会有理财套餐的秒杀、促销活动,为了能够应对更大、更具偶发性的业务压力,需要全面考 虑应用、数据库等层面的扩展,以下说法正确的是:(正确答案的数量:3个) A、使用SLB实现应用层的弹性扩展 使用DRDS实现数据库层的弹性扩展 使用弹性伸缩使云服务器轻松应对秒杀场景扩容 D、应用之间采用紧耦合架构 E、将系统搭建在同一地域有利于系统的弹性扩展 提示:应用层的弹性通过SLB后增加机器实现,DRDS就是数据库集群,可以实现数据库的弹性扩展(),应用 间应该釆用松耦合的架均提高系统的可跨展性,紧耦合不利于维护。弹性扩展和部署在同一地域没有关系, 多个地域也可以每个地域单独实现弹性拓展。相关链接 答案:ABC 3★90765、某视频公司,使用负载均衡SLB将用户的访问请求分发到20合云服务器ECS实例上,由这些配置相 同的ECS实例来响应用户的请求。春节将至,根据经验预估,假期期间业务量会增加一倍。可以使用阿里云弹 性伸缩( Auto Scaling)来满足资源的弹性变化的需求,由于可以准确的预测业务量变化情况,因此可以选择 多种伸缩模式来实现。以下说法正确的是?(正确答案的数量:3个) A、定时任务:在假期开始当天,增加ECS实例个数到40台,假期过后减少至20台 B、云监控报瞀任务:通过监控CPU、负载等,在资源紧张时动态增加FCS实例,在资源空闲时,减少ECS实 C、固定数量模式:从假期开始当天,设置伸缩组的最小实例数为40台,假期过后将该参数调至20合 健康模式:保持伸缩组中当前的所有的ECS实例能正常工作,以满足用户访问请求的响应 提示:题目考察的是选择哪种伸缩模式实现比较合理,并不是说单独需要什么模式来实现。划重点:由于可 以准确预测业务量变化情况。所以不需要动态增加机器,所以报警任务不会选。 答案:ACD 3★91/765、阿里云的负载均衡SLB提供对多台云服务器ECS实例进行流量分发的服务,对于公网的负载均衡 SLB实例,支持 两种付费模式。(正确答案的数量:2个) 按使用流量计费 按固定带宽计费 C、按后端服务器台数计费 D、按照后端服务器的计算能力计费 提示:SLB支持按使用流量或者按照固定宽带付费。 答案:AB 1★92/765、在 OSS AP中通过 参数的操作可以实现设置 object头? A、 Multipart Upload B、 Get Object C、 Get bucket Copy Object 提示: Copy object接口可以发送一个Put请求给OSS,并在Put请求 Header中添加元素x- oSS-copy-Source来指定源 Object 答案D 1★93/765、无论伸缩组内是否有伸缩活动,都可以停用伸缩组。 A、对 错 提示伸缩组里面有伸缩活动正在执行的时候,不可以停用伸缩组。强制停用可能会导致伸缩组伸缩异常。 答案B 5★94/765、您在通过 Open AP制作阿里云的云服务器ECS实例的自定义镜像的时候失败了,有可能是 原因引起的。(正确答案的数量:3个) 选择数据盘快照制作 B、选择系统盘快照制作 、没有设置自定义镜像的名称 D、没有设置自定义镜像的描述 提示:云服务器ECS实例的自定义镜像的时候失败了,因为自定义镜像本身就是用系统盘快照来制作的,所以不 会是选择系统盘快照制作导致的,可能是选择数据盘快照制作导致的,同时制作镜像时,自定义镜像的名称和 自定义镜像的描述都是必须的不可为空。 答案:ACD 1★95/765、使用了阿里云CDN后,如果缓存命中率比较低,可能的原因是(正确答案的数量:4 个) 、缓存配置不合理,针对某些文件设置较短,导致CDN节点频繁回源 Http Header设置导致无法缓存,需要用户检査源站的 Cache- Control设置或者 Expires的设置 源站动态资源较多,多为不可缓存的内容,也会导致频繁回源拉取 网站访问量较低,文件热度不够,CDN收到请求较少无法有效命中缓存 提示题目考察的是缓存命中率比较低的原因,相关链接 答案:ABCD 1★96/765、阿里云专有网络ⅴPC内部存在虚拟交换机和虚拟路由器,可以像传统网络环境一样划分子网,每 个子网内的云服务器ECS实例之间使用同一个虚拟交换机互联,不同子网间的ECS实例之间使用虚拟路由器互 B、错 提示:不同专有网络之间通过隧道ID进行隔离。专有网络内部由于交换机和路由器的存在,所以可以像传统网 络环境一样划分子网,每一个子网内部的不同云服务器使用同一个交换机互联,不同子网间使用路由器互联。 相关链接 答案:A 297765、阿里云的云盾的先知计划,是调动众多网络安全专家的力量一起维护互联网平台和业务的安全,降 低客户的安全损失。适合使用先知计划的用户包括 。(正确答案的数量:3个) A、网站曾经被入侵,导致数据被泄露或者业务被篡改,造成公关风险,影响了公司形象和业务,正在寻求互联 网安全解决方案 网站漏洞多次被曝光,被竞争对手恶意炒作,正在寻求互联网安全解决方案 、买了很多安全产品和设备,但还是出现被攻击和入侵的情况,正在寻求互联网安全解决方案 D、用户的业务全部部署在自己的局域网,在公共互联网上无法访问,正在寻求内网安全的解决方案 提示排除法,用户的业务全部部署在自己的局域网,则在公网无法访问,所以无法适用于先知的使用场景。 答案:ABC 4★98765、您在阿里云的帐号A下基于云服务器ECS实例搭建好了Web应用服务,如果需要在另一个阿里云的帐 号B中快速创建包含相同应用的云服务器ECS实例,可以通过方式最高效的实现 A、在帐号A中创建该云服务器ECS实例的自定义镜像,并将该镜像共享给帐号B,帐号B基于该共享镜像进行新 的云服务器ECS实例的创建 B、直接在帐号B中申请云服务器ECS实例并进行相同的web应用的部署 C、在帐号A中进行该云服务器ECS实例的快照创建,并将该快照共享给帐号B,基于该快照进行新的ECS实例的 创建 D、其他方式都不可以完成 提示:共享镜像可用于跨账号部署ECS实例。创建自定义镜像后,您可以将镜像共享给其他阿里云账号使用。该 账号可使用您共享的自定y竟像,快速创建运行同一镜像环境的ECS实例。相关链接 答案:A 3★99765、使用阿里云的负载均衡SLB实例时,通过会话保持可以实现与某个连接( Session)相关的所有应用 请求能够由同一台后端云服务器ECS实例进行处理。为了在七层协议转发中,实现基于 cookie的会话保持,阿里 云的负载均衡SLB提供了处理方式。(正确答案的数量:2个) 植入 、 Cookie重写 C、 Cookie跟踪 D、 Cookie校验 提示HTTP/Https监听可使用植入cookie和重写cookie来进行会话保持。相关链接 答案:AB 3★100/765、某公司使用阿里云产品作为企业门户网站的解决方案,通过负载均衡SLB服务转发客户请求到后端 的云服务器ECS实例中去处理。目前他们要在网站中新增加一个库存查询的功能,需要访问云数据库RDS实例, 他们的方案是:把RDS实例挂到SLB实例的后端服务器池中,在现有的SLB实例上多配置一个监听( Listener) 专门负责监听库存查询的需求,然后把需求分发给RDS实例处理。 A、对 B、错 提示:负载均衡SLB只支持负载ECS,其他云产品都不支持负载。更不支持在SLB实例上多配置监听以及给RDS分 发请求。 答案B 5★101/765、您将业务部署在阿里云上时,可以通过将业务的模块进行拆分、采用多个低配置的云服务ECS实例 结合负载均衡SLB的方案,来提高业务的整体可用性。 对 B、错 提示:这个是上云实践中的描述,可以将业务拆分为多个模块,在多个低配置的云服务ECS实例结合负载均衡SLB 的方案,来实践业务的高可用。 答案:A 3★102765、阿里云弹性伸缩( Auto Scaling)中,伸缩组是一组部署了相同应用的云服务器ECS实例的集合。以下 关于伸缩组的说法中正确的是? 当伸缩组对应的伸缩规则的条件触发后,弹性伸缩会根据设定的伸缩规则添加或者减少伸缩组中的云服务器 ECS实例 B、伸缩组是云服务器ECS实例的资源池,当实际应用中需要添加计算资源时,会从伸缩组中获取可用的ECS实 例,添加到应用中去 C、伸缩组是云服务器ECS实例的资源池,弹性伸缩会预先创建一定数量的云服务器ECS实例放在伸缩组中 D、伸缩组是监控的目标,其中的云服务器ECS实例,必须是由阿里云弹性伸缩基于相同的镜像自动创建的 提示:阿里云弹性伸缩( Auto Scaling)的基础知识。服务器ECS实例可以是自己创建,也可以自动添加闲置的云 服务器ECS资源。 答案:A 3★103/765、阿里云对象存储OSS是阿里云提供的海量、安全、低成本、高可靠的云存储服务。在OSS里存储文 件前首先要创建一个存储空间 Bucket,之后才能在 Bucket中进行文件的上传和管理。以下有关 Bucket的描述中正 确的包括 (正确答案的数量:3个) 、同一个 Bucke内部的空间是扁平的,所有的对象都是直接隶属于其对应的 Bucket 、每个用户可以拥有多个 Bucket 、 Bucket的名称在OSS范围内必须是全局唯一的,一旦创建之后无法修改 D、 Bucket在创建时需要指定容量上限 提示 Bucke容量是没有上限的,所以无需在创建时指定。 答案ABC 3★104/765、当您发现无法将指定的阿里云的块存储挂载到某台的云服务器ECS实例上时,可能是 原因 造成的。(正确答案的数量:2个) 云服务器ECS实例已经挂载的数据盘数量达到上限 购买的块存储和云服务器ECS实例不在同一个可用区 C、云服务器ECS实例处于已停止状态 D、云服务器ECS实例没有公网PP 提示:题目中所说的是无法将数据盘挂载到ECS上面,请分析一下原因。分析一下挂载云盘的注意事项:,发现 台ECS实例最多能挂载16块云盘作数据盘用,且云盘只能挂载到同一地域下同一可用区内的实例上,不能跨可 用区挂载。相关链接 答案:AB 4★105/765、您需要在阿里云上创建云服务器ECS实例, 因素可能导致您创建的云服务器ECS实例的所 产生的费用不同。(正确答案的数量:4个) 云服务器ECS实例的地域 B、云服务器ECS实例的付费模式 、云服务器ECS实例的镜像类型 D、将要部署在云服务器ECS实例上的应用不同 、云服务器ECS实例的公网带宽不同 提示服务器ECS实例上的应用不同不会影响到ECS的定价 答案:ABCE 2★106/765、您通过阿里云的云监控服务为某台云服务器ECS实例的磁盘使用率设置了1条报瞀规则:统计周期 为5分钟,磁盘使用率平均值超过80%,连续探测5次超过阈值后就报警。如果您的磁盘平均使用率超过80%后, 至少需要几分钟后可以收到报警? A、0分钟 B、30分钟 C、40分钟 D、20分钟 提示连续五次超过阈值就报警,问的是最少的时间。所以可以假设刚启动云监控就开始第一次探测超过阈值。 所以后面一共只需要四个探测周期就可以报警了。所以时间为5分钟*次=20分钟。 答案D 3★107/765、某O20网站基于阿里云的云服务器ECS、负载均衡SLB以及弹性伸缩( Auto Scaling)搭建了线上 系统,其中ECS用来处理用户响应,SLB用来分发流量,弹性伸缩负责动态分配资源以满足突发的业务变化,三 个产品配合可以提供稳定、便捷、低成本的服务。现在想要增加云数据库RDS到该架构中来,用来保存用户访问 时产生的数据。以下说法中正确的是? A、如果在伸缩组中指定了RDS实例,则弹性伸缩会自动把伸缩组中的ECS实例的P地址添加到RDS的白名单中 去,无需手工设置 B、可以把RDS实例直接挂在SLB下,由SLB按照转发规则分配任务到RDS实例进行处理 C、可以把RDS实例手工添加到伸缩组,RDS实例可以保存用户访问的数据 D、对RDS实例所在的地域( Region)没有硬性规定,但是建议和弹性伸缩在同一个地域,可以减小网络传输的 延迟,提升响应速度 提示弹性伸缩( Auto scan.g)与SLB/RDS紧密集成,可以自动管理SLB后端服务器和RDS白名单,节省操作成 本。参考弹性伸缩产品优势链接:相关链接 答案:A 5★108/765、您在阿里云的云服务器ECS实例的使用中,要创建新的安全组规则时,不可以规定 类型的 授权。 A、IP授权 B、端口授权 C、MAC授权 D、安全组授权 提示:安全组规则是不支持MAC授权的。 答案C 3★109765、阿里云弹性伸缩( Auto Scaling)是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服 务。为了在弹性伸缩创建的ECS实例中可以直接正常处理用户请求,无需任何额外的系统调度和配置,弹性伸缩 的云服务器ECS实例中部署的应用必须满足 A、无状态且可横向扩展的 B、有状态 C、无状态且符合幂等性的 D、所有数据保存在ECS实例磁盘上 提示:弹性伸缩主要是ECS的横向伸缩,同时也是服务的横向伸缩,弹性伸缩要求每台ECS是无状态的,否则不能 保证数据的统一。相关链接 答案A 4★110765、阿里云负载均衡SLB实例中的后端服务器ECS实例需要设置权重,可以给对外服务能力更强的ECS 实例设置更大的权重,这些ECS实例就会有机会处理更多的访问请求。在提供稳定服务的同时,充分的利用了已 有资源。如果将一台ECS实例的权重设置为0,以下说法正确的是。 A、该ECS实例不会再得到负载均衡SLB实例分发的外部访问请求 B、所有外部访问请求都被分发到这台ECS实例上 C、该ECS实例会被认为状态异常,负载均衡SLB会把它移出后端服务器池 D、负载均衡SLB会分发外部请求给这台ECS实例,分发量的大小等于总请求数除以后端服务器ECS实例个数 提示将负载均衡后端ECS的权重置零,新发起的业务请求是无法经负载均衡转发到该服务器的,健康检查相应 的会显示异常。所以该ECS实例不会再得到负载均衡SLB实例分发的外部访问请求。相关链接 答案:A 4★11/765、云产品的可用区指的是一套独立的基础设施,不同的可用区之间基础设施(网络,电力和空调等 相互独立,即一个可用区出现基础设施故障不影响另外一个可用区。下列关于阿里云ECS的可用区说法正确的 是 可用区是在用户购买时指定的,购买后不支持更改 B、可用区之间内网互通 C、可用区内网络延时最高不超过1s D、若要提高应用的容灾能力则可以将实例创建在同一可用区 提示:只有在同一个地域前提下,可用区之间的内网才是互通的。可用区是指在同一地域内,电力和网络互相独 立的物理区域。所以云产品一旦购买了,不支持更改可用区。 答案:A 1★112765、中国大陆范围内的网站都需要做CP备案,在架构设计时应该告诉客户提前就需要准备提 交备案? 网站上线前一天 B、网站上线当天 C、网站上线前一周 、网站上线前一个月 提示:为了保证网站能按时上线,需要在网站上线前一个月提交备案资料,保证留有充足的备案时间来完成备案 操作。 答案D 4★113/765、ECS服务器会对每个访问的请求进行身份验证,以下哪一个是用于标识访问者身份的? A、 Access Key Secret B、 RequestId Access Key Id D、 User name 提示注意不是 Access Key Secret, Access Key Secret是用来鉴权校验的, Access Key Id是用来区分用户的。阿里 云 access key ID和 access key secret是您访问阿里云AP的唯一凭证。 Access key D是类似身份的标识,而 access key secret的作用是签名您的访问参数,以防被篡改。 Access key secret类似您的登录密码,不要向任何人泄漏。 相关链接 答案:C 1★114765、如果用户需要创建SB实例,为了能够真正的实现应用的负载分担,那么要保证至少要有 个ECS实例? A、5个 B、2个 C、3个 D、1个 提示:因为题目中强调了需要真正实现负载的分担,所以至少需要两台ECS配合才能实现。 答案B 3★15765、云计算一个重要特点是弹性,阿里云的用户可以根据业务需求和策略实现计算资源的自动调整。在 业务量高峰时增加ECS实例来提升系统的处理能力,在业务量低谷时自动减少ECS实例以节约成本。针对此场 景,阿里云的 产品可以和云服务器ECS实例配合使用实现弹性计算。 A、云数据库RDS B、负载均衡SLB C、弹性伸缩 Auto Scaling D、专有网络ⅤPC 提示:题目中说需要自动根还有业务量来自动调节ECS实例的数目,所以需要选择弹性伸缩 Auto Scaling 答案:C 1★116765、以下哪些状态属于ECS生命周期中的稳定状态?(正确答案的数量:3个) 、运行中 B、已停止 、已过期 D、停止中 提示:稳定状态为已停止,运行中,停止中和创建中均为中间状态,特别注意运行中是稳定状态而非中间状态。 答案:ABC 1★117765、阿里云的负载均衡SLB中的证书( Certificate)用于 Https协议,在需要使用加密协议时,用户可 以将证书上传至负载均衡SLB实例中,在创建 Https协议监听时绑定证书,提供 Https服务。目前阿里云的负 载均衡SLB只支持 格式的证书。 、PEM B、P7B C、PFX D、DER 提示:负载均衡只支持PEM格式的证书。相关链接 答案:A 3★18765、使用阿里云弹性伸缩( Auto Scaling)来实现计算资源的弹性配置时,做了如下设置:伸缩组的属性中 设置 Min size=6, MaxSize=8,伸缩规则为“减少5台ECS”,伸缩配置也进行了正常的配置。该伸缩组当前的云服 务器ECS实例数为8台,通过设置定时任务来执行,执行一次后,会减少 云服务器ECS实例。 A、1 B、2台 C、0台 D、5 提示 Min size=6,8-6=2 答案B 1★119765、阿里云弹性伸缩( Auto Scaling)经常会和云服务器ECS、负载均衡SLB、云数据库RDS等产品配合 使用,以下说法中正确的是 Δ、弹性伸缩必须和云服务器ECS一起使用 B、弹性伸缩可以单独使用,不依赖于其他任何产品 C、弹性伸缩必须和云数据库RDS一起使用 D、弹性伸缩必须和负载均衡SLB一起使用 提示:此题有争议,之前的答案是可以单独使用,我上机测试,ECS最小为1,故修改答案必须和ECS一起使用 答案:A 3★120765、阿里云弹性伸缩( Auto scaling)的冷却时间是指在同一个伸缩组内,当有一个伸缩活动被成功执行后 的一段锁定时间内,该伸缩组不执行其他的伸缩活动。以下关于冷却时间的开始计时的时间点的说法正确的是? A、当伸缩组加入或移出多个ECS实例时,最后一个ECS实例加入或移出完成后,整个伸缩组冷却时间开始计时 B、当伸缩组加入或移出多个ECS实例时,第一个ECS实例加入或移出完成后,整个伸缩组冷却时间开始计时 C、伸缩活动结束后,冷却时间马上开始计时 D、伸缩活动开始后,冷却时间马上开始计时 提示:伸缩活动中,最后一个ECS实例加入或移出完成后,整个伸缩组冷却时间才开始计时 答案:A 3★121/765、阿里云对象存储OSS是阿里云对外提供的海量、安全、低成本,高可靠的云存储服务。除了基本的 存储功能外,OSS还提供了强大的图片处理能力,可根据实际业务需要对图片进行加工和转换。OSS的图片处理 能力包括 (正确答案的数量:3个 图片缩放、添加水印 图片格式转换(例如:由jpg转换成png 图片360度范围内旋转 D、OCR文字识别(将图片中的文字直接转成文本) 提示:OSS目前不具备OCR文字识别的处理能力。 答案:ABC 1★122/765、对安全组的操作调整,对用户的服务连续性没有影响 B、错 提示:对安全组的调整操作,对用户的服务连续性没有影响。这个是文档的原话,解释就是:用户操作了安全 组,可能会导致请求访问ECS失败,但是并不会影响到ECS上面服务的运行。 答案:A 2★123/765、阿里云内容分发网络CDN建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的 分布式网络替代传统以 WEB Server为中心的数据传输模式。如果用户在使用CDN的过程中发现CDN缓存的”命 中率“比较低,可能的原因是 。(正确答案的数量:4个) A、网站访问量较低,文件热度不够,CDN收到请求较少无法有效命中缓存 B、缓存配置不合理,针对某些文件设置较短,导致CDN节点频繁回源 Http Header设置导致无法缓存,需要用户检查源站的 Cache- Control设置或者 Expires的设置 D、源站动态资源较多,多为不可缓存的内容,也会导致频繁回源拉取 E、开通CDN时选择的带宽不足,服务能力已达到上限 提示:排除法,CDN是按照按每日带宽峰值计费,所以不存在带宽不足,服务能力达上限的问题 答案:ABCD 2★124/765、阿里云对象存储OSS的图片处理服务中,所有对图片的转换参数都会加在图片文件的URL后面,使 URL变得冗长,不方便管理与阅读。为了简化操作,OSS图片处理服务提供了 功能,可以将常见的转换 参数保存起来多次使用。 A、样式 B、方案 C、短网址 D、管道 提示:相关链接 答案:A 3★125/765、针对阿里云专有网络VPC内的云服务器ECS实例,可以通过安全组来进行ECS实例的访问控制配 置。以下说法中正确的是。 A、一个安全组中可以包含同一个可用区的不同ⅤPC里的云服务器ECS实例 B、一个安全组中可以包含同一个地域的不同VPC里的云服务器ECS实例 C、一个安全组中仅可以包含同一个可用区的同一个VPC内的云服务器ECS实例 D、一个安全组中可以包含同一个地域的同一个专有网络VPC内的云服务器ECS实例 提示:专有网络VPC里面的交换机支持部署在同一地域的不同可用区,专有网络ⅤPC类型的实例可以加入同一专 有网络(VPC)下的安全组 答案D 3★126/765、阿里云官网有很多阿里云内容分发网络CDN与其它云产品组合的方案与业务场景供用户参考。以 下选项中场景适合使用阿里云内容分发网络CDN。(正确答案的数量:3个 A、日访问次数低于100的BBS论坛 日访问次数大于10万次的阿里云虚拟主机纯静态站点 某中型电商类网站中的图片、html、css、js文件 D、新闻门户网站,日访问人数超过3000万次,用户遍布全国各地 提示:日均低于100的访问次数,不适合用CDN,因为热点不够,可能不足够形成CDN热点文件。同时从成本出发 也不适合使用。 答案BCD 3★127/765、阿里云的云盾态势感知用大数据分析技术,按攻击者的视角来建立安全防御体系,颠覆了传统单 的入侵和漏洞检测,让用户对安全可见、可控、可管”。以下关于态势感知功能的描述错误的是。 A、可以发现 webshell,恶意病毒攻击 B、利用大数据,可对高级攻击者使用的oday漏洞攻击进行防御 C、实时捕捉云服务器ECS实例中的网络连接,利用情报信息做异常识别,发现僵尸网络 D、是一个针对阿里云服务器ECS的托管服务 提示:态势感知是对云上资产的诊断服务,服务器安全托管服务才是对ECS的托管。相关链接 答案D 3★128765、某新媒体公司通过手机APP提供新闻资讯服务,采用阿里云弹性伸缩( Auto Scaling)来实现动态 添加或者减少云服务器ECS实例,来应对业务量的变化。该公司的业务人员和技术人员相互配合,估算出他们所 需要的资源为闲时10台ECS,但是有几个时间段业务量会比较多,基本上集中在7:30到9:00,18:30到20:00,随 着时间点的不同,所需的ECS实例在10到20个之间动态变化。他们在伸缩组中将最小实例个数设置为10,最大实 例个数设置为20。从容易部署以及节省成本的角度来考虑,他们还需要配置一个什么模式的任务? A、动态模式 B、定时模式 C、固定数量模式 D、lazy模式 提示题目中说了,ECS在这發时间内是动态变化的,以及要从节省成本的角度出发,定时任务一下子从10台增 加到20台,这样虽然满足业务要求但是成本增加了,所以选择动态任务既可以满足要求还可以根据需求适当扩展 ECS减少成本。 答案:A 1★129765、如果您不再需要某个阿里云的按量付费的云服务器ECS实例,可以将其释放。关于按量付费的实例 释放的操作中,错误的是 A、您可以再次设置自动释放的时间并覆盖前一次的设置 B、通过定时释放设置为您的按量付费实例安排释放计划,选择一个未来的时间释放资源 C、不可以随时释放按量付费的实例 D、可以立即释放该按量付费的实例 提示:自动释放时间可以多次设置,且随时可以取消之前的设置,实现随时释放按量付费的实例。 答案:C 3★130/765、阿里云的云监控( CloudMonitor)是一项针对云资源和互联网应用进行监控的服务。云监控服务 当前提供 功能。(正确答案的数量:4个) A、站点监控 、云服务监控 C、自定义监控 报警服务 E、自定义防火墙 提示:云监控包含了主机监控,自定义监控,站点监控,云服务监控,报瞀服务。相关链接 答案:ABCD 2★131/765、某大型购物商城新上了一套视频监控系统,在商城所在一个5层高的大楼里共安装了35个高清摄像 头,用于监控主要的出口通道。该系统的应用部署在一台阿里云的云服务器ECS实例上,该ECS实例上挂了4块 2T的数据盘来存储视频数据。上线后一周后发现视频数据的增速过快,预计8T硬盘不出1个月就会用完。您认 为使用阿里云的 产品可以最好地解决该客户的存储问题,同时在需要的时候快速读取到历史的视频数 据 A、归档存储( Archive Storage) B、多台云服务器ECS C、对象存储OSS D、内容分发网络CDN 提示:题目中要求需要解决类据增长过快的问题,需要可以通过将视频文件存储到OSS中来解决问题,因为OSS没 有空间上限,不需要担心曾长过快的问题,同时还可以满足快速读取的要求。(归档存储无法快速读取数据) 答案:C 3★132/765、阿里云的云盾的先知计划,是调动众多网络安全专家的力量一起维护互联网平台和业务的安全,降 低客户的安全损失。先知计划为企业提供的是 服务。 为企业收集情报(漏洞」 B、为企业保障服务器安全 C、为企业保障网络安全 D、用大数据的方式为企业进行安全分析 提示:先知(安全众测)是一个帮助企业建立私有应急响应中心的平台(帮助企业收集漏洞信息),尽早发现存 在的漏洞可以有效地减少企业可能的损失。相关链接 答案:A 1★133765、阿里云的云服务器ECS拥有与传统服务器和虚拟主机无法企及的优势。阿里云基于基于边界网管协 议( Border gateway Protocol,BGP)的最优路由算法提供多线接入。以下关于云服务器ECS的多线BGP接入说 法正确的是。(正确答案的数量:3个) A、阿里云在骨干机房有出口带宽大和云服务器独享的出口带宽的特点 B、多线接入与云服务的质量无关 通过BGP多线机房,实现全国访问流畅均衡 D、通过多线接入可以实现更高的云服务质量 提示:多线接入与云服务的质量是有关系的。 答案:ACD ★134/765、经典网络的内网网段不支持用户自定义,专有网络用户可自定义内网网段。 对 B、错 提示:经典网络的都是随系统分配,不支持用户自定义网段。ⅤPC网络可以支持用户自由定义网络,按需配置 网络,可自定义P地址范围与路由表等。 答案:A 3★135/765、在创建阿里云的云产品实例时,可以选择默认类型的专有网络VPC和交换机,这两项配置确定了专 有网络类型的云产品创建时在相应地域和可用区下唯一的默认网络位置,与非默认的专有网络和交换机之间的区 别主要在于默认类型的VPC和交换机只能由阿里云为您创建。下列关于默认交换机的描述错误的是 A、默认交换机只能创建在默认专有网络中 B、如果您有已经创建的专有网络vPC和交换机,在创建专有网络VPC类型的云产品实例时,云产品实例就不会 创建在默认交换机中 C、默认交换机与非默认交换机支持相同操作方式,且规格限制一致 D、默认交换机由阿里云为您创建,您自行创建的均为非默认交换机 提示默认专有网络与非默认专有网络的操作方式与规格限制一致。相关链接 答案B 3★136/765、您开通了阿里云的云服务器ECS实例之后,可以免费开通云盾的安全能力对您的云服务器 ECS实例的安全进行保护。(正确答案的数量:3个) 、DDoS基础防护 B、内容安全 、安骑士 D、服务器安全托管 提示服务器安全托管不属于云盾功能,而是属于安全管家的服务。 答案:ABC 3★137765、阿里云弹性伸缩( Auto Scaling)提供了“弹性自愈”功能,能保持伸缩组中的云服务器ECS实例都 处在正常状态,从而使业务始终保持正常的负载,提高系统的稳定性。关于“弹性自愈”,以下说法中正确的是? A、如果伸缩组中某台ECS实例状态不是运行中,则该ECS实例会被移出伸缩组,同时自动创建一台新的ECS实 例,添加到伸缩组中来 B、如果伸缩组中某台ECS实例的状态不是运行中,阿里云弹性伸缩会启动ECS实例的故障检查与修复进程,对 ECS实例进行自动修复 C、如果伸缩组中某台ECS实例状态不是运行中,阿里云弹性伸缩首先会自动重启该ECS,重启成功后继续保持 在伸缩组中,如果重启失败,则从伸缩组中移除,同时创建新的ECS实例键入到伸缩组中来 D、如果伸缩组中某台ECS实例状态不是运行中,阿里云弹性伸缩首先会自动重启该ECS,重启成功后继续保持 在伸缩组中,如果重启失败则会使用指定的镜像恢复该ECS实例到初始状态,继续保持在伸缩组中 提示弹性自愈即当检测某台ECS实例处于不健康状态时。弹性伸缩自动释放不健康ECS实例并创建新的ECS实 例,自动添加新ECS实例到负载均衡实例和RDS实例的访问白名单中。最后的介绍。相关链接 答案:A 3★138/765、某企业利用某公共云服务,租用了若干台虚拟机,并把这些虚拟机放在一个隔离的虚拟网络中,可 以完全掌控自己的虚拟网络,包括选择自有I地址范围、划分网段、配置路由表和网关等,这个虚拟网络在公 共云服务中通常称作 A、SDN服务 B、NFV服务 C、VPC服务 D、VPN服务 提示题目中说需要构建隔离的虚拟网络,所以需要用到阿里云专用网络VPC服务。 答案:C 3★139765、阿里云弹性伸缩( Auto scaling),是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服 务。支持用户添加已有的云服务器ECS实例,但该云服务器ECS实例的状态必须为 运行中 B、已创建 C、已停止 D、准备中 提示弹性伸缩手动添加ECS,ECS的状态必须为运行中。 答案:A 1★140765、下列哪种 状态表示负载均衡SLB后端服务器的状态表示未开启SLB健康检查? 、 unavailable B、 available C、 abnormal D、 normal 提示:负载均衡SLB后端服务器的状态为 unavailable的时候表示其未开启健康检查,相关链接 答案:A 1★141/765、以下是ECS实例数据盘挂载点的是 ?(正确答案的数量:3个) 、/dev/xvdz B、/dev/xvdd C、/dev/xvda D、/dev/xvdb 提示:正常情况下用 fdisk-l命令,可以査看到新增的硬盘。/dev/xvda为系统盘,/ dev/]vdb dev/xdc./ dev/xvdz都是 数据盘。所以/ dev/avda为系统盘不会选择。 答案:ABD 3★14/765、阿里云对象存储OSS提供了海量的文件存储能力,对于文件管理除了支持简单上传、断点续传和大 文件分片上传功能外,还提供了多种删除文件的功能。如果需要删除的 Object数目很多,而且删除的 Object是有 定的规律,比如定期删除某些天之前的 Object,或者干脆是要清空整个 Bucket,特别适合使用哪个功能来完 成? A、管理控制台逐个删除 B、管理控制台批量删除 生命周期管理 D、通过 OpenAPI逐个删除 提示:题目中说需要比如定期删除某些天之前的 Object,所以可以通过生命周期管理来管理最合适。 答案:C 3★143/765、路由表是阿里云专有网络VPC路由器上管理路由条目的列表,路由条目定义了通向指定目标网段的 网络流量的下一跳地址。路由表支持通过方式进行配置。(正确答案的数量:2个) A、远程登录到路由器进行控制 B、专有网络PC的管理控制 C、进入机房直接对路由器进行控制 、阿里云VPC的 OpenAPI 提示:您可以通过专有网络VPC的管理控制台以及专有网络VPC的相关路由表接囗来管理配置路由表,相关链接 答案BD 1★144/765、当云服务器ECS实例选择了 Centos系统时,本地为 Windows操作系统,采用 方式无法正 确的登录该ECS实例 A、阿里云管理控制台 B、 SecurecrT C、 Putty D、 Windows自带的远程桌面客户端 提示: Windows自带的远程桌面客户端只能连接 Windows系统的远程界面,不能连接 Centos系统( Linux系统)。 答案D ★145/765、下列 参数代表的是负载均衡SLB实例的唯一标识? 、 LoadBalancerld B、 RegionId C、 Address D、 LoadBalancername 提示:负载均衡实例即 Loadbalancerld是来区分不同负载均衡SLB实例的唯一标识 答案:A 2★146/765、关于阿里云的云盾DDoS高防IP服务支持的“线路类型说法正确的是 A、仅支持BGP+电信 B、仅支持电信+联通 C、仅支持联通+BPG+电信 D、仅支持电信+联通+BGP+HK线路 提示: 答案D 5★147/765、您启动了一台新的阿里云的云服务器ECS实例,要求此实例只允许开放80端口的公网访问。可以通 过以下哪个操作来实现此要求而不影响其它实例? A、在该实例所在的默认安全组添加一条公网访问规则仅允许80端口的公网入流量 B、在该实例所在的默认安全组添加一条公网访问规则仅允许80端口的公网出访问,并添加一条公网访问规则不 允许所有的公网出流量 C、新建一个安全组,并新增一条安全组规则允许80端口的公网入流量,将该云服务器实例放入该安全组 D、新建一个安全组,并新增一条安全组规则允许80端口的公网入流量,将该云服务器实例放入该安全组,并从 原先的默认安全组挪出 提示题目中要求ECS实例只允许开放80端口的公网访问,所以需要新增安全组规则,允许80端口的公网入方向 访问,将实例加入该组为了不影响其他实例,并将其从原先的默认安全组移出。 答案D 4★148/765、对阿里云的云服务器ECS实例进行停止操作之后,ECS实例将停止工作,从而中断您的业务,需谨 慎执行。由于停止操作之后ECS实例处于停止状态,阿里云将不再对该ECS实例进行收费。 A、对 B、错 提示:停机不收费仅面向于按量付费的ECS,包年包月的ECS关机仍然继续收费,只有在ECS实例到期后才不继续 收费。 答案B 4★149765、关于阿里云的云服务器ECS实例是否支持安装虚拟化程序的说法正确的包括 。(正确答案 的数量:2个) A、云服务器巸CS实例是基于虚拟化平台运行的,不支持部署虚拟化程序 B、可以在云服务器ECS实例中部署虚拟化程序,阿里云提供相应的技术支持 C、如果在云服务器ECS实例中部署虚拟化程序,会导致服务器出现不可预测的问题 D、如果在云服务器ECS实例中部署虚拟化程序,服务器出现的问题是可以预测的 提示]如果在云服务器ECS实例中部署虚拟化程序,服务器出现的问题是不可预测的。阿里云强烈不建议在云服 务器ECS实例中部署虚拟化程序,这样会导致云服务器ECS出现不可预测的问题。 答案:AC 3★150765、阿里云OSS图片处理服务( Image Service,简称IMG),阿里云OSS图片处理服务有哪些性能? (正确答案的数量:3个) 、海量图片处理 B、无成本 C、通过简单的 RESTful接口对图片进行处理 、可靠性高 提示OSS的图片处理为收费服务。所以是需要成本的。相关链接 答案:ACD 1★151765、阿里云的负载均衡SLB可以把用户请求分发给后端的云服务器ECS实例,这些云服务器ECS实例的 规格配置必须相同。 A 对错 提示:负载均衡SLB后端的ECS实例的规格可以不同,用户只要确保后端ECS实例中的应用服务部署相同且数据一 致即可。相关链接 答案B 2★152/765、阿里云的云盾加密服务采用 机制来保证密钥的安全。 、符合国家密码管理局要求的算法 B、符合银监会对密钥强度的要求 C、防篡改硬件密码机 D、国际通用密码算法 提示:加密服务是云上的数据安全加密解决方案。服务底层使用经国家密码管理局检测认证的硬件密码机。密码 机的关键还是加密算法,题目主要问的是机制,所以选择国家密码管理局检测认证的加密算法。 答案:A 4★153765、以下 安全功能需要单独购买,不是在创建阿里云的云服务器ECS实例的同时可以免费获得 的 A、基础DDoS防护 B、木马查杀 C、防暴力破解 、DDoS高防IP 提示DDoS高防P是需要付费购买的功能。基础DDoS防护是可以免费开通的。 答案D 2★154/765、如果阿里云上的用户拥有多台云服务器ECS实例,且没有专业的运维团队或者不愿意在运维上花精 力,可以开通阿里云的云盾安骑上,提供专家人工安全体检、清除木马、系统加固、人工安全技术支持、托管服 务报告。 A、正确 B、错误 提示:安骑士不提供人工安全技术支持、托管服务报告的服务,需要人工安全技术支持、托管服务报告的服务需 要选用安全管家服务。 答案B 1★155/765、对于阿里云态势感知典型的功能点描述正确的是 A、恶意进程查杀 B、漏洞检测和修复 C、外部风险扫描:如AK泄露、账密泄露 D、全量安全日志,自动化入侵回溯 E、其它选项都正确 提示:文档原文:态势感知具备异常登录检测、网站后门査杀、网站后门査杀、进程异常行为、敏感文件篡改、 异常网络连接、Liux软件漏洞、 Windows系统漏洞、 Web-CMS漏洞、应急漏洞、web漏洞扫描、主机基线、 云产品基线、资产指纹、AK和账号密码泄露、数据大屏、日志检索、全量日志分析。相关链接 答案E ★156/765、PFX是使用二进制的格式保存的个人证书,一般出现在 Windows server中,现在想把该格式的证书 上传到阿里云的负载均衡SLB实例,以下说法正确的是 A、负载均衡SLB不支持PFX格式的证书,只能先将其转换成PEM格式,再上传 B、负载均衡SLB支持PFX格式的证书,可以将其直接上传 C、负载均衡SLB不支持PFX格式的证书,只能先将其转换成DBR格式,再上传 D、负载均衡SLB不支持PFX格式的证书,只能先将其转换成P7B格式,再上传 提示:负载均衡只支持PEM格式的证书。假如是PFX格式或其他部分格式,需要现将其转换成PEM格式再上传。 相关链接 答案:A 3★157/765、用户通过网络使用软件,无需购买软硬件、建设机房等,而改用向提供商租用基于web的软件,来 管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件。这种模式是云计算提供的 服务。 、SaS(软件即服务) B、PaS(平台即服务) C、IaS(基础设施即服务) D、DaS(数据即服务) 提示:题目中说了是基于web的软件,消费者只需要通过网络使用软件,不需要管理和维护软件,所以选择 SaS(软件即服务)。 答案:A 1★158/765、您的两台阿里云的云服务器ECS实例之间内网不能通信,一定不是由于 原因引起的。 A、两台云服务器实例在不同地域 B、其中一台云服务器ECS实例修改过私网P C、两台ECS实例在同一个账号下,同一个地域的不同可用区 D、两个云服务器ECS实例在不同的安全组 提示两台云服务器ECS实例之间内网不能通信,题目中问的一定不是什么原因导致的,所以在同一账号的同 地域是不会导致云服务器ECS实例之间内网不能通信的。 答案:C 1.当ECS或SLB实例遭到DDoS攻击,DDoS攻击的流量超过对应的黑洞阈值后,该公网ip将被黑洞,所有来自外部的流量都将被丢弃,导致相关的业务无法正常访问。 2.在四层TCp协议服务中,当前不支持后端云服务器的ECS既作为RealServer,又作为客户端所在的负载均衡实例发送请求。因为,返回的数据包只在云服务器内部转发,不经过负载均衡,所以在负载均衡实例的后端ECS上去访问的负载均衡的服务地址是不通的 3.OSS的分享文件使用的是HTTP应用层(7层)的协议。 4.负载均衡SLB实例和后端云服务器ECS实例之间是通过内网通信的。 5.DDoS基础防护只能防护5GB以下的DDOS攻击,超过5GB的DDoS攻击需要用到DDoS高防IP。 6.PPPoE是很老的拨号协议,阿里云负载均衡SLB不支持此协议 7.四层服务的会话保持是基于源IP实现的,七层服务的会话保持是基于Cookie实现的。 8.云盾DDoS基础防护服务具有以下功能优势: 优质的防护线路 受到DDoS攻击不会影响访问速度;带宽充足,不会被其他用户连带影响;优质带宽保证业务可用和稳定。 精准防护 精准识别攻击,秒级开启防护;自研清洗设备和算法,保证极低误杀;单点多点清洗不会相互影响。 免安装免维护 无需采购昂贵清洗设备;自动为云上客户开通,免安装;智能业务学习和配置防护规则。 免费 基础DDoS防护免费;阿里云用户免费加入安全信誉防护联盟。 9.如需要确保在ECs实例上任务处理完成才让弹性伸缩释放该实例,需要在自定义镜像中存放执行脚本,并设置命令在操作系统关机时自动执行该脚本。 10.OSS中文件夹的概念仅是一个逻辑概念,在通过API/SDK的方式设置文件夹的时候可以指定object对应的key值包前面的目录即可是想该功能。 11.CDN节点系统关键组件有: LVS做四层均衡负载,Tengine做7层负载均衡 Swift做Http缓存。 12.配置和管理一个负载均衡SLB实例主要涉及操作:属性配置、监听配置、后端ECS实例配置 公网IP是购买SLB时系统分配的 或者是单端购买EIP后单独给SLB绑定。 13.阿里云的负载均衡SLB目前仅支持4层和7层的负载均衡。 14.实现不同地区的多个负载均衡SB的负载,需要通过DNS轮训来实现。 15.弹性伸缩(Auto Scaling)中既支持自动伸缩,也支持手动添加闲置的ECS实例,手动添加的ECS的规格配置不需要和伸缩配置中的配置相同。 16.阿里云CDN(内容分发网络)全称是Alibaba Cloud Content Delivery Network,简历并覆盖在承载网智商、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以WEB Server为中心的数据传输模式。CDN加速特别适合在站点访问量大,且静态资源被不同用户重复访问的比例高的场景中使用,重复访问率越高 加速效果越明显。 17.OSS在安全性方面:1.提供且业绩多层次安全防护;2.多用户资源隔离机制,支持异地容灾机制;3.提供多种鉴权和授权机制 及白名单、防盗链、主子账号功能。 18.OSS对象存储服务 每个Bucket存储空间的名称全局唯一,Bucket存储空间一旦创建成功,名称和所处地域不能修改。 19.ECS系统资源监控DashBoard页面内容:CPU使用率,磁盘IO,网络带宽。 20.SLB包含:来自外部的访问请求、Listener、LoadBalancer、BackendServer。 Listener:用户定制的监听器,定义了负载均衡策略和转发规则。 LoadBalancer:负载均衡实例; BackendServer:后盾的一组ECS 21.出于安全考虑,目前控制台针对私有bucket的获取URL链接签名操作做了优化,使用的AccessKey是临时生成的秘钥对,主账号用户最长有效时间是18小时,RAM子账户用户及sts用户最长有效时间是1小时,超时后链接就无法访问了。 22.OSS与自建存储相比:海量存储;低成本;安全;多线BGP接入 23.阿里云弹性伸缩创建伸缩组之后地域属性、负载均衡实例、RDS数据库实例不可以修改。 24.OSS:删除Bucket之前, 碎片文件也必须要一起删除。 25.在ECS上新挂载一块数据盘,可以使用和它同一个可用区鹅非系统盘快照来创建。 26.CDN快速入门操作流程:1.开通CDN服务;2。添加加速域名。3。配置CNAME 27.边界网关协议,简称BGP(Border Gateway Protocol),主要用于互联网AS(自治系统)之间的互联。BGP协议的最主要功能在于控制路由的传播和选择最好的路由。使用BGP高防可以解决跨运营商访问慢、部分小运营商访问不稳定的情况。 阿里云在骨干机房有出口带宽大和云服务器独享的出口带宽的特点; 多线接入与云服务的质量是有关系的; 通过BGP多线机房,实现全国访问流畅均衡; 通过多线接入可以实现更高的云服务质量 28.每个ECS实例最多可以加入5个安全组,当超过5个以后就无法继续加入其它安全组。 29.伸缩组包括:伸缩配置、伸缩规则、伸缩活动。 30.云盾先知计划是一个帮助企业建立私有应急响应中心的 平台(帮助企业手机漏洞信息)。 31.在服务器上手动安装安骑士时需要管理员权限。 32.删除交换机之前,必须先删除目标交换机所连接的云产品实例。 33.ECS实例和internet直接连通,一定要开启公网带宽或者绑定EIP。 34.CDN广泛用于网站和应用加速、音视频点播、文件等场景,通过高性能缓存机制,提高访问效率和资源可用性。 35.SLB支持按使用流量或者按照固定带宽付费。 36.在OSS API中通过CopyObject参数的操作可以实现设置object头:Copy Object接口可以发送一个Put请求到OSS,并在Put请求Header中添加元素x-oss-copy-source来指定源Object。 37.伸缩组里面有伸缩活动正在执行的时候,不可以停用伸缩组。强制停用可能会导致伸缩组伸缩异常。 38.CDN缓存命中率下降的原因:刷新缓存,可能导致短时间内命中率下降;带宽突增,会导致CDN节点回源较多,命中率会表现下降趋势;CDN节点访问新内容,导致CDN节点回源较多;缓存规则调整 39.不同专有网络之间通过隧道ID进行隔离。专有网络内部由于交换机和路由器的存在,所以可以像传统网络环境一样划分子网,每一个子网内部的不同云服务器使用同一个交换机互联,不同子网间使用路由器互联。 40.HTTP、HTTPS监听可使用植入cookie和重写cookie来进行会话保持。 41.一台ECS实例最多能挂载16块云盘作数据盘用,且云盘只能挂载到同一地域下同一可用区内的实力上,不能跨可用区挂载。 42.弹性伸缩 与SLB、RDS紧密集成,可以自动管理SLB后端服务器和RDS白名单,节省操作成本。 43.弹性伸缩: 功能概述: 根据客户业务需求自动调整ECS实例数量; 自动向负载均衡的后端服务器组中添加或移除相应的ECS实例; 自动向RDS访问白名单中添加或移除ECS实例的IP 产品特点: 随需应变:根据需求“恰到好处”地分配资源,无需提前预测需求变化,实施应对需求突增; 自动化:无需人工干预,自动创建和释放ECS实例,自动配置负载均衡和RDS访问白名单; 伸缩模式丰富:多模式兼容,可同时配置定时、动态、自定义、固定、健康模式,可通过API对接外在监控系统; 智能:智能调度云计算资源,应对各种负载场景。 44.安全组规则是不支持MAC授权的。 45.弹性伸缩主要是ECS的横向伸缩,同事也是服务的横向伸缩,弹性伸缩要求每台ECS是无状态的,否则不能保证数据的统一。 46.将负载均衡后端ECS的权重置零,新发起的业务请求是无法经负载均衡转发到该服务器的,健康检查相应的会显示异常。所以该ECS实例不会再得到负载均衡SLB实例分发的外部访问请求。 47.为了保证网站能按时上线,需要在网站上线前一个月提交备案资料,保证留有重组的备案时间来完成备案操作。 48.ECS服务器会对每个访问的请求进行身份验证:Access Key Secret是用来鉴权校验的,AccessKeyId是用来区分用户的。阿里云accessKeyId和accessKeySecret是访问阿里云API的卫衣凭证。Id是类似身份的标识,而secret的作用是签名您的反问参数 以防被篡改。类似于您的登录密码。 49.负载均衡只支持PEM格式的证书,上传证书前,确保证书、证书链、私钥符合规格要求: Root CA机构颁发的证书 -----BEGIN CERTIFICATE-----,-----END CERTIFICATE----- 每行64个字符,最后一行长度可以不足64 证书内容不能包含空格 中级机构颁发的证书 服务器证书放第一位,中级证书放第二位,中间不能有空行 证书不能包含空格,每行64字节不能有空行 证书公钥: RSA1024 RSA2048 RSA4096 ECDSA(P-256/P-384/P-521) 50.OSS目前不具备OCR文字识别的处理能力 51.对安全组的调整操作,对用户的服务连续性没有影响。 52.CDN内容分发网络 是安装每日带宽峰值计费,所以不存在带宽不足,服务能力达上限的问题。 53.对图片进行处理后,所有的操作都会以参数形式加在图片的URL之后,导致图片URL变得冗长,不便于管理与阅读。OSS的图片处理服务允许您将常见的操作保存为一个别名,即样式(Style)。利用样式功能,只需一个很短的图片URL就能实现对图片的复杂操作。 54.专有网络VPC里面的交换机支持部署在同一地域的不同可用区,专有网络VPC类型的实力可以加入同一专有网络VPC下的安全组 55.云监控包括了:主机监控、自定义监控、站点监控、云服务监控、报警服务。 56.先知(安全众测)是一个帮助企业建立私有应急响应中心的平台(帮助企业收集漏洞信息),尽早发现存在的漏洞可以有效地减少企业可能的损失。 57.经典网络的IP都是随系统分配,不支持用户自定义网段。VPC网络可以支持用户字由定义网络,按需配置网络,可自定义IP地址范围与路由表等 58.默认专有网络和非默认装有网络的操作方式与规格显示一致 59.云盾的DDoS基础防护、内容安全、安骑士 的安全能力对云服务器ECS实例的安全进行保护 服务器安全托管不属于云盾功能,而是属于安全管家的服务。 60.弹性自愈即当检测到某台ECS实例出于不健康状态时,弹性伸缩自动释放不健康ECS实例并创建新的ECS实例,自动添加新ECS实例到负载均衡实例和RDS实例的访问白名单中。 61.弹性伸缩手动添加ECS,ECS的状态必须是运行中。 62.负载均衡SLB后端服务器的状态为unavailable的时候表示其未开启健康检查。 63.正常情况下用fdisk -l命令,可以查看到新增的阴干。 /dev/xvda为系统盘,/dev/xvdb /dev/xvdc .../dev/xvdz都是数据盘 64.可以通过专有网络VPC的管理控制台 以及 专有网络VPC的相关路由表接口来 管理配置路由表 65.负载均衡实例ID即LoadBalancerId是来区分不同负载均衡SLB实例的唯一标识。 66.如果在云服务器ECS实例中部署虚拟化程序,服务器出现的问题是不可预测的。阿里云强烈不建议在云服务器ECS实例中部署虚拟化程序,这样会导致云服务器ECS出现不可预测的问题。 67.安骑士不提供人工安全技术支持、托管服务报告的服务,需要 人工安全技术支持、托管服务报告的服务需要选用安全管家服务。 68.态势感知: 具备异常登陆检测、网站后门查杀、进程异常行为、敏感文件篡改、异常网络连接、linux软件漏洞、windows系统漏洞、Web-CMS漏洞、应急漏洞、Web漏洞扫描、主机基线、云产品基线、资产指纹、AK和账号密码泄露,数据大屏,日志检索、全量日志分析。 SaaS软件即服务 PaaS平台即服务 IaaS基础设施即服务 DaaS数据即服务 70.阿里云的专有网络VPC中用于连接VPC内的各个交换机的设备是 路由器和交换机 路由器(VRouter)是专有网络的枢纽,作为专有网络中重要的功能组件,它可以连接VPC内的各个交换机,同时也是连接VPC和其他网路的网关设备 71.互联网的一次标准的网络层会话可以用五个元素来唯一标识,通常称为“网络通信五元组”:源IP地址,源端口,目的IP地址,目的端口 和传输层协议 72.绿网(现:内容安全) 73.防WEB应用系统的密码破解不属于安骑士的功能,而是属于Web应用防火墙的功能。 74.弹性伸缩的伸缩规则定义了具体的扩展或收缩操作,例如加入或移除n个ecs实例 75.负载均衡SLB是对堕胎云服务器ECS实例进行流量分发的负载均衡服务,支持四层和七层的转发协议。其中四层服务主要是依据a、报文中的目标IP地址和端口;b、负载均衡SLB中设定的转发策略和规则把流量分发到对应的云服务器ECS实例上去。 76.oss中的文件夹其实就是一个大小为0kB的空文件(叫文件 Object 元素都可以)。 77.XSS 即为Cross Site Scripting 跨站脚本 时发生在目标用户的浏览器层面上的,当渲染DOM树的过程中发生了不在预期内执行的JS代码时,就发生了XSS攻击。 78.同一个安全组下的ECS实例默认是内网互通的,不同的安全组下ECS默认是内网不通的。 同一账号在同一地域的情况下,通过安全组实现内网互通,要么在同一个安全组下面,要么是两个安全组相互授权对方可以访问。 79.负载均衡SLB实例提供后端云服务器ECS视力健的数据自动同步功能,采用的是rsync的远程同步技术 在通过负载均衡SLB实例对外提供服务前,只需要确保SLB后端有一天ECS应用正常运行 80.用户只有通过URL签名 或者 匿名访问Object时,才会做防盗链验证。 81.阿里云的负载均衡SLB中的listener是服务监听,每个监听都对应了后端的一个应用服务。服务监听包含:监听端口 ;负载均衡策略;健康检查配置 82.DDoS(分布式拒绝服务)攻击,是指借助于客户端、服务器技术,将多个计算机联合起来作为攻击平台,对一个或者多个目标发动DDoS攻击,从而成倍得提高攻击的破坏力,使目标服务器无法提供正常服务,包括:ICMP Flood;UDP Flood;TCP flood;SYN Flood;ACK Flood等 83.数据分析需要借助Hadoop等软件配合硬件来实现,ECS不适合海量数据分析的工作,也不是ECS的经典应用场景。 84.TCP需要三次握手,UDP是面向非连接的协议 85.如果应用需要较高的容灾能力,建议将云服务器ECS实例部署在同一地域的不同可用区内; 是否将云服务器ECS实例放在同一个可用区内,主要取决于对容灾能力和网络延时的要求 如果应用在ECS实例之前需要飞航地的网络时延,讲义将ECS实例创建在相同的可用区内 同一可用区内的ECS实例之间的网络时延更小 在同一地域内不同可用区之间的内网互通,可用区之间能做到机房级别的故障隔离 86.站点监控可以对目标站点服务的可用性以及响应时间进行监控。系统已经默认预置了8种监控类型,包括http监控、ping监控、tcp监控、udp监控、DNS监控、pop监控、smtp监控、ftp监控。其中每种监控类型里面包含了两个监控项: 状态码status 和 响应时间responseTime 87.手动加入既有的ECS实例的步骤:1.判断伸缩组的健康状态、边界条件和ECS实例的状态、类型;2.分配ActivityId和执行伸缩活动;3.加入ECS实例;4.修改TotalCapacity;5.添加RDS白名单;6.挂载负载均衡,将权重设为当前伸缩组中已激活的伸缩配置上指定的“负载均衡权重”;7.伸缩活动完成,启动cooldown 88.云计算的特点:大规模;虚拟化;高可靠性;通用性;按需服务;高可伸缩性;廉价性。支持多租户 89.同一个负载均衡SLB只能挂载同一个地域的云服务器ECS,不支持跨地域部署。如果需要跨地域部署,可以考虑在多个地域部署负载均衡实例,通过DNS轮询来实现跨地域负载。 90.专有网络VPC可实现:网络的拓扑设计和私网IP地址段的划分。 91.OSS图片处理API Channel: 一个用户最多可以创建10个CHannel; 单个Object(即每张图片)允许的最大大小为20MB,但是每个Channle中存放的object的数量是没有限制的; IMG名称在整个图片处理服务中具有全局唯一性,且不能更改。 92.负载均衡集群采用 LVS和Tengine实现,其中4层监听(TCP、UDP)经过LVS后直接到达后端服务器,而7层监听(HTTP、HTTPS)经过LVS和Tengine最后到达后端服务器,7层性能没有4层性能好。 因为7层比4层多了一个处理环节,因此,7层性能没有4层性能好。 93.定时任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除定时任务;云监控报警任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除报警任务。 94.阿里云 内容分发网络 CDN支持以下防护配置:防盗链功能(Refer黑白名单),IP黑白名单,URL鉴权 95.多媒体转码服务MTS服务。 98.对象春初OSS的防盗链功能可以杜绝其他站点的下载 99.阿里云ECS的API为:ecs.aliyuncs.com 100.在VPC内选择一台云服务器ECS实例作为堡垒机,申请一个EIP绑定到该ECS实例,通过该堡垒机进行其他云服务器ECS实例的管理 101.OSS域名绑定(CNAME)功能目前仅支持OSS以散记域名访问方式进行绑定。即访问方式为:(BucketName).${region}.aliyuncs.com 102.添加的eCS需要和伸缩组出于同一个地域Region 103.阿里云CDN不支持直接对IP地址进行加速,使用内容分发CDN徐亚在控制台绑定域名。 104.闪电立方LightningCube(数据迁移 Data Transport)是阿里云为TB乃至PB级数据迁移提供的服务 云服务器ECS实例的数据盘上的大量非结构化的数据转存到其他的服务上去 使用OSSImport更方便 105.绿网支持API批量检测图片和识别的文字 106.CDN回源的地址可以是回源域名,也可以是回源IP,这时访问的是ECS的公网IP,不管是否在同一地域都会产生回源流量费 107.Bucket的权限:公共读写 公共读 私有 108.VPC下的云服务器ECS实例可以绑定EIP实现公网的访问,同时可以将其配置为公网网关,实现VPC内其他ECS实例的公网访问 109.敏感信息泄露属于Web应用防火墙的功能,是需要收费的服务。 110.实例创建快照时,实例必须处于运行中 或者 已停止状态 111.IaaS 基础设施即服务 (Infrastructure-as-a-service) IaaS公司会提供场外服务器,存储和网络硬件,也可以选择租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用,比如阿里云的ECS 亚马逊的EC2 腾讯云的CVM都属于IaaS 112.SLB支持同一Region跨数据中心容灾,还可以通过与DNS结合支持跨Region容灾 SLB的服务能力与后端ECS的公网带宽规格无关 113.阿里云的云盾加密服务通过在阿里云上使用经国家密码管理局检测认证的硬件密码机,帮助用户满足数据安全方面的监管合规要求,保护云商业务数据的隐私性和机密性。管理云盾加密服务的密钥时,必须通过 身份卡(USB Key)方式认证。 所有的秘钥管理都必须依赖身份认证卡 若丢失 阿里云也无法恢复 114.阿里云的负载均衡SLB中的证书(certificate)用于HTTPS协议,当需要使用加密传输时,用户可以将证书上传至负载均衡SLB实例中,在创建HTTPS协议监听时绑定证书,提供HTTPS服务。用户可通过 负载均衡的管理控制台 以及 负载均衡的API上床HTTPS证书 方式上传证书。 115.先知计划 是有独立于阿里云的安全服务的 提供者“白帽子” 或 “安全公司”为企业提供众测服务。 116.专有网络VPC是一个免费的网络容器 交换机 路由器是免费的 弹性公网IP是收费服务 117.安骑士企业版可以检测并修复漏洞 118.RDS实例内外网切换会影响其他与RDS实例的链接 119.加速域名的源站可以放在阿里云的OSS上 源站域名不能与加速域名相同,否则会造成循环解析,无法回源。 120.当一个bucket(源bucket ,Source Bucket)开启访问日志记录功能够,OSS自动将访问的bucket中文件的请求访问记录 以小时为单位,按照设置的命名规则,生成一个Object写入用户指定的bucket(目标bucket,target Bucket) 日志每小时自动生成一次,通过对生成的日志文件进行分析,可以轻松定位到Oss Bucket上的所有操作。 121.SLB和ECS只需要在一个地域,创建伸缩配置时,ECS实例可以不选择公网带宽,但是为了方便管理ECS实例,建议购买至少1Mbps的ECS带宽 122.修改私网IP需要保证ECS处于已停止的状态 123.阿里云的负载均衡SLB目前只支持阿里云服务器ECS实例,不支持其他服务器 124.不同专有网络之间完全隔离,无法内网互通,当前可以通过公网建立VPN实现互通。 125.安装 安骑士客户端 后, 需要通过管理控制台的Key来完成和阿里云官网账号的关联。 126.弹性伸缩必须和ECS搭配使用,对其他云产品没有限制。 127.云服务器ECs实例与OSS之间的请求次数,部分内外网都会计费。走内网流量是不计费的,但是每次的请求次数还是收费的。 128.Internet使用TCP/IP洗衣实现了全球范围的计算机网络的互联 129.修改私网IP地址有两种方式:如果不需要更换交换机,则直接修改私网iP即可。如果需要更换交换机,则可以变更云服务器ECS实例所在的交换机,然后直接修改云服务器ECS实例的私网IP 130.MapReduce是一种编程模型,用于大规模数据及的并行运算,可以非常好的和云计算相结合以处理海量数据计算。MapReduce将自己的程序运行在分布式系统上,他的计算速度比较慢,计算出来的中间结果等等都会写到磁盘上,输出的结果也会到磁盘上,读写磁盘就意味着性能不能达到实时的要求,做历史数据的批处理比较好。 mapReduce的设计目标包括:易于编程、易于扩展、高容错性 131.EIP(弹性公网IP)可绑定到专有网络类型的ECS实例、专有网络类型的私网SLB实例和NAT网关上,不支持绑定到经典网络的ECS上。 132.使用阿里云负载均衡SLB将负载分发到多台云服务器ECS实例上去的时候,可获得发起请求的用户的真是IP:针对4层(TCP)负载均衡服务,可以直接获取用户IP,七层则需要通过请求头中的X-Forwarded-For获取 在负载均衡SLB中,可以通过X-Forwarded-For的方式获取访问者真实IP 133.安骑士提供的服务:端口检测、异地登录提醒、密码暴力破解、WebShell检测服务 134.通过VPN专线可以将该网络与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云 135.阿里云的云监控服务是自动开通,不要单独开通 136.弹性公网IP(EIP)是可以独立购买和持有的公网IP地址资源,公网访问时支持全国所有地域的访问的。 137.在ECS中挂载磁盘的时候必须的请求参数: DiskId 和 InstanceId 138.在使用阿里云负载均衡SLB时后端服务器可以设置主备服务器组,当主机工作正常时,流量将直接走主机,当主机宕机时,流量将走到备机。主备服务器组是在监听维度上维护的,并且只支持四层监听。(TCP/UDP)协议 139.云盾数据风控产品具体可以防范 垃圾注册 营销作弊 盗卡支付 安全威胁。CC注册时Web应用防火墙的功能。 140.VPC基于隧道技术,实现数据链路层的隔离,为每个租户提供一张独立、隔离的安全网络。不同专有网络之间内部网络完全隔离,只能通过 对外映射的IP(弹性公网IP和NAT IP) 互联 141.CopyObject接口用于在存储空间(Bucket)内或 同地域的Bucket之间拷贝文件(Object),所以不需要使用带宽在此上传至OSS,可以节省OSS的网络带宽 142.在冷却时间内,伸缩组会拒绝由云监控报警人物出发的伸缩活动请求,但其他类型任务(手动执行任务、定时任务、健康模式)触发的伸缩活动可以立即执行,绕过冷却时间。 143.流量清洗的触发指标有公网IP每秒处理的报文数量(PPS) 和 公网IP每秒处理的流量值(bps) 144.实现OSS Object上传:简单上传指的是使用OSSAPI中的PutObject方法上传单个文件。简单上传适用于一次HTTP请求交互即可完成上传的场景,比如小文件(小于5GB)的上传,上传文件时支持设置ObjectMeta 145.OSS的成本优势: OSS服务基于多线BGP骨干网络构建,下行无带宽限制,上行流量免费 OSS最终用户不需要投入运维人员与托管费用,后天运维完全由阿里云负责 无需一次按峰值容量的存储硬件设备,按实际使用容量付费 ······OSS的下行带宽是没有限制的,上行(即上传)的流量是免费的。同事OSS的Bucket空间是灭有上限的,所以不存在扩容的情况,更不存在业务中断的情况。 146.默认专有网络VPC不占用阿里云为您分配的专有网络VPC配额 默认专有网络与非默认专有网络的操作方式和规格限制一致 每个地域的默认专有网络VPC唯一 默认专有网络VPC由阿里云为您创建,您自行穿件的均为非默认专有网络VPC 147.SLB LoadBalancer中 ModifyLoadBalancerInternetSpec 接口是用来修改SLB实例的计费方式的 148.SLB绑定证书是为了满足加密传输的HTTP协议要求 149.动静分离的网站是有利于通过CDN加速的,上云实践中用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离的,提升用户访问体验,实现成本可控 150.在安全方面,OSS服务本身具备了防DDoS攻击和自动黑洞清洗的功能。 151.云盾DDoS防护功能可以保障ECS SLB WAF VPC EIP NAT云产品的DDoS网络安全 152.OSI Open System Interconnect 开放系统互联参考模型 第七层是指 应用层 七层协议:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 153.OSS中 单个Object的大小限制是48.8T 154.加速域名日志中记录的流量数据,使我们应用层日志统计出的流量,但是实际产生的网络流量却要比应用层统计到的额流量要高出 7%---15% 主要原因是:1.TCP/IP包头的消耗,2.TCP重传 155.安骑士不具备DDoS防护的功能特性 156.ECS磁盘在未创建快照的情况下 是不允许通过其他磁盘的快照进行回滚或数据恢复 157.每个ECS实例最多可以加入5个安全组,且ECS至少加入一个安全组 158.负载均衡的SLB中的公网或者私网访问的选择是由用户在购买时选择的,并不是系统自动选择 159.CDN控制台、OpenAPI都可以下载CDN访问日志 160.使用windows操作系统的时候,只有机器内存较低(低于2G)的时候,建议使用虚拟内存 161.七层服务可以关闭健康检查,四层服务无法关闭健康检查,只有HTTP和HTTPS监听支持关闭健康检查。UDP和TCP监听无法关闭健康检查。 163.BGP机房的服务器并不是都具备双机或者多机 冗错功能。 BGP机房的优点: 1.服务器只需要设置一个IP地址,最佳访问路由是由网络上的骨干路由器根据路由跳数与其他技术指标来确定的,不会占用服务器的任何系统资源。服务器的上行路由和下行路由都能选择最优的路径,所以能真正实现高速的单IP高速访问。 2.由于BGP协议本身具有冗余备份、消除环路的特点,所以当IDC服务商有多条BGP互联线路是可以实现路由的相互本分,在一条线路出现故障时路由会自动切换到其他线路。 3.使用BGP协议还可以使网络具有很强的扩展性,可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快,这个是双IP双线无法比拟的。 165.目前一个SLB实例最多对应50个监听,每个监听可独立设定限定规则 166.CDN的全部缓存节点并没有采用BGP线路,BGP线路主要为OSS,和DDoS高防IP提供服务,实现不同运营商的网站都可以快速访问。CDN则是由充足的带宽和存储资源。 167.域名解析服务 和邮件服务 斌不是走UDP协议 168.更改云服务器ECS的MAC地址,可能会影响到服务器的网络通信服务 169.VPC只有配置中(Pending)和可用(Available)两种状态 170.阿里云的云盾DDoS基础防护功能在管理控制台可以配置针对云服务器的流量清洗的阈值,达到任意一个值即开始流量清洗。 触发清洗阈值:指的是触发流量清洗所需要的最低值,包括每秒流量每秒报文数量 每秒HTTP请求数三个触发清洗的阈值。用户云服务器上的流量超过三个钟的任意一个 都会触发清洗。 171.VPC支持VPN链接,但不是他提供的功能,VPN连接还是依赖于其他设备和网络的。 172.ECS中,无论每次接口调用请求是否成功,系统都会返回一个唯一识别码(返回参数)RequestId 173.虚拟化技术包括:全虚拟化、半虚拟化、硬件辅助虚拟化 174.快照保存在独立于自建的OSS空间内 175.如果弹性伸缩的ECS实例无法加入到RDS访问白名单中,自动创建的ECS会被回滚和释放,手动创建的ECS不会被回滚和释放 176.态势感知(云安全中心)的告警设置仅支持:短信、邮件、站内信 不支持钉钉旺旺 177.RDS是高度兼容Oracle 178.弹性伸缩的伸缩配置中支持配置的镜像包括:自定义镜像、公共镜像、共享镜像 179.当创建一个云产品实例时,如果没有可用的专有网络和交换机,您可以使用默认专有网络和交换机。在实例创建后,一个默认的专有网络和交换机也会随之创建好 180.四层是检查端口,七层是检查服务器端返回的状态码 181.NAS Network Attached Storage 文件存储 公共云计算中使用的存储并非是共享存储,而是分布式的私有存储 182.路由器是可以创建自定义路由表的 183.会话保持 默认关闭。启用后,负载均衡会把来自统一客户端的访问请求分发到同一台后盾云服务器ECS上进行处理。 184.ISV 独立软件开发商 185.如需要确保在ECS实例上任务处理完成后才让弹性伸缩释放该实例,需要在自定义镜像中存放执行脚本,并设置命令在操作系统关机时自动执行该脚本。 186 188.拒绝处理请求对应的状态码是 403 189.443端口即网页浏览端口,主要是用于HTTPS服务 .com域名一次性最多可以注册10年 .com域名查询whois里 Registrar是 域名所有者 190.负载均衡请求不均衡可能有以下几种原因:1.ECS实例请求连接数较少;2.不同ECS市里的性能不同导致请求不平衡;3.开启了会话保持功能;4.ECS健康检查异常;5.TCP Keepalive保持长连接 191.绿网(内容安全)的站点检测支持对网站的内容和图片进行检查,同事支持静态和动态的站点 192.阿里云官网给用户免费提供的安全验证手段:用户名密码校验 登录验证码或安全滑块 多因子(虚拟MFA)认证 193.复制镜像仅适用于自定义镜像。如果需要复制其他类型的镜像,可先使用镜像创建实例,在使用该实例创建自定义奖项,然后复制该自定义镜像 194.OSS服务本身不提供IP黑名单的功能,可以结合内容分发CDN来实现IP黑白名单的功能。 195.CDN系统能够实现内容加速的功能,需要智能DNS解析的支持 目前智能DNS解析不支持 页内容缓存的功能的 196.CDN支持对同名更新的实施更新,用户只要做相关配置后,在不主动提交请求的时候,CSN不会自动去刷新请求 197.SLB API ServerCertificate 目前使用UploadServerCertificate接口一次只能上传一份服务器证书和对应的私钥 198.负载均衡SLB下面的ECS必须开启健康检查,否则负载均衡SLB无法监听到后端ECS的状态则无法正常弹性伸缩 199.阿里云专有网络VPC和VPN是不同的概念。专有网络VPC是一个二层隔离的网络环境;VPN是一种远程访问技术,利用公网假设虚拟专用网络。 VPC使用的是二层的隔离技术,VPC中的交换机属于三层的交换机 200.CDN加速域名的停用 和删除 停用该加速域名后,该条加速域名信息仍保留,针对加速域名的请求系统将做自动回源处理。 删除该加速域名后,将删除该加速域名的全部相关记录,对于仅需要暂停使用该加速域名,推荐选择“停用”方式 201.ECS在容灾方面比传统虚拟主机拥有的优势:每份数据多份副本 单份数据孙华可在短时间内快速恢复 支持自动备份 ---传统虚拟主机也具备 202.当用户流量经过负载均衡某端口时,我们首先判断其是否能够匹配上某条转发规则,如果匹配,则将流量转发到该规则的后端服务器组上;若不匹配并且在该监听上设置了虚拟服务器组,那么将流量转发到该虚拟服务器组上;若用户没有在该监听上设置虚拟服务器组,即将流量转发到实例级别添加的各后端服务器中。 203.如果SLB实例已挂载了VPC类型的ECS实例,则不支持在该SLB下增加经典网络类型的ECS实例 204.云服务器ECS实例支持切换交换机,但是不支持切换路由器操作 205.ECS外部系统可以通过API在请求时传入参数来指定返回的数据格式,默认为XML格式 206.数据风控由阿里聚安全提供 是基于阿里大数据计算能力,通过业内领先的风险决策引擎,解决企业账号、活动、交易等关键业务环节的经济损失 207.阿里云多线BGP(中国电信、联通、移动、教育网等)接入,确保全国用户访问畅通,提升用户访问的质量。所以解决的是避免跨运营商的网络访问的速度瓶颈。 208.Google在2003年到2006年公布了关于GFS、MapReduce 和BigTable三篇技术论文 209.数据存储(OTS)保存客户海量用能数据,满足大数据分析的需求 210.数据风控目前只支持在Web中插入指定的JS代码,其他的暂时不支持 211.交换机创建完成后,无法修改CIDRBlock,且新建交换机所使用的的CIDRBlock不可以与已经存在的交换机的CIDRBlock重复。 212.阿里云使用隧道封装技术实现了不同专有网络VPC间二层网络隔离。在VPC内的云服务器ECS实例之间的三层网络访问控制 用 安全组 功能实现。 213.OSS 除了通过PUT Object接口上传文件到OSS以外,还可以 Multipart Upload 215.OSS支持的监控功能:存储空间的监控;对OSS服务请求的PV访问量(PUT、GET的请求数)的监控;对OSS服务请求的UV访问人次的监控 216.停用伸缩组以后,之前的冷却时间即失效。所以之后的伸缩活动不会受到冷却时间的影响 217.设置自动快照创建时间和重复日期时应尽量避开业务高峰,因为创建快照可能会轻微降低磁盘的性能,出现短暂瞬间变慢。 218.一个负载均衡实例对多支持添加50个监听,每个监听配置对应后端ECS实例上的一个应用,可以通过对后端ECS实例上的多个应用配置不同主机头的方式来满足这一需求。 219.云服务器Elastic Compute Service ECS :云服务器是BGP多线机房,全国访问流畅均衡,传统IDC是以单线和双线为主 220.路由器是删除VPC时自动删除的。 221.专有网络型的ECS实例只能在创建时指定,这类实例只可以属于单个虚拟交换机 222.源站服务器上获取“访客真实IP”: 1.“访客真实IP”保存在HTTp协议的X-Forwarded-For Header中,可以再Apache和Nginx的自定义LOG中直接获取到 2.在阿里云CDN的管理控制台中有一键开通”记录访客真实IP“功能,用户设置了这个开关后,可以再访问日志中直接看到访客真实IP 223.WEB服务不属于安骑士的功能点 224.弹性伸缩中的伸缩模式的任务:定时任务和报警任务 没有优先级之分,两个同时触发会随机执行。 225.由客户服务端调用风险识别服务API,获取风险评估结果。风险苹果结果,可作为其中一个因子参与到业务决策逻辑中,也可根据评估结果直接进行处置。 226.媒体转码 Media Transcoding MTS 227.阿里云弹性伸缩和负载均衡SLB一起使用时,两者必须处于同一地域 228.ECS的网络类型 对ECS性能没有影响。 229.linux系统的服务器不支持开启Selinux服务,如果开启了Selinux服务,会导致系统异常并无法启动 230.阿里云内容分发网络(Content Delivery Network CDN)是建立并覆盖在承载网之上,并分布在不同区域的边缘节点服务器群组成的分布式网络。阿里云CDN分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度 231.弹性伸缩支持数据盘的弹性伸缩。 232.同一组ECS实例可以待见多个网站,并可以同事对这些网站进行负载均衡; 负载均衡不提供CNAME地址,只提供IP地址; 后端服务器的权重之和是没有限制的; 后端服务池中的ECS可能由于异常导致机器不能正常运行,会出现非运行中的情况 233.SLB ECS Auto Scaling 配合使用: 三者必须在同一地域,才能配合使用 负载均衡SLB实例必须打开健康检查,否则无法和弹性伸缩配合使用 一个SLB实例可以绑定多个伸缩组 一个伸缩组可以同时支持多个SLB实例 234.BGP(边界网关协议)主要用于互联网AS(自治系统之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由,阿里云的云服务器ECS产品支持的多线BGP接入,解决的主要问题是:笔迷跨运营商的网络访问的速度瓶颈:使用BGP协议还可以使网络具有很强的扩展性 可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。 235.一个负载均衡SLB实例可以绑定多个弹性伸缩的伸缩组,且这些伸缩组的伸缩配置可以不同,一个伸缩组可以对应多个负载均衡SLB实例,但是两只必须在同一个地域中。 236.弹性公网IP的限制有:ECS实例的网络类型必须是专有网络、ECS实例的地域必须和EIP的地域相同。 237.不能强行终止伸缩活动,否则可能会导致伸缩组伸缩异常,假如配置错误了以后可以自己手动修改伸缩配置来释放多创建的云服务器ECS 238.EIP解绑后,仍需要支付IP占有费,为避免不必要的计费,可以解绑后释放EIP 239.每个弹性公网IP只能绑定到同一地域的一个VPC网络的云产品实例上,不一定要求在同一个可用区 240.平台即服务:消费者不需要控制底层的设施,但是可以控制运行应用程序的托管环境配置,且平台包括 网络、服务器、操作系统、存储等。 241.云服务器ECS实例通过公网访问RDS实例的公网地址的时候,不会影响到其他经典网络通过公网访问此RDC实例;在VPC中的RDS,其他经典网络则无法访问该RDS实例。 242.HTTPDNS 是面向移动开发者推出的一款域名解析产品,具有域名防劫持、精准调度等特性,主要是用在客户端的时候请求URL防止域名挟持的情况 243.自动伸缩的话,实例的IP会自动增加到负载均衡SLB的白名单中 244.创建EIP后,云监控服务自动开启,无需手动开启即可对EIP进行监控 245.弹性伸缩目前只支持ECS及其数据哦按的弹性伸缩,不支持云数据库RDS、负载均衡等云产品的弹性伸缩 246.如果多个定时任务在相近的时间内触发执行同一个伸缩组的伸缩规则,则最早触发的定时任务会先执行伸缩活动。由于同一个伸缩组同一时刻内只能有一个伸缩活动,排在后面的定时任务会在LaunchExpirationTime内自动充实定时触发,如上一个伸缩活动完成之后,排在后面的定时任务还在LaunchExpirationTime内重试,贼执行该定时任务的伸缩规则并触发相应的伸缩活动。‘ 247.一班情况下,默认路由在有外网情况下会先走外网网卡,如无外网则走内网网卡 248.打通VPC与传统数据中心,需要基于公网的VPN或者专线 249.OSS: 如果使用OSS自带域名,均限制在在浏览器中 以 “另存为”下载的方式打开文件,而不能直接浏览该文件。因此需要将自动以的域名访问绑定到属于自己的Bucket上面,即CNAME。域名绑定成功后,为了使用域名正常访问OSS,还需要添加CNAME记录指向存储空间对应的外网域名。 250.公网分发请求至SLB的正确方法: 购买公网IP的负载均衡SLB实例接收公网请求,或者创建VPC内的负载均衡SLB实例,然后再给这个SLB绑定EIP来接收公网请求 用跳板机接收外部请求不规范且冗余,既然有了公网IP,就没有必要使用跳板机来接收公网请求。 251.OSS针对VPC是有一套自己的内网地址, 252.OSS每小时结算一次调用OSS API的请求费用。目前支持支持按量付费,每万次请求的单价*美系哦啊哈斯实际请求次数/10000 253.负载均衡SLB再四层TCP转发是基于源IP的回话保持,四层回话保持的最长时间是3600秒 254.流量转发四层是通过LVS实现,七层是通过Tengine实现 255.阿里云的云监控产品的监控数据可以采用(只能查看报表,无法下载)方式下载:控制台中没有下载按钮,只能查看,API返回的JSON严格意义不算下载文件 256.在控制台里面,专用网络VPC下面的ECS,不管是否绑定了EIP,在设置安全组的时候,只可以设置内网规则,外网规则是不可以选的。因为对于其来说,内网规则等同于外网规则。 257.目前负载均衡SLB监听仅支持TCP、UDP四层 和HTTP、HTTPS七层这四种协议 258.提及到“子账号”,所以需要通过阿里云的RAM(Resource Access Management) 即用户身份管理与资源访问控制服务 259.本地的应用服务器制作镜像不支持上传到阿里云作为镜像提供服务 260.在阿里云专有网络VPC创建后,路由器也是随着VPC一起自动创建的,所以不需要手动创建了,这个时候需要继续创建交换机才能在交换机中创建其他云产品。 261.阿里云在LVS官方问题上进行了定制化: 新增转发模式FULLNAT,实现LVS-RealServer间跨vlan通讯; 新增synproxy等攻击TCP标志位DDOS攻击防御功能 采用LVS集群部署方式 优化keepaliwed性能 262.创建ECS镜像时,输入的自定义镜像名称 不能为空 263.滤网(内容安全)是以API的形式提供服务,不会占用云服务器ECS实例的CPU资源 264.OSS可靠性方面的优势: 服务可用性不低于99.9%,不受限于硬件可靠性 存储规模可自动扩展,OSS对外服务不中断 数据自动多重冗余备份 265.OSS的访问日志会自动保存,用户不需要手动保存访问日志记录。 266.CC攻击的DDos攻击是典型的拒绝服务攻击,服务器口令暴力破解只是破解了密码服务正常,网络后门植入式让服务端成为肉鸡,并不会去影响服务。 267.AccessKeySecret并不支持通过控制台直接查看,AccessKeySecret只能一次生成,后续不支持再次查看。如果忘记AccessKeySecret,只能在授权登录后在控制台重新生成。 268.对频繁连接的可疑IP进行屏蔽,需要通过IP白名单直接只允许指定的IP访问即可 269.云计算服务的三种类型(SaaS、Paas、IaaS) 270.如果在非阿里云的服务器上安装了云盾安骑士客户端,需要用在管理控制台生成的安装验证key与指定的阿里云官网账号关联 确保在管理控制台能查到此服务器的相关报告。 271.私网IP是可以用于SLB的负载均衡的, 同一地域内势力之间通过私网IP进行的通讯是不收取流量费的 272.OSS处理完的图片并不会保存到OSS,而是直接返回给请求的用户 273.在新建的LinuxECS实例中 启动OFBiz服务的时候 步骤如下: 进入OFBiz文件夹(cd ofbiz-release12.04) 给ant脚本赋予执行权限(chmod +x ant) 运行安装脚本(./ant run-install) 启动ant(./ant run) 274.伸缩配置有以下几种状态(LifecycleState): Active:生效状态,伸缩组会采用处于生效状态的伸缩配置自动创建ECS实例 Inactive:失效状态,该伸缩配置存在于伸缩组中,但伸缩组不会采用处于失效状态的伸缩配置自动创建ECS实例 275.希望实现两个VPC之间的私网通信,所以需要通过高速通道实现VPC之间的私网通信。 276.阿里云的与服务器ECS实例的快照是指某一时间点上某一块磁盘的数据拷贝。自动快照时保存在OSS里面,但是是保存在独立于用户自己的OSS Bucket里面,不是用户的BUcket里面。 277.Channel是OSS图片服务API的基本概念之一,是IMG上的命名空间,也是 计费、权限控制、日志记录等高级功能的管理实体 278.OSS分块上传: 支持断点上传;网络条件较差,经常连接断开,上传超过100MB的文件 279.阿里云的弹性伸缩中,创建完成伸缩组后,为了设置用于弹性伸缩的云服务器ECS实例的规格,需要定义 伸缩配置 在创建伸缩配置时,可以指定ECS实例的参数,例如实力规格,镜像类型,存储大小,登录实例用的秘钥对等。 280.阿里云负载均衡服务SLB提供性能保障型实例,该类型实例提供了可保障的性能指标,它的关键指标有: 最大连接数Max Connection 每秒新建连接数 Connection Per Second(CPS) 每秒查询数 Query Per Second 281.阿里云负载均衡服务SLB支持配置域名或者URL转发策略,将来自不同域名或者URL的请求转发给不同的ECS处理:关于域名或者URL转发策略支持的协议: 只有7层监听(HTTP、HTTPS协议) 支持配置URL转发策略 283.LVS做四层均衡负载;Tengine做七层负载均衡 Swift做HTTP缓存 284.公网IP是购买负载均衡SLB时系统分配的,或者是单独购买EIP后单独给负载均衡SLB绑定,并不是在负载均衡的配置和管理里面可以设定的。 285.阿里云的负载均衡SLB目前仅支持4层和7层的负载均衡。 286.阿里云SDN(内容分发网络 Alibaba Cloud Content Delivery network)建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以WEB Server为中心的数据传输模式 287.OSS在安全性方面的表现: 提供企业级多层次安全防护; 多用户资源隔离机制,支持异地容灾机制 提供多种鉴权和授权机制 及白名单 防盗链 主子账号功能 288.阿里云的负载均衡SLB包含了几个主要部分:来自外部的访问请求、Listener/LoadBalancer/BackendServer等 Listener:用户定制的监听器,定义了负载均衡策略和转发规则 289.需要向阿里云的专有网络VPC与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云。 专有网络VPC可以与 专线 和VPN 连接方式组合来实现该架构(需要让专有网络VPC与传统数据中心实现内网访问) 290.OSS分享链接采用的安全机制是: 在管理控制台中获取文件访问URL时设置分享链接有效时间,超过设定时间就无法下载 291.OSS与自建存储相比的优点: 海量存储、低成本、安全、多线BGP接入 292.对象是OSS存储数据的基本单元,也称为OSS的文件。对象由元信息ObjectMeta 用户数据Data 和文件名Key组成 293.VPC:使用了隧道技术,每个VPC都有一个独立的隧道号,一个隧道号对应着一张虚拟化网络,达到与传统VLAN方式类似的隔离效果。 294.使用阿里云的高速通道可以实现专有网络VPC之间的互联和私网通信。 高速通道(Espress Connect)是一款基于IPVPN的便捷高效的网络服务,用于在云商的不同网络环境间是想高速、稳定、安全的私网通信,包括跨地域、跨用户的VPC内网互通。专线接入等场景,有效的帮助提高网络拓扑的灵活性和跨网络通信的质量和安全性。 VPC中的ECS不可以和经典网络的ECS实现高效通道的通信。 295.NetworkManager服务来实现网络的配置和管理,Networkmanager服务启动以后可能会导致系统内部的网络配置出现紊乱 296.SLB支持的负载均衡的策略:轮询、加权轮询(WRR) 加权最小连接数(WLC) 297.在对阿里云的云服务器ECS实例进行续费操作时还可以做一些云服务器变配的操作, 修改配置操作完成后,必须通过管理控制台重启实例或使用RebootInstance接口重启实例,新配置才能生效。而非操作系统内重启。 298.WAF解释为WEB应用防护系统(也称 网络应用级入侵防御系统 Web Application Firewall,WAF) DDoS高防IP也是支持Web应用DDoS攻击防护,支持过滤多种flood,高频攻击等攻击,支持HTTP特征过滤、URI过滤、host过滤。 299.在阿里云上创建专有网络VPC时,VPC会自动为用户创建1条系统路由,这条路有的作用是:用于专有网络内的云产品实例访问专有网络外的云服务(该云服务支持VPC内的云产品实例直接访问) 以100.64.0.0/10为目标网段的路由条目,用于VPC内的云产品通信 300.不同部门使用的子系统应该根据不同子系统的应用配置不同的安全组,每个子系统的安全组分开配置,这样方便日后的维护管理。 301.OSS默认支持三份副本,通过校验保证三份副本一致,单副本损坏或丢失,会触发拷贝,保持三份 302.OSS支持的文件上传方法: 从OSS管理控制台直接上传 通过OpenAPI上传 通过SDK上传 通过云市场里的FTP工具上传 303.对象存储OSS的防盗链是基于HTTP或HTTPS 的header中包含Referer字段来实现的 304.CDN缓存是为了加速页面的访问,CDN提供的刷新缓存鹅方法:目录刷新、URL预热、URL刷新 305.SLB不需要购买设备,同事支持同城容灾。结合云盾提供免费的5G防DDoS攻击能力;负载均衡SLB的作用就是为了解决单台服务器单点问题,负载均衡后台多台ECS同事对外提供服务从而扩展了应用的服务能力,增强了应用的可用性,SLB实例的收费不仅有流量费 还有实例费、规格费 306.路由器是支持根据具体的路由条目的设置来转发网络流量。 VPC中的路由器都是随VPC的生命周期自动创建和删除的,用户不需要手动操作 307.阿里云多线BGP(中国电信、联通、移动、教育网等)接入,确保全国用户访问畅通,提升用户访问的质量。 308.操作系统级别监控指标包含 内存使用率、平均负载、磁盘IO读写、磁盘使用率 TCP连接数、进程总数等。 309.一个ECS实例最富哦能挂载16块云盘作数据盘用,并不支持无上限的增加数据盘 310.ECS升级CPU或内存等配置需要重启才可享受升级后的配置。 311.安骑士的功能点:防止密码破解 312.SSD云盘的顺序读写的IOPS都比普通云盘要高,以及访问延时很低 313.访问次数(VV):记录所有访客1天内访问了多少次您的网站,相同的访客有可能多次访问您的网站。 独立访客(UV):1天内相同访客多次访问网站,只计算为1个独立访客。 网站浏览量(PV):用户每打开一个页面便记录1次PV 独立IP(IP):同一IP无论访问了几个页面,独立IP数均为1 访问次数(VV) 名词:VV = Visit View(访问次数) 说明:从访客来到您网站到最终关闭网站的所有页面离开,计为1次访问。若访客连续30分钟没有新开和刷新页面,或者访客关闭了浏览器,则被计算为本次访问结束。 独立访客(UV) 名词:UV= Unique Visitor(独立访客数) 说明:1天内相同的访客多次访问您的网站只计算1个UV。以cookie为依据 网站浏览量(PV) 名词:PV=PageView (网站浏览量) 说明:指页面的浏览次数,用以衡量网站用户访问的网页数量。多次打开同一页面则浏览量累计; 独立IP(IP) 名词:IP=独立IP数 说明:指1天内使用不同IP地址的用户访问网站的数量。 314.黑洞是指服务器受攻击流量超过本机房黑洞阈值时,阿里云屏蔽服务器的外网访问。本服务器进入黑洞一段时间后,如果系统监控到攻击流量停止,黑洞会自动解封。 315.云盾反欺诈服务是阿里巴巴的数据风控服务能力开发的 316.SLB支持同一Region跨数据中心容灾,还可以通过与DNS服务结合支持跨Region容灾 317.手动修改ECS实例的公网IP后,该ECS实例的网络通信会受到影响。 318.SLB实例最多对应50ge监听,每个监听可独立设定限定规则 319.公共云计算中使用鹅存储并非是共享存储,而是分布式的私有存储。 阿里云的文件存储(Network Attached Atorage NAS)提供共享存储的服务: 多个云服务器实例可以同时访问同一个共享文件系统 适合跨多个云服务器实例部署的应用程序访问相同数据来源的应用场景 支持主流的应用程序及工作负载可无缝配合使用,无需任何修改即可读写数据 320.阿里云CDN不支持直接对IP地址进行加速,使用内容分发CDN需要在控制台绑定域名。 321.专有网络VPC是一个二层隔离的网络环境,VPN是一种远程访问技术,利用公网假设虚拟专用网络 VPC使用的是二层的隔离技术,VPC中的交换机属于三层的交换机。 322.云服务器ECS实例支持切换交换机,但是不支持切换路由器操作。 323.路由器和交换机的区别: 路由器可以为局域网自动分配IP和虚拟拨号、交换机只是用来分配网络数据的 路由器在网络层,根据IP地址寻址,路由器可以处理“TCP/IP”协议,交换机不行。交换机在中继层,根据“MAC”地址寻址; 路由器可以把一个IP分给多个主机使用,对外IP相同、交换机可以把很多主机连接起来,对外的IP不同; 路由器可以提供防火墙,交换机不能提供这个功能; 交换机是做扩大局域网接入点的,可以让局域网连进更多的电脑、路由器是用来做网间连接,也就是用来连接不同网络的; 324.弹性公网IP的限制有:ECS实例的网络类型必须是专有网络,ECS实例的地域必须和EIP的地域相同。 325.SLB四层流量走默认路由 SLB一般情况下,默认路由在有外网的情况下回先走外网网卡,如无外网则走内网网卡。 326.OSS目前只支持按量付费 327.负载均衡SLB不提供CNAME地址,只提供IP地址。 328.路由器是删除VPC时自动删除的 329.同一个VPC只能创建同一个地域不同可用区的交换机实现可用区容灾,不支持跨VPC创建交换机。 331.敏感信息泄露属于Web应用防火墙的功能,是需要收费的服务 332.在冷却时间内,伸缩组会拒绝由云监控报警任务处罚的伸缩活动请求,但其他类型任务(手动执行任务、定时任务)触发的伸缩活动可以立即执行,绕过冷却时间 333.自定义的监控项的数量的是没有数量限制的,且阿里云提供接口可以给开发者上报数据。 334.回滚磁盘必须要求云盘必须已经 挂载到某台ECS实例上,而且已经停止实例。 335.专有网络VPC里面的交换机支持部署在同一地域的不同可用区,专有网络VPC类型的是咧可以加入同一专有网络VPC下的安全组。 336.专有网络类型的ECS实例只能在创建时指定,这类实例只可以属于的单个虚拟交换机 337.专有网络VPC创建成功之后,CIRDBlock不可以进行修改,交换机创建成功之后,无法修改CIDRBlock,且新建交换机所使用的的CIDPBLock不可以与已经存在的交换机的CIDRBLock重复 338.ISV 独立软件开发商 :从安全的角度考虑 需要考虑 操作规范和角色账号的权限问题 339.CDN节点系统关键组件有: LVS做四层均衡负载;Tengine做七层负载均衡,Swift做Http缓存 340.伸缩组包括:伸缩配置 伸缩规则 伸缩活动
来源:OSCHINA
发布时间:2019-10-30 13:47:00
2019年10月9日, Rancher 2.3正式发布 ,这是Rancher Labs迄今为止最重要的产品版本。Rancher 2.3是业界首个GA支持Windows容器的Kubernetes管理平台,并正式集成了Istio,还引入了创新的“集群模板”功能以增强企业集群的安全性。这些新功能无疑将极大助力企业充分利用Kubernetes变革性的力量,并为企业生产中落地Kubernetes提供更加便捷的途径,从而进一步实现了Rancher一直以来“Run Kubernetes Everywhere”的理念和战略。     在过去的20天里,Rancher Labs的研发及测试团队对Rancher 2.3的性能、稳定性、安全性以及功能性等进行了大量的测试和优化,今天上午8时,正式发布了Rancher 2.3.2版本,在这一版本中新增了Istio网关功能、GA了Kubernetes 1.16版本。这是Rancher 2.3.x第一个stable的版本,这意味着它是Rancher官方推荐所有用户可用于生产环境的稳定版本!     Rancher 2.3功能亮点   首个GA支持Windows容器的K8s管理平台   Rancher 2.3是市场上管理基于Windows Server容器的首批解决方案之一 ,通过把Kubernetes的所有优势引入Windows,Rancher 2.3极大降低了企业使用Windows容器的复杂性,并为基于Windows遗留应用程序的现代化提供快捷的途径——无论这些程序是在本地运行还是在多云环境中运行。此外,Rancher 2.3还可以将它们容器化并将其转换为高效、安全和可迁移的多云应用程序,从而省去重写应用程序的工作。   正式集成Istio   Istio,作为业界领先的服务网格,让开发人员无需编写特定代码,即可启用Kubernetes的关键功能,包括容错、金丝雀发布、A / B测试、监控和指标、追踪和可观察性以及身份验证和授权。Rancher 2.3正式完成了对Istio的集成,极大简化了Istio的安装和配置,Rancher中现已内置支持:   用于流量和遥测可视化的Kiali仪表板 用于追踪的Jaeger 用于监控和可观察性的Prometheus和Grafana   通过“集群模板”功能增强Kubernetes安全性   Rancher 2.3引入了创新的“集群模板”这一功能。它可以让企业在整个基础架构中实施一致的集群配置,进而帮助企业降低安全风险。具体而言,通过使用集群模板:   运维人员可以在其所有集群部署中创建、保存并放心使用经过良好测试的Kubernetes配置。 管理员可以启用配置强制实施,从而抑制配置漂移或不当的配置错误。如果创建更多的集群,这些配置不当可能会带来安全风险。   Rancher 2.3.2版本重点   Kubernetes 1.16 GA   Kubernetes 1.16现在已经GA,但是由于Kubernetes 1.16版本中弃用了之前版本的部分旧API,因此Kubernetes 1.16还不是不是默认版本。   增加Istio网关,虚拟服务和目标规则的UI   添加了通过UI添加Istio网关的功能,Istio的UI已经成为GA版本。默认情况下,可以通过Istio的UI使用虚拟服务和目标规则的功能。   修复了一些重要的Bug   修复了使用TLS最为HTTPS终止时,HA升级由于在旧版本中生成错误的证书而导致HA升级失败的问题 [#23441] 修复了设置runAsNonRoot [#20884] 时无法启动监控的问题 修复了证书格式错误的项目无法再在UI中加载的问题 [#23285] 修复了readiness无法在Kubernetes 1.15和1.16版本的集群上 [#23430] 进行准备就绪探测的问题 修复了rancher/cli2:v2.3.0镜像无法正常工作的问题 [#23433]   升级与更新   更多关于Rancher 2.3.2中问题修复、升级与回滚,请参阅Github链接: https://github.com/rancher/rancher/releases/tag/v2.3.2   Rancher企业级订阅客户如果对Rancher 2.3.2有任何疑问或希望对现有Rancher版本进行平滑升级,欢迎联系我们的Rancher Support技术团队。如果想咨询或购买企业级订阅支持,欢迎联系我们!   微信:rancher2 邮箱:yiyi@rancher.com 电话:0755-86966507 欢迎添加小助手(wx:rancher2),进官方技术群,了解更多Kubernetes使用攻略
来源:OSCHINA
发布时间:2019-10-30 10:25:00
在对应用程序进行重构和更新的过程中,往往会出现一些挑战。更新应用程序的频率越高,复杂性就越是会增加。让应用程序在容器平台上运行,并且它们之间可以互相通信和连接,是通向模块化的、灵活的微服务架构的必经之路。但是微服务的这种灵活性也让其变得更加复杂。这时就轮到Service Mesh发挥作用了! Service Mesh向企业提供了他们所需要的中心化控制面板,同时依然能够使用灵活的、基于云的应用程序开发方式。我们可以把Service Mesh看成是用于微服务API的专门的第7层网格,它提供身份验证、授权、安全和性能服务来优化服务之间的“east/west”流量。更重要的是,它能为你提供应用到这些策略的中心点,而不需要直接将所有这些编码到应用程序的业务逻辑中。 简单的Service Mesh类比 Service Mesh就像是城市的水管网络。你的团队控制着这些管道,根据需要连接它们并设置它们之间所有的流控制。无论是何种类型或用途,又或是Service Mesh所支持的应用程序的需求在不断变化,数据都可以通过你的系统进行传递。 这种流量控制可以在中心位置进行,也正是在中心位置构建规则,来管理那些相互连接的数据流。这就像是在天上的巨大控制室一样,你可以在农作物需要额外资源时,给加利福尼亚州的土地浇水,又或是迈阿密那边湿的太透了,你可以排干它们。最重要的一点是,这些操作都是可以自动执行并且动态调整的。 Service Mesh增强了可靠性和可视化能力 Service Mesh提供从网络或服务故障处自动恢复过来的智能流量路由功能,这样就可以追踪到整个堆栈的问题,甚至能追踪到服务间的中断。 如果服务器没有响应,你的服务网格将会把它从单个服务、或者是活跃的、负载均衡的服务池中剔除掉,转移到另一个池中,该池经常会检查是否可运行。当该服务器在合理的时间范围内开始响应时,它又会被自动push回活跃的负载均衡池中。 通过提供服务层系统各个方面的可视化,Service Mesh还可以用来debug和优化系统。这样微服务中的脏水问题(murky water)就解决了。随着时间推移,系统可以进行调整来扩展功能,满足性能和稳定性的需求。 Service Mesh保护服务间通信 当你的团队推出应用程序的新版本,或是要将应用程序托管的集群迁移到新的数据中心时,安全团队通常需要重新颁发证书并授权给系统中新的服务器。这会花费大量的时间和精力,是推动生产改进的阻碍。 有了服务网格,将服务间通信的安全性交给网格处理,这些关注点从应用程序本身抽象了出来,由服务网格处理所有这些限制,比如哪些服务可以相互通信、哪些系统可以访问哪些服务,以及哪些用户可以访问哪些服务。因此,升级网格中的应用程序不需要重新分配安全资源。 这样一来,还可以让围绕网络和服务间通信的安全问题能从任何内部开发的业务逻辑中独立出来。如果网络组建出现安全漏洞,服务网格会去处理围绕安全更新的更改,而不是重新架构每个应用程序。这就消除了在进行安全更改和更新相关工作时出现的大量停机时间。 研究大型微服务环境下的服务网格 不过服务网格有一个(巨大的)潜在的缺点。它添加了额外的容器,事实上,它让容器规模加倍了。大多数服务网格的实现使用了sidecar代理,将一个代理实例和每个容器绑定的微服务耦合在一起。这样一来,它所带来的好处大于运营成本,这也意味着服务网格对于小型环境来说通常过于庞大了。 但是,如果你正在管理数十个甚至数百个独立的微服务,不妨考虑服务网格。有了服务网格,你的团队可以更好的跟踪问题,确保服务的可用性,维护路由表的正确分布。对这些大型环境,无论是在公共云、在你的企业数据中心、还是在混合云的实现上,它们是云应用程序难题的最后一块拼图,也是将你的整个产业联系在一起的关键部分。
来源:OSCHINA
发布时间:2018-12-28 13:00:00
DatwWorks终于升级2.0了,心情万分激动之余,又有一丝担忧。因为,没法再创建新的旧版工作流了。。。 新版抛弃了 “工作流” 这个概念,引入了 “业务流程” 和 “解决方案” 两个新的概念。于是,作为团队Leader,我花了很大的精力去钻研这两个概念到底该如何应用在我的实际业务中。 1.目的 能尽快应用DataWorks2.0的诸多给力新功能; 尽快解决掉由于无法新建旧版工作流引起的不便; 2.旧版工作流划分 任务节点一般分为以下几类: 源数据同步节点 单业务基础数据层统计节点 跨业务基础数据层统计节点 结果数据层统计节点 结果数据同步节点 2.1 划分维度 旧版本的工作流,主要包含以下几个维度: 2.1.1 源数据库 数据源是在哪个数据库中 包括:源数据同步节点 2.1.2 产品线 源数据属于哪个产品线 包括:源数据同步节点 + 单业务基础数据层统计节点 2.1.3 目标系统 结果数据是给哪个系统提供的(后台系统、BI、DataV、……) 包括:结果数据层统计节点 + 结果数据同步节点 2.1.4 业务模块 结果数据属于哪个业务模块(订单+投诉、订单+保险、商家+订单、……) 包括:跨业务基础数据层统计节点 + 结果数据层统计节点 + 结果数据同步节点 2.1.5 运行周期 每日、每周、每月运行 包括:所有节点 2.1.6 输入/统计/输出 包含的节点的类型,是属于“源数据迁入”、“统计任务”还是“结果数据迁出” 包括:所有节点 2.2 其他划分原则 尽量减少每个工作流所依赖的上游工作流的个数; 能用一句话给整个工作流起个名字; 每个工作流内的节点数量不超过30个; 3. 旧版工作流与新版业务流程的区别 3.1 运行周期 旧版工作流: 整个 工作流(包含多个内部节点),对应一个运行周期 新版业务流程: 每个 节点,对应一个运行周期 3.2 依赖关系 旧版工作流: 工作流依赖工作流; 内部节点依赖内部节点; 新版业务流程: 业务流程之间,无依赖关系; 节点依赖节点,可以跨业务流程依赖,可以不同运行周期的任务间依赖。 3.3 节点的分类 旧版工作流: 无分类 ,只能通过内部节点的命名来区分 新版业务流程: 可以自动 按节点类型 分类(SQL节点、数据同步节点、机器学习节点、……) 3.4 工作流(业务流程)的分类 旧版工作流: 无分类 ,只能通过工作流的命名来区分 新版业务流程: 可以通过“解决方案”功能来分类(类似于给每个业务流程 打标签 ),“业务流程”与“解决方案”是“多对多”的关系。 3.5 提交范围 旧版工作流: 整个 工作流(包含多个内部节点)一起提交 新版业务流程: 单个 任务节点提交。也支持业务流程中多个节点批量提交的方式。 3.6 重命名 旧版工作流: 工作流 不支持 重命名; 内部节点 不支持 重命名; 新版业务流程: 业务流程 支持 重命名; 节点 支持 重命名; 3.7 添加文件夹的位置 旧版工作流: 多级文件夹 →工作流→内部节点 新版业务流程: 业务流程→数据集成/数据开发→ 多级文件夹 →节点 4. 业务流程划分原则 最后,关于我的业务流程的划分原则,总结如下: 业务流程是完成一个最小业务的; 业务流程的数量可以稍微多一点儿,可以通过解决方案去查找; 每个业务流程里的节点最好不要太多,每个业务流程里能直观展示的就只有那么多; 希望大家也能早日用上DataWorks2.0的诸多给力功能!不用继续在旧版工作流中缝缝补补。 作者: neo.wang 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2018-12-27 15:44:00
小文件背景知识 小文件定义 分布式文件系统按块Block存放,文件大小比块大小小的文件(默认块大小为64M),叫做小文件。 如何判断存在小文件数量多的问题 查看文件数量 desc extended + 表名 判断小文件数量多的标准 1、非分区表,表文件数达到1000个,文件平均大小小于64M 2、分区表: a) 单个分区文件数达到1000个,文件平均大小小于64M, b) 整个非分区表分区数达到五万 (系统限制为6万) 产生小文件数量多的主要原因 1、表设计不合理导致:分区多导致文件多,比如按天按小时按业务单元(假如有6个业务单元BU)分区,那么一年下来,分区数将会达到365 24 6=52560。 2、在使用Tunnel、Datahub、Console等数据集成工具上传上传数据时,频繁Commit,写入表(表分区)使用不合理导致:每个分区存在多个文件,文件数达到几百上千,其中大多数是大小只有几 k 的小文件。 3、在使用insert into写入数据时过,几条数据就写入一次,并且频繁的写入。 4、Reduce过程中产生小文件过多。 5、Job执行过程中生成的各种临时文件、回收站保留的过期的文件过多。 注意:虽然在MaxCompute系统侧会自动做小文件合并的优化,但对于原因1、2、3需要客户采用合理的表分区设计和上传数据的方法才可以避免。 小文件数量过多产生的影响 MaxCompute处理单个大文件比处理多个小文件更有效率,小文件过多会影响整体的执行性能;小文件过多会给文件系统带来一定的压力,且影响空间的有效利用。MaxCompute对单个fuxi Instance可以处理的小文件数限制为120个,文件数过多影响fuxi instance数目,影响整体性能。 合并小文件命令 set odps.merge.max.filenumber.per.job=50000; --值默认为50000个;当分区数大于50000时需要调整,最大可到1000000万,大于1000000的提交多次merge ALTER TABLE 表名[partition] MERGE SMALLFILES; 如何合并小文件 分区表: 如果您的表已经是分区表,请检查您的分区字段是否是可收敛的,如果分区数过多同样会影响计算性能,建议用日期做分区。 1、定期执行合并小文件命令; 2、如果是按日期建的分区,可以每天对前一天的分区数据用insert overwrite重新覆盖写入。 例如: insert overwrite table tableA partition (ds='20181220') select * from tableA where ds='20181220'; 非分区表: 如果您的表是非分区表,您可以定期执行合并小文件命令来优化小文件问题,但强烈建议您设计成分区表: 1、先创建一个新的分区表,建议按日期做分区,合理设置生命周期,以方便进行历史数据回收; 2、把原非分区表的数据导入新的分区表;(建议先暂停原非分区表的实时写入业务) 例如: create table sale_detail_patition like sale_detail; alter table sale_detail_insert add partition(sale_date='201812120', region='china'); insert overwrite table sale_detail_patition partition (sale_date='20181220', region='china') select * from sale_detail; 3、修改上下游业务:入库程序改成写入新分区表,查询作业改成从新分区表中查询; 4、新分区表完成数据迁移和验证后,删除原分区表。 注意:如果您使用insert overwrite重新写入全量数据合并小文件时,请注意一定不要同时存在insert overwrite和insert into同时存在的情况,否则有丢失数据的风险。 如何避免产生小文件 优化表设计 合理设计表分区,分区字段是尽量是可收敛或可管理的,如果分区数过多同样会影响计算性能,建议用日期做分区,并合理设置表的生命周期,以方便对历史数据回收,也可控制您的存储成本。 参考文章: 《MaxCompute 表(Table)设计规范》 、 《MaxCompute表设计最佳实践》 避免使用各种数据集成工具产生小文件 1、Tunnel->MaxCompute 使用Tunnel上传数据时避免频繁commit,尽量保证每次提交的DataSize大于64M,请参考 《离线批量数据通道Tunnel的最佳实践及常见问题》 2、Datahub->MaxCompute 如果用Datahub产生小文件,建议合理申请shard,可以根据topic的Throughput合理做shard合并,减少shard数量。可以根据topic的Throughput观察数据流量变化,适当调大数据写入的间隔时间。 申请Datahub shard数目的策略(申请过多的datahub shard将会产生小文件问题) 1)默认吞吐量单个shard是1MB/s,可以按照这个分配实际的shard数目(可以在此基础上多加几个); 2)同步MaxCompute的逻辑是每个shard有一个单独的task(满足5分钟或者64MB会commit一次),默认设置5分钟是为了尽快能在MaxCompute查到数据。如果是按照小时建partition,那个一个shard每个小时有12个文件。如果这个时候数据量很少,但是shard很多,在MaxCompute里面就会很多小文件(shard*12/hour)。所以不要过多的分配shard,按需分配。 参考建议:​​如果流量是5M/s,那么就申请5个shard,为预防流量峰值预留20%的Buffer,可以申请6个shard。 3、DataX->MaxCompute 因为datax也是封装了tunnel的SDK来写入MaxCompute的,因此,建议您在配置ODPSWriter的时候,把blockSizeInMB这个参数不要设置太小,最好是64M以上。 作者: 云花 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2018-12-27 15:14:00
MaxCompute/DataWorks权限问题排查建议 __前提:__MaxCompute与DataWorks为两个产品,在权限体系上既有交集又要一定的差别。在权限问题之前需了解两个产品独特的权限体系。 MaxCompute:计算引擎 MaxCompute底层计算引擎有自己的安全权限体系,包括ACL、Policy授权体系。具体可以了解: https://help.aliyun.com/document_detail/27924.html DataWorks:数据工场 DataWorks为MaxCompute上层的云数仓开发工具,拥有自身的权限模型外还支持底层MaxCompute底层数据授权体系。具体详见: https://help.aliyun.com/document_detail/92594.html 查看MaxCompute上的角色 通过MaxCompute Console命令list roles;可以看到角色体系,role_开头都为DataWorks基于MaxCompute封装的角色及权限体系。介绍如下: rolename 对应产品及权限名称 admin MaxCompute底层引擎默认admin角色 role_project_admin DataWorks项目管理员 role_project_deploy DataWorks部署角色 role_project_dev DataWorks开发角色 role_project_guest DataWorks访客角色 role_project_pe DataWorks运维角色 role_project_scheduler role_project_security DataWorks生产代持账号 DataWorks安全管理员 __admin:__MaxCompute计算引擎的默认admin角色, 可以访问项目空间内的所有对象、对用户或角色进行管理、对用户或角色进行授权。与项目空间 Owner 相比, admin 角色不能将 admin 权限指派给用户 ,不能设定项目空间的安全配置,不能修改项目空间的鉴权模型,admin 角色所对应的权限不能被修改 。一般情况下,如未修改过权限,一般情况下admin角色用户只有一个为project owner账号。 odps@ clouder_bi>describe role admin; [users] ALIYUN$***@aliyun-test.com Authorization Type: Admin MaxCompute project owner可以将admin角色授予其他子账号,用于进行MaxCompute底层的权限模型管理。 role_开头的角色也可以通过describe role 方式查看其角色所具备的权限点及角色里的用户列表。以开发者角色为例: odps@ clouder_bi>describe role role_project_dev; [users] RAM$yangyi.pt@aliyun-test.com:yangyitest Authorization Type: Policy A projects/clouder_bi: * A projects/clouder_bi/instances/*: * A projects/clouder_bi/jobs/*: * A projects/clouder_bi/offlinemodels/*: * A projects/clouder_bi/packages/*: * A projects/clouder_bi/registration/functions/*: * A projects/clouder_bi/resources/*: * A projects/clouder_bi/tables/*: * A projects/clouder_bi/volumes/*: * 排查问题建议: 在普及完两个产品的权限体系之外,更多的用户会遇到各种权限的疑问或者问题。通常可以通过如下方式来排查: 首先,查看当前用户或指定用户所拥有的权限。 show grants; --查看当前用户自己的访问权限 show grants for ; --查看指定用户的访问权限,仅由ProjectOwner和Admin才能有执行权限 。 show grants for RAM$主帐号:子帐号; 可以看到用户所具有的角色及相关权限点。 查看指定对象的授权列表,一般获取表到人。 show acl for [on type ];--查看指定对象上的用户和角色授权列表 支持的objecTtype: PROJECT, TABLE, JOB, VOLUME, INSTANCE, RESOURCE, FUNCTION,PACKAGE,TOPOLOGY,MATRIX,XFLOW,OFFLINEMODEL,STREAMJOB 查看ACL是否生效(常常发生在授权之后返回OK,但是权限校验还是失败) show SecurityConfiguration;--查看项目空间的安全配置 除了通过命令行方式,也可以通过__ ++ DataWorks>项目管理>MaxCompute高级配置 ++ __里的ACL开关来确认是否打开。 Policy授权的查询 policy授权一般常见有两种,一个是项目级别的,一个是role级别的。 get policy;--获取项目级别的policy配置; get policy on role ;--获取指定的role policy设置。 作者: 祎休 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2018-12-27 14:41:00
基本介绍 Aliplayer提供了缩略图的功能,让用户在拖动进度条之前知道视频的内容,用户能够得到很好的播放体验,缩略图是显示在Controlbar的上面,并且包含当前的时间,阿里云的媒体处理服务提供接口可以生成缩略图的功能, 先看一下基本的效果: 缩略图的格式 WebVTT介绍 缩略图采用了webvtt的文件格式去表示时间和显示图片的对应关系,WebVTT不仅可读性好,而且解析也比较容易,下面是一个27秒包含3个截图的WebVTT文件内容: WEBVTT 00:00.000 --> 00:09.174 vM7nH0Kl-120.jpg?xywh=0,0,120,53 00:09.174 --> 00:18.348 vM7nH0Kl-120.jpg?xywh=120,0,120,53 00:18.348 --> 00:27.523 vM7nH0Kl-120.jpg?xywh=240,0,120,53 WebVTT是UTF-8编码格式的文本文件,主要如下: 第一行必需是WEBVTT,表明这是个WebVTT文件文件。 接着是一空行,后面就是时间范围和要显示的缩略图,时间格式是HH:MM:SS.sss,时:分:秒.毫秒, 开始时间 --> 结束时间,-->的两边各有一个空格,这两个时间必需写在同一行,并且时间都是相对于视频开始的时间间隔。 时间之后是缩略图的地址,时间和缩略图的地址之间不能有空行,缩略图的描述主要包含图片的地址,地址后面的xywh参数描述图片的显示位置和大小。 图片地址说明 缩略图可以是多张图片,也可以是雪碧图方式拼成的一张大图 ,雪碧图的优点是可以减少图片的请求数和减少图片显示的延迟时间等。 图片地址的基本格式:{imgUrl}?xywh=x,y,w,h, 参数说明: 名称 说明 x 水平位置,左上角是0,雪碧图时使用 y 垂直位置,左上角是0,雪碧图时使用 w h 图片的显示宽度 图片的显示高度 独立图片的地址格式 每个地址都是不一样的, 参数只需要指定图片的显示宽度和高度,比如: WEBVTT 00:00.000 --> 00:09.174 vM7nH0Kl-120.jpg?wh=120,53 00:09.174 --> 00:18.348 vM7nH0Kl-121.jpg?wh=120,53 雪碧图的地址格式 每个地址都使用同一个图片的地址,通过参数指定要显示的图片位置和大小,比如下面的雪碧图: 下面的描述对应的是第一张和第二张图的位置和大小 WEBVTT 00:00.000 --> 00:09.174 vM7nH0Kl-120.jpg?xywh=0,0,120,53 00:09.174 --> 00:18.348 vM7nH0Kl-120.jpg?xywh=120,0,120,53 Aliplayer的使用 Aliplayer可以独立的使用缩略图的功能,用户只需要指定WebVTT的地址,当然也可以和阿里云的媒体处理服务(MPS)结合使用,通过媒体处理服务生成缩略图,当通过videoId方式播放时,播放器会自动获取缩略图的地址,解析,然后显示。 如何生成缩略图 生成缩略图可以调用阿里云的媒体处理服务的截图功能,生成缩略图,仅支持HLS的视频格式,具体的接口地址: 如何设置截图 VideoId方式播放 媒体处理服务生成缩略图以后可以通过VideoId的方式播放,播放器会自动从云端获取缩略图地址、获取内容、解析、显示,代码如下: let player = new Aliplayer({ id: 'J_prismPlayer', width: '100%', height: '100%', autoplay: true, vid : '1e067a2831b641db90d570b6480fbc40', accId: '', accSecret: '', stsToken: '', domainRegion: '', authInfo: '', }); 媒体处理播放方式的详细文档参考: MPS播放说明 自己指定WebVTT地址 Aliplayer提供了thumbnailUrl属性用于指定WebVTT的地址,这种方式对于视频格式就没有要求了, 当用户由于特殊原因不能使用videoId的方式播放视频时,可以自己获取WebVTT的缩略图地址,通过thumbnailUrl属性指定,代码如下: let player = new Aliplayer({ id: 'J_prismPlayer', width: '100%', height: '100%', autoplay: true, soruce:'https://player.alicdn.com/resource/player/qupai.mp4', thumbnailUrl:'http://100.69.163.12/vM7nH0Kl-120.vtt' }); 作者: nahom 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2019-01-09 16:19:00
摘要: H5 Video是不提供截图的API的, 视频截图需要借助Canvas,通过Canvas提供的drawImage方法,把Video的当前画面渲染到画布上, 最终通过toDataURL方法可以导出图片的base64编码,基本就完成了图片截图的功能。 基本介绍 H5 Video是不提供截图的API的, 视频截图需要借助Canvas,通过Canvas提供的drawImage方法,把Video的当前画面渲染到画布上, 最终通过toDataURL方法可以导出图片的base64编码,基本就完成了图片截图的功能。 功能实现 Canvas接口介绍 drawImage接口 在画布上绘制图像、画布或视频,也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸,主要参数为: 参数 描述 img 规定要使用的图像、画布或视频。 sx 可选。开始剪切的 x 坐标位置。 sy 可选。开始剪切的 y 坐标位置。 swidth 可选。被剪切图像的宽度。 sheight 可选。被剪切图像的高度。 dx 在画布上放置图像的 x 坐标位置。 dy 在画布上放置图像的 y 坐标位置。 dwidth dheight 可选。要使用的图像的宽度。(伸展或缩小图像) 可选。要使用的图像的高度。(伸展或缩小图像) 参考一下这个图应该就比较清楚的了: 看一个例子,比如一个视频是640X480,现在需要截取下半部分: function(){ var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var video=document.getElementByTagName("video"); ctx.drawImage(video,0,240,640,240,0,0,640,240); }; toDataURL接口 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片的分辨率为96dpi 参数 描述 type encoderOptions 可选。图片格式,默认为 image/png 可选。在指定图片格式为 image/jpeg 或 image/webp的情况下,可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围,将会使用默认值 0.92。其他参数会被忽略 比如设置导出图片的质量: var fullQuality = canvas.toDataURL("image/jpeg", 1.0); var mediumQuality = canvas.toDataURL("image/jpeg", 0.5); var lowQuality = canvas.toDataURL("image/jpeg", 0.1); 导出图片时需注意的: 如果画布的高度或宽度是0,那么会返回字符串“ data:,”。 如果传入的类型非“ image/png ”,但是返回的值以“ data:image/png ”开头,那么该传入的类型是不支持的。 Chrome支持“ image/webp ”类型。 图片地址或者视频地址需要支持跨越访问,并且在 img或video Dom元素上添加属性crossOrigin:"anonymous" Aliplayer的截图功能 Alilayer里实现的截图除了截图一张图片,还可以添加水印,还可以截取镜像的视频,效果如下: 截图功能介绍 创建Canvas,设置大小为实际视频的大小,根据视频的镜像方向,对Canvas做相应的处理,代码如下: var canvas = document.createElement('canvas'), video = that._player.tag, canvas.width =video.videoWidth,//视频原有尺寸 canvas.height = video.videoHeight;//视频原有尺寸 var ctx = canvas.getContext('2d'); ctx.save(); //判断用户是否对视频做过镜像 var image = that._player.getImage(); if(image == "vertical")//垂直镜像 { ctx.translate(0,canvas.height); ctx.scale(1, -1); } else if(image == "horizon")//水平镜像 { ctx.translate(canvas.width, 0); ctx.scale(-1, 1); } //视频的当前画面渲染到画布上 ctx.drawImage(video, 0, 0, w, h); ctx.restore(); 水印功能介绍 Aliplayer水印支持添加的位置、字体、画笔颜色和填充样式,在创建播放器的时候指定,代码如下: let drawText =>(ctx, options) { var watermark = options.snapshotWatermark; if(watermark && watermark.text) { //设置字体样式 ctx.font = watermark.font; //设置字体填充颜色 if(watermark.fillColor) { ctx.fillStyle = watermark.fillColor; ctx.fillText(watermark.text, watermark.left, watermark.top); } //设置画笔颜色 if(watermark.strokeColor) { ctx.strokeStyle = watermark.strokeColor; ctx.strokeText(watermark.text, watermark.left, watermark.top); } //画布上画出水印 ctx.stroke(); } } 作者: nahom 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2019-01-09 15:47:00
摘要: 2018年12月20日,云栖社区3岁。阿里巴巴常说“晴天修屋顶”,所以我们特别制作了这个专辑——分享给开发者们20个阿里故事,50本书籍。 2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的成长感悟,50本书单。 多年以后,再回首2018-19年,留给我们自己的,除了寒冷,还有不断上升的技术能力与拼搏后的成就感。 云栖社区钉钉技术讨论群,已有5000+开发者。 云栖社区2019年1月30+场活动预告【持续更新,欢迎加入】 学习,是一种氛围。 1月9日,技术拓宽技术本身价值,商业价值,更加拓宽的是人生价值的边界。这是我们送给开发者的第14个感悟。 孤尽,阿里巴巴技术专家,花名取意“孤帆远影碧空尽”的意思,《阿里巴巴Java开发手册》的主要编写者。2016年3月,孤尽带领约码项目组编写《阿里巴巴Java开发手册》,码出高效,码出质量,推动阿里系与业界一起进步,让代码变得更舒服,更清澈,更好维护。 2018年5月,孤尽在《向代码致敬,寻找你的第83行》活动中 晒出了他入职第一年写的代码 ,大家赶紧来找找是否有不合规约的地方。 欢迎开发者 关注他 ,并加入 钉群 与孤尽深度讨论。 《阿里巴巴Java开发手册》史上最全资料 点此查看 ! 阿里孤尽:技术拓展价值边界 杨冠宝(孤尽) 阿里巴巴代码平台负责人。 阿里巴巴代码规约的起草者和推动者。 在阿里历任研发、架构师、技术主管等不同的角色,承担过双十一、国际化、代码中心等大型项目,有着丰富的一线编程经验,在大数据、高并发、研发效能领域均有较深的造诣,乐于分享与总结,在国内外做过多次大型交流和培训。 技术拓宽技术本身价值,商业价值,更加拓宽的是人生价值的边界。 好的代码是艺术,好的代码思维是哲学。程序员在技术进阶的路上,敢于象艺术大师一样不断地雕琢自己的作品,思考代码背后的逻辑,不断地提炼和总结,成就传奇代码人生。 记忆、思考、表达、融会贯通是学习的四步曲,第一步是基础,更是一个体力活。 出版图书: 《阿里巴巴Java开发手册》 《码出高效》 推荐书单: 《Effective Java》 《设计模式之禅》 《深入JVM虚拟机》 作者: 云篆 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2019-01-09 15:10:00
一言不合就发新版本。 年关将至,寒意习习,落叶萧萧下,阳光日日稀。RancherOS团队历时两个来月的开发,正式发布RancherOS v1.5.0版本。 在此期间同为Container Linux阵营的CoreOS已经从红帽再入IBM,潮流之变,业界态势,让我们无不更加努力去争得一席之地。 无论是商业用户的积累,还是业界变化带来的社区用户增长,都在催促我们不断革新,应该说1.5.0版本是用户的需求推着我们走出来的。 重大特性更新 本版本的新特征众多,无法一次性全部说明,以下只表述一些用户关注度比较高的特性。个别特性详细说明,我们会不断推出文章一一展开。 启动性能提升 一直以来RancherOS的initrd一直采用xz格式压缩,随着RancherOS的体积不断增大,xz压缩越来越影响系统启动速度。虽然xz格式能够带来比较小的initrd和ISO, 但是我们也需要兼顾启动速度。v1.5.0版本的initrd已经采用了gzip格式,文件体积有所增大,但是启动速度有了质的飞跃。 同时我们也优化了system-docker的镜像加载和cloud-init的启动,对启动速度进行了深度优化。 LUKS磁盘加密支持 支持LUKS,允许用户对跟磁盘分区进行加密,在一些特殊场景下增强了RancherOS的安全性。运行效果参考下图: WiFi和4G支持 Intel正在micro PC领域不断发力,RancherOS被纳入其生态体系,我们支持了WiFi和4G网络,用户可以通过简单的cloud-config配置就可以开启, 带来了十分简洁的用户体验,这部分我们会在后续其他文章中详细介绍。 Hyper-V支持 很多社区用户一直希望能在Hyper-V使用RancherOS,先前我们一直提供给用户一些custom build的方式来实现它,现在我们正式支持了它,并会持续维护。 无论是docker-machine方式还是boot from ISO方式均可以支持。 下一个版本我们也会带来RancherOS的Azure Cloud支持。 多docker engine支持 这是一个很有趣的特性,目前RancherOS中默认拥有一个user docker。在v1.5.0中,用户可以用过ROS CLI来创建多个user docker engine, 并且每个docker拥有独立的ROOTFS和网络栈,并且可以在console很容易的切换使用任意一个docker。 当然我们并不推荐您在生产中使用,我们的某个商业客户把这个特性应用在其CI环境中,极大的提升了资源的利用率,减少了物理机器数量的开销。 改善VMware的支持 RancherOS的广大用户中Vmware是占有很大的用户群,之前我们的版本中只针对docker-machine方式做了一些改善,但是很多用户还希望使用boot from ISO方式和VMDK方式, 我们相关的镜像也做了支持,用户可以直接下载使用它: [VMDK] https://releases.rancher.com/os/v1.5.0/vmware/rancheros.vmdk [Docker Machine] https://releases.rancher.com/os/v1.5.0/rancheros-vmware.iso [Boot From ISO] https://releases.rancher.com/os/v1.5.0/vmware/rancheros.iso ARM的支持 由于Rancher和ARM已经开始了战略合作,我们会在一起做很多有趣的事。RancherOS的ARM支持也是其中的一部分,原先我们只是对RPi做了支持, 现在我们提供ARM版本的initrd和vmlinuz,用户可以用它们使用iPXE方式启动: https://releases.rancher.com/os/v1.5.0/arm64/initrd https://releases.rancher.com/os/v1.5.0/arm64/vmlinuz 我们依然只会对ARM64支持,且v1.5.0的ARM支持只是实验性质的,并不推荐应用在生产中。 我们会和ARM进行合作进行更广泛的测试,后续的版本将会是更稳定的。 更加友好的自定义 社区中越来越多的发烧友并不局限使用我们的正式发布版本,他们会根据自己的需求修改RancherOS,构建自己的RancherOS。 我们提供了一些友好的编译选项,用户可以自定义自己的RancherOS。 更改默认docker engine RancherOS的每个版本都会有自己设定的默认docker engine,而在用户的场景下,可能需要一个内部认可的docker engine,且希望它是RancherOS默认的版本。 那么用户可以在构建时候指定docker engine版本,来构建自己的RancherOS,以docker 17.03.2为例: USER_DOCKER_VERSION=17.03.2 make release 更改默认console RancherOS支持很多console,比如ubuntu、alpine、centos等,由于我们的default console基于busybox,有些用户并不喜欢它,且不希望每次都去切换console。 那么用户可以使用这种方式构建一个默认console是自己喜欢的版本,以alpine console为例: $ OS_CONSOLE=alpine make release 其 他 AWS相关镜像已经上传到各个region中,可以直接搜索查找并使用,包括AWS中国区。其他主要镜像列表参考: https://github.com/rancher/os/blob/v1.5.x/README.md#release 更多新特性和Bug Fix请参考v1.5.0的Release Notes 文档说明: https://rancher.com/docs/os/v1.x/en/ 最后,RancherOS还是一个小众的开源项目,我们专注Docker在Linux上的精简体验,如果喜欢RancherOS,请在Github上给我们一个star,鼓励我们继续前行。 RancherOS Github: https://github.com/rancher/os/releases/tag/v1.5.0
来源:OSCHINA
发布时间:2019-01-09 10:45:00
摘要: 本文主要介绍如何使用消费组实时监控多个域中的多个日志库中的异常数据,并进行下一步告警动作。具备配置简单、逻辑灵活、支持跨域多Region、实时监测,无需配置索引等特点,并且性能可靠、自动负载均衡与保持高可用性。 解决问题 使用日志服务进行数据处理与传递的过程中,你是否遇到如下监测场景不能很好的解决: 特定数据上传到日志服务中需要检查数据内的异常情况,而没有现成监控工具? 需要检索数据里面的关键字,但数据没有建立索引,无法使用日志服务的告警功能? 数据监测要求实时性(<5秒,例如Web访问500错误),而特定功能都有一定延迟(1分钟以上)? 存在多个域的多个日志库(例如每个Region的错误文件对应的日志库),数据量不大,但监控逻辑类似,每个目标都要监控与配置,比较繁琐? 如果是的,您可以考虑使用日志服务Python消费组进行跨域实时数据监控,本文主要介绍如何使用消费组实时监控多个域中的多个日志库中的异常数据,并进行下一步告警动作。可以很好解决以上问题,并利用消费组的特点,达到自动平衡、负载均衡和高可用性。 基本概念 协同消费库(Consumer Library)是对日志服务中日志进行消费的高级模式,提供了消费组(ConsumerGroup)的概念对消费端进行抽象和管理,和直接使用SDK进行数据读取的区别在于,用户无需关心日志服务的实现细节,只需要专注于业务逻辑,另外,消费者之间的负载均衡、failover等用户也都无需关心。 消费组(Consumer Group) - 一个消费组由多个消费者构成,同一个消费组下面的消费者共同消费一个logstore中的数据,消费者之间不会重复消费数据。 消费者(Consumer) - 消费组的构成单元,实际承担消费任务,同一个消费组下面的消费者名称必须不同。 在日志服务中,一个logstore下面会有多个shard,协同消费库的功能就是将shard分配给一个消费组下面的消费者,分配方式遵循以下原则: 每个shard只会分配到一个消费者。 一个消费者可以同时拥有多个shard。 新的消费者加入一个消费组,这个消费组下面的shard从属关系会调整,以达到消费负载均衡的目的,但是上面的分配原则不会变,分配过程对用户透明。 协同消费库的另一个功能是保存checkpoint,方便程序故障恢复时能接着从断点继续消费,从而保证数据不会被重复消费。 使用消费组进行实时分发 这里我们描述用Python使用消费组进行编程,实时跨域监测多个域的多个日志库,全文或特定字段检查 注意:本篇文章的相关代码可能会更新,最新版本在这里可以找到: Github样例 . 安装 环境 建议程序运行在靠近源日志库同Region下的ECS上,并使用 局域网服务入口 ,这样好处是网络速度最快,其次是读取没有外网费用产生。 强烈推荐 PyPy3 来运行本程序,而不是使用标准CPython解释器。 日志服务的Python SDK可以如下安装: pypy3 -m pip install aliyun-log-python-sdk -U 更多SLS Python SDK的使用手册,可以参考 这里 程序配置 如下展示如何配置程序: 配置程序日志文件,以便后续测试或者诊断可能的问题(跳过,具体参考样例)。 基本的日志服务连接与消费组的配置选项。 目标Logstore的一些连接信息 请仔细阅读代码中相关注释并根据需要调整选项: #encoding: utf8 def get_option(): ########################## # 基本选项 ########################## # 从环境变量中加载SLS参数与选项,endpoint、project、logstore可以多个并配对 endpoints = os.environ.get('SLS_ENDPOINTS', '').split(";") # ;分隔 projects = os.environ.get('SLS_PROJECTS', '').split(";") # ;分隔 logstores = os.environ.get('SLS_LOGSTORES', '').split(";") # ;分隔,同一个Project下的用,分隔 accessKeyId = os.environ.get('SLS_AK_ID', '') accessKey = os.environ.get('SLS_AK_KEY', '') consumer_group = os.environ.get('SLS_CG', '') # 消费的起点。这个参数在第一次跑程序的时候有效,后续再次运行将从上一次消费的保存点继续。 # 可以使”begin“,”end“,或者特定的ISO时间格式。 cursor_start_time = "2018-12-26 0:0:0" # 一般不要修改消费者名,尤其是需要并发跑时 consumer_name = "{0}-{1}".format(consumer_group, current_process().pid) # 设定共享执行器 exeuctor = ThreadPoolExecutor(max_workers=2) # 构建多个消费组(每个logstore一个) options = [] for i in range(len(endpoints)): endpoint = endpoints[i].strip() project = projects[i].strip() if not endpoint or not project: logger.error("project: {0} or endpoint {1} is empty, skip".format(project, endpoint)) continue logstore_list = logstores[i].split(",") for logstore in logstore_list: logstore = logstore.strip() if not logstore: logger.error("logstore for project: {0} or endpoint {1} is empty, skip".format(project, endpoint)) continue option = LogHubConfig(endpoint, accessKeyId, accessKey, project, logstore, consumer_group, consumer_name, cursor_position=CursorPosition.SPECIAL_TIMER_CURSOR, cursor_start_time=cursor_start_time, shared_executor=exeuctor) options.append(option) # 设定检测目标字段与目标值,例如这里是检测status字段是否有500等错误 keywords = {'status': r'5\d{2}'} return exeuctor, options, keywords 注意,配置了多个endpoint、project、logstore,需要用分号分隔,并且一一对应;如果一个project下有多个logstore需要检测,可以将他们直接用逗号分隔。如下是一个检测3个Region下的4个Logstore的配置: export SLS_ENDPOINTS=cn-hangzhou.log.aliyuncs.com;cn-beijing.log.aliyuncs.com;cn-qingdao.log.aliyuncs.com export SLS_PROJECTS=project1;project2;project3 export SLS_LOGSTORES=logstore1;logstore2;logstore3_1,logstore3_2 数据监测 如下代码展示如何构建一个关键字检测器,针对数据中的目标字段进行检测,您也可以修改逻辑设定为符合需要的场景(例如多个字段的组合关系等)。 class KeywordMonitor(ConsumerProcessorBase): """ this consumer will keep monitor with k-v fields. like {"content": "error"} """ def __init__(self, keywords=None, logstore=None): super(KeywordMonitor, self).__init__() # remember to call base init self.keywords = keywords self.kw_check = {} for k, v in self.keywords.items(): self.kw_check[k] = re.compile(v) self.logstore = logstore def process(self, log_groups, check_point_tracker): logs = PullLogResponse.loggroups_to_flattern_list(log_groups) match_count = 0 sample_error_log = "" for log in logs: m = None for k, c in self.kw_check.items(): if k in log: m = c.search(log[k]) if m: logger.debug('Keyword detected for shard "{0}" with keyword: "{1}" in field "{2}", log: {3}' .format(self.shard_id, log[k], k, log)) if m: match_count += 1 sample_error_log = log if match_count: logger.info("Keyword detected for shard {0}, count: {1}, example: {2}".format(self.shard_id, match_count, sample_error_log)) # TODO: 这里添加通知下游的代码 else: logger.debug("No keyword detected for shard {0}".format(self.shard_id)) self.save_checkpoint(check_point_tracker) 控制逻辑 如下展示如何控制多个消费者,并管理退出命令: def main(): exeuctor, options, keywords = get_monitor_option() logger.info("*** start to consume data...") workers = [] for option in options: worker = ConsumerWorker(KeywordMonitor, option, args=(keywords,) ) workers.append(worker) worker.start() try: for i, worker in enumerate(workers): while worker.is_alive(): worker.join(timeout=60) logger.info("worker project: {0} logstore: {1} exit unexpected, try to shutdown it".format( options[i].project, options[i].logstore)) worker.shutdown() except KeyboardInterrupt: logger.info("*** try to exit **** ") for worker in workers: worker.shutdown() # wait for all workers to shutdown before shutting down executor for worker in workers: while worker.is_alive(): worker.join(timeout=60) exeuctor.shutdown() if __name__ == '__main__': main() 启动 假设程序命名为"monitor_keyword.py",可以如下启动: export SLS_ENDPOINTS=cn-hangzhou.log.aliyuncs.com;cn-beijing.log.aliyuncs.com;cn-qingdao.log.aliyuncs.com export SLS_PROJECTS=project1;project2;project3 export SLS_LOGSTORES=logstore1;logstore2;logstore3_1,logstore3_2 export SLS_AK_ID= export SLS_AK_KEY= export SLS_CG=<消费组名,可以简单命名为"dispatch_data"> pypy3 monitor_keyword.py 性能考虑 启动多个消费者 如果您的目标logstore存在多个shard,或者您的目标监测日志库较多,您可以进行一定划分并并启动多次程序: # export SLS_ENDPOINTS, SLS_PROJECTS, SLS_LOGSTORES nohup pypy3 dispatch_data.py & # export SLS_ENDPOINTS, SLS_PROJECTS, SLS_LOGSTORES nohup pypy3 dispatch_data.py & # export SLS_ENDPOINTS, SLS_PROJECTS, SLS_LOGSTORES nohup pypy3 dispatch_data.py & ... 注意: 所有消费者使用了同一个消费组的名字和不同的消费者名字(因为消费者名以进程ID为后缀)。 但数据量较大或者目标日志库较多时,单个消费者的速度可能无法满足需求,且因为Python的GIL的原因,只能用到一个CPU核。强烈建议您根据目标日志库的Shard数以及CPU的数量进行划分,启动多次以便重复利用CPU资源。 性能吞吐 基于测试,在没有带宽限制、接收端速率限制(如Splunk端)的情况下,以推进硬件用 pypy3 运行上述样例,单个消费者占用大约 10%的单核CPU 下可以消费达到 5 MB/s 原始日志的速率。因此,理论上可以达到 50 MB/s 原始日志 每个CPU核 ,也就是 每个CPU核每天可以消费4TB原始日志 。 注意: 这个数据依赖带宽、硬件参数等。 高可用性 消费组会将检测点(check-point)保存在服务器端,当一个消费者停止,另外一个消费者将自动接管并从断点继续消费。 可以在不同机器上启动消费者,这样当一台机器停止或者损坏的清下,其他机器上的消费者可以自动接管并从断点进行消费。 理论上,为了备用,也可以启动大于shard数量的消费者。 其他 限制与约束 每一个日志库(logstore)最多可以配置10个消费组,如果遇到错误 ConsumerGroupQuotaExceed 则表示遇到限制,建议在控制台端删除一些不用的消费组。 监测 在控制台查看消费组状态 通过云监控查看消费组延迟,并配置报警 Https 如果服务入口(endpoint)配置为 https:// 前缀,如 https://cn-beijing.log.aliyuncs.com ,程序与SLS的连接将自动使用HTTPS加密。 服务器证书 *.aliyuncs.com 是GlobalSign签发,默认大多数Linux/Windows的机器会自动信任此证书。如果某些特殊情况,机器不信任此证书,可以参考 这里 下载并安装此证书。 更多案例 日志服务Python消费组实战(一): 日志服务与SIEM(如Splunk)集成实战 日志服务Python消费组实战(二): 实时日志分发 日志服务Python消费组实战(三): 实时跨域监测多日志库数据 本文Github样例 作者: 成喆 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2019-01-21 14:43:00
本文由云+社区发表 作者:颜国平 摘要:最近几年,电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯,即将到来的“ 购物狂欢节”尤其明显。但任何一件事情都具有两面性,高额的补贴、优惠同时了也催生了“羊毛党”。“羊毛党”的行为距离欺诈只有一步之遥,他们的存在严重破环了活动的目的,侵占了活动的资源,使得正常的用户享受不到活动的直接好处。这篇文章主要分享下腾讯自己是如何通过大数据、用户画像、建模来防止被刷、恶意撞库的。 黑产“羊毛党”现状介绍 “羊毛党”一般先利用自动机注册大量的目标网站账号,当目标网站搞促销、优惠等活动的时候,利用这些账号参与活动刷取较多的优惠,最后通过某宝等电商平台转卖获益。 一.“羊毛党”分工 据初步估计,全国“羊毛党”在20万人左右,他们往往有着明确的分工,已形成了几大团伙: 1.软件制作团伙:专门制作各种自动、半自动的黑产工具,比如注册自动机、刷单自动机等;他们主要靠出售各种黑产工具、提供升级服务等形式来获利。 2.短信代接平台:实现手机短信的自动收发。这其中,有一些短信平台是亦正亦邪,不但提供给正常的商家使用,一些黑产也会购买相关的服务。 3.账号出售团伙:他们主要是大量注册各种账号,通过转卖账号来获利;该团伙与刷单团伙往往属于同一团伙。 4.刷单团伙:到各种电商平台刷单,获取优惠,并且通过第三方的电商平台出售优惠,实现套xian。 也就是说,这些“羊毛党“在电商促销或优惠活动中,已逐步形成了相对完善的刷单及变现工作流程(见图1:电商刷单团伙工作流程): 图1:电商刷单团队的工作流程 二.“羊毛党”从业特点 从“羊毛党“的分工与工作流程看,他们具有以下从业特点: 1.专业化:有专业团队、人员、机器来做。 2.团伙化:已经形成一定规模的团伙,而且分工明确;从刷单软件制作、短信代收发平台、电商刷单到变卖套xian等环节,已经形成完整的刷单团伙。 3.地域化:刷单黑产团伙基本分布在沿海的一些经济发达城市,比如,北京、上海、广东等城市,这或许跟发达城市更加容易接触到新事物、新观念有关。 下图2显示了我们TOP5的黑产刷单团伙分别位于:北京、上海、广州、江苏、浙江这些沿海较发达的经济区域。 图2 TOP5黑产刷单团伙的地域分布 三.对抗刷单的思路 面对黑产刷单,我们有什么对抗思路呢?一般来讲,对抗刷单主要从注册、登陆、活动三个环节入手: 1.**注册环节:**识别虚假注册、减少“羊毛党”能够使用的账号量。在注册环节识别虚假注册的账号,并进行拦截和打击。 2.**登录场景:**提高虚假账号登录门槛,从而减少能够到达活动环节的虚假账号量。比如,登录环节通过验证码、短信验证码等手段来降低自动机的登录效率,从而达到减少虚假账号登录量、减轻活动现场安全压力的目的。 3.**活动环节:**这个是防刷单对抗的主战场,也是减少“羊毛党”获利的直接战场;这里的对抗措施,一般有两个方面: 1)通过验证码(短信、语音)降低黑产刷单的效率。
2)大幅度降低异常账号的优惠力度。 电商防刷架构 一. 腾讯防刷总体架构 面对疯狂的黑产刷单,按照对抗刷单的思路,基于腾讯的多维度大数据,腾讯专门设计并构建了电商防刷技术体系。总体防刷架构见下图3: 图3:腾讯防刷单技术架构 从上面的总体架构我们可以看到,整个系统分三层:接入层、实时计算层、存储&挖掘层。整个系统充分利用了腾讯海量业务生态中的多维度大数据,以及全方位的风控经验与能力。接下来我们详细介绍其中的一些核心模块。 二.防刷单技术架构核心模块与框架介绍 1.风险学习引擎 对于风险学习引擎而言,效率问题非常关键。该模块线上采用的都是C++实现的DBScan等针对大数据的快速聚类算法,性能卓越;而且主要的工作都是线下进行,所以线上系统也不存在学习的效率问题。 风险学习引擎采用了黑/白双分类器风险判定机制,可以很好地减少对正常用户的误伤。例如,某个IP是恶意的IP,那么该IP上可能会有一些正常的用户,比如大网关IP。再比如,黑产通过ADSL拨号上网,那么就会造成恶意与正常用户共用一个IP的情况。 其中,黑分类器风险判定是根据特征、机器学习算法、规则/经验模型,来判断本次请求异常的概率。而白分类器风险判定则是判断属于正常请求的概率。见下图4示意: 图4 风险引擎的宏观构成 2.分类器逻辑框架 如何实现风险评估的判定呢?我们以黑分类器为例,来详细剖析下分类器的逻辑框架。 系统总体是采用一种矩阵式的逻辑框架。 黑分类器最初设计是整体检测判定,即按需随意地建立一个个针对黑产的检测规则、模型。但这种设计出来的结果,发现不是这个逻辑漏过了,而是那个逻辑误伤量大,要对某一类的账号加强安全打击力度,改动起来也非常麻烦。 因此,我们最终设计出一套矩阵式的框架(见下图5),较好地解决上述问题。 图5 黑分类器的矩阵逻辑框架 矩阵的横向采用了Adaboost方法,该方法是一种迭代算法,其核心思想是针对同一个训练集训练不同的弱分类器,然后把这些分类器集合起来,构成一个最终的分类器。而我们这里每一个弱分类器都只能解决一种帐号类型的安全风险判断,集中起来才能解决所有账户的风险检测。 这个矩阵逻辑的横向方法,在工程实现上也带来三个好处: 1.便于实现轻重分离。比如某平台虚假账号集中在邮箱账号,策略就可以加大对邮箱账号的打击力度,影响范围也局限在邮箱帐号,而不是该平台所有的账号。 2.减少模型训练的难度。模型训练最大的难度在于样本的均衡性问题,拆分成子问题,就不需要考虑不同账号类型之间的数据配比、均衡性问题,大大降低了模型训练时正负样本比率的问题。 3.逻辑的健壮性。某一个分类器的训练出现了问题,受影响的范围不至于扩展到全局。 矩阵纵向则采用了Bagging方法,该方法是一种用来提高学习算法准确度的方法。它在同一个训练集合上构造预测函数系列,然后设法将他们组合成一个预测函数,从而来提高预测结果的准确性。 腾讯大数据处理平台-魔方 毫无疑问,对抗黑产刷单离不开大数据。大数据一直在安全对抗领域发挥着重要的作用,从我们的对抗经验来看,大数据不仅仅是数据规模很大,而且还包括两个方面: 1.数据广度:要有丰富的数据类型。比如,不仅仅要有社交领域的数据、还要有游戏、支付、自媒体等领域的数据,这样就提供了一个广阔的视野让我们来看待黑产的行为特点。 2.数据深度:黑产的对抗,我们一直强调纵深防御。不仅仅要有注册数据,还要有登录,以及账号的使用的数据,这样我们才能更好的识别恶意。 所以想要做风控和大数据的团队,一定要注意在自己的产品上多埋点,拿到足够多的数据,先沉淀下来。 腾讯安全团队研发了一个叫魔方的大数据处理和分析的平台,底层集成了MySQL、MongoDB,Spark、Hadoop等技术,在用户层面我们只需要写一些简单的SQL语句、完成一些配置就可以实现例行分析。 这里我们收集了社交、电商、支付、游戏等场景的数据,针对这些数据我们建立一些模型,发现哪些是恶意的数据,并且将数据沉淀下来。 沉淀下来的对安全有意义的数据,一方面就存储在魔方平台上,供线下审计做模型使用;另一方面会做成实时的服务,提供给线上的系统查询使用。 一.腾讯用户画像沉淀方法 用户画像,本质上就是给账号、设备等打标签。但我们这里主要从安全的角度出发来打标签,比如IP画像,我们会标注IP是不是代理IP,这些对我们做策略是有帮助的。 我们看看腾讯的IP画像,目前沉淀的逻辑如下图6: 图6 IP画像系统构成 一般的业务都有针对IP的频率、次数限制的策略,那么黑产为了对抗,必然会大量采用代理IP来绕过限制。既然代理IP的识别如此重要,那我们就以代理IP为例来谈下腾讯识别代理IP的过程。 识别一个IP是不是代理IP,技术不外乎就是如下四种: 1.反向探测技术:扫描IP是不是开通了80,8080等代理服务器经常开通的端口,显然一个普通的用户IP不太可能开通如上的端口。 2.HTTP头部的X_Forwarded_For:开通了HTTP代理的IP可以通过此法来识别是不是代理IP;如果带有XFF信息,该IP是代理IP无疑。 3.Keep-alive报文:如果带有Proxy-Connection的Keep-alive报文,该IP毫无疑问是代理IP。 4.查看IP上端口:如果一个IP有的端口大于10000,那么该IP大多也存在问题,普通的家庭IP开这么大的端口几乎是不可能的。 以上代理IP检测的方法几乎都是公开的,但是盲目去扫描全网的IP,被拦截不说,效率也是一个很大的问题。 因此,我们的除了利用网络爬虫爬取代理IP外,还利用如下办法来加快代理IP的收集:通过业务建模,收集恶意IP(黑产使用代理IP的可能性比较大)然后再通过协议扫描的方式来判断这些IP是不是代理IP。每天腾讯都能发现千万级别的恶意IP,其中大部分还是代理IP。 二.腾讯用户画像类别概览 腾讯用户画像的维度与类别很多,这里仅举部分用户画像数据来说明。比如用户画像其中有手机画像和QQ画像这两个重要类别。涉及画像的标签见下图7: 以QQ的画像为例,比如,一个QQ只登录IM、不登录其他腾讯的业务、不聊天、频繁的加好友、被好友删除、QQ空间要么没开通、要么开通了QQ空间但是评论多但回复少,这种号码我们一般会标注QQ养号(色情、营销),类似的我们也会给QQ打上其他标签。 标签的类别和明细,需要做风控的人自己去设定,比如:地理位置,按省份标记。性别,按男女标记。其他细致规则以此规律自己去设定。 三. 风险判定的基础逻辑 有了用户画像的基础数据,我们就可以进行风险判定了。腾讯风险判定的系统现已开放为腾讯云的能力,即天御系统。我们来看一下风险判定的基础逻辑,见下图8: 图8 腾讯云天御系统防御逻辑示意图 实时防御系统使用C/C++开发实现,所有的数据通过共享内存的方式进行存储,相比其他的系统,安全系统更有他自己特殊的情况,因此这里我们可以使用“有损”的思路来实现,大大降低了开发成本和难度。 但这里在安全策略方面,可能会面临一个挑战:多台机器,使用共享内存,如何保障数据一致性?其实,安全策略不需要做到强数据一致性。 从安全本身的角度看,风险本身就是一个概率值,不确定,所以有一点数据不一致,不影响全局。但是安全系统也有自己的特点,安全系统一般突发流量比较大,我们这里就需要设置各种应急开关,而且需要微信号、短信等方式方便快速切换,避免将影响扩散到后端系统。 电商企业接入天御系统,启用带防刷能力的业务架构 通过剖析腾讯对抗“羊毛党”刷单的防刷系统技术架构与原理,我们了解到了天御系统可以帮助咱们电商企业在促销、优惠活动时,有效打击黑产刷单团伙。特别是马上到来的双十一“购物狂欢节”,该系统将让广大电商企业更好地服务用户,真正为用户带来贴心的实惠与好处。 天御系统可适应的场景包括但不限于: 电商o2o刷单、刷券、刷红包 防止虚假账号注册 防止用户名、密码被撞库 防止恶意登录 那么如何接入并使用天御系统呢?其实,电商企业接入天御系统仅需要四步,见下图9: 其中:第一步离线数据分析与第二步搭建实时模型为前期的准备工作,第三步正式接入其实并不耗费多少时间,不过第四步上线后,还需要持续的优化,以进一步提高对抗的能力。 图9 企业接入天御系统步骤 业务接入天御系统后的架构图,见下图10: 图10 业务接入天御防刷后的架构图 从上图可以看到,接入天御防刷是旁路接入,不需要调整现有业务任何核心逻辑、关键流程,可以快速上线。另外,运行过程中,即使天御防刷有任何异常也不会影响业务主逻辑。 Q&A Q:风险学习引擎是自研的,还是使用的开源库? 风险学习引擎包括两个部分,线上和线下两部分: 线上:自己利用c/c++来实现。 线下:涉及利用python开源库来做的,主要是一些通用算法的训练和调优。 Q:请问魔方平台中用到的MongDB是不是经过改造?因为MongDB一直不被看好,出现问题也比较多。 我们做了部分改造,主要是DB的引擎方面。 Q:请问黑分类器和白分类器有什么区别? 白分类器主要用来识别正常用户,黑分类器识别虚假用户。 Q:风险概率的权重指标是如何考虑的? 先通过正负样本进行训练,并且做参数显著性检查;然后,人工会抽查一些参数的权重,看看跟经验是否相符。 Q:安全跟风控职责如何区分呢? 相比安全,风控的外延更丰富,更注重宏观全局;针对一个公司来讲,风控是包括安全、法务、公关、媒体、客服等在内一整套应急处理预案。 Q:如果识别错了,误伤了正常用户会造成什么后果么?比如影响单次操作还是会一直失败。 如果识别错了正常用户不会被误伤,但是会导致体验多加了一个环节,如弹出验证码、或者人工客服核对等。 作者:颜国平,原腾讯云-天御系统研发负责人。一直负责腾讯自有验证码、业务安全、防刷、账号安全等研发工作。内部支持的产品(游戏、电商、腾讯投资的O2O企业)非常广泛。在业务安全领域项目经验丰富,并且具备深度学习、大数据架构搭建等实战经验。 此文已由腾讯云+社区在各渠道发布 获取更多新鲜技术干货,可以关注我们 腾讯云技术社区-云加社区官方号及知乎机构号
来源:OSCHINA
发布时间:2019-01-21 11:54:00
Series基本功能: axes 返回行轴标签列表。 dtype 返回对象的数据类型(dtype)。 empty 如果系列为空,则返回True。 ndim 返回底层数据的维数,默认定义:1。 size 返回基础数据中的元素数。 values 将系列作为ndarray返回。 head() 返回前n行。 tail() 返回最后n行。 DataFrame基本功能 T 转置行和列。 axes 返回一个列,行轴标签和列轴标签作为唯一的成员。 dtypes 返回此对象中的数据类型(dtypes)。 empty 如果NDFrame完全为空[无项目],则返回为True; 如果任何轴的长度为0。 ndim 轴/数组维度大小。 shape 返回表示DataFrame的维度的元组。 size NDFrame中的元素数。 values NDFrame的Numpy表示。 head()返回开头前n行。 tail()返回最后n行。 T(转置) 返回DataFrame的转置。行和列将交换。 实例: import pandas as pd import numpy as np # Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} # Create a DataFrame df = pd.DataFrame(d) print ("The transpose of the data series is:") print df.T 执行上面示例代码,得到以下结果 - The transpose of the data series is: 0 1 2 3 4 5 6 Age 25 26 25 23 30 29 23 Name Tom James Ricky Vin Steve Minsu Jack Rating 4.23 3.24 3.98 2.56 3.2 4.6 3.8 axes 返回行轴标签和列轴标签列表 实例1: #Create a series with 100 random numbers s = pd.Series(np.random.randn(4)) print ("The axes are:") print s.axes 执行上面示例代码,得到以下输出结果 - The axes are: [RangeIndex(start=0, stop=4, step=1)] 实例2: #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Row axis labels and column axis labels are:") print df.axes 执行上面示例代码,得到以下结果 - Row axis labels and column axis labels are: [RangeIndex(start=0, stop=7, step=1), Index([u'Age', u'Name', u'Rating'], dtype='object')] dtypes 返回每列的数据类型 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("The data types of each column are:") print df.dtypes 执行上面示例代码,得到以下结果 - The data types of each column are: Age int64 Name object Rating float64 dtype: object empty 返回布尔值,表示对象是否为空; 返回True表示对象为空。 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Is the object empty?") print df.empty 执行上面示例代码,得到以下结果 - Is the object empty? False ndim 返回对象的维数。 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Our object is:") print df print ("The dimension of the object is:") print df.ndim 执行上面示例代码,得到以下结果 - Our object is: Age Name Rating 0 25 Tom 4.23 1 26 James 3.24 2 25 Ricky 3.98 3 23 Vin 2.56 4 30 Steve 3.20 5 29 Minsu 4.60 6 23 Jack 3.80 The dimension of the object is: 2 shape 其中a表示行数,b表示列数。 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Our object is:") print df print ("The shape of the object is:") print df.shape 执行上面示例代码,得到以下结果 - Our object is: Age Name Rating 0 25 Tom 4.23 1 26 James 3.24 2 25 Ricky 3.98 3 23 Vin 2.56 4 30 Steve 3.20 5 29 Minsu 4.60 6 23 Jack 3.80 The shape of the object is: (7, 3) size 返回元素数。 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Our object is:") print df print ("The total number of elements in our object is:") print df.size 执行上面示例代码,得到以下结果 - Our object is: Age Name Rating 0 25 Tom 4.23 1 26 James 3.24 2 25 Ricky 3.98 3 23 Vin 2.56 4 30 Steve 3.20 5 29 Minsu 4.60 6 23 Jack 3.80 The total number of elements in our object is: 21 values 以数组形式返回实际数据值。 实例1: 以数组形式返回系列中的实际数据值。 #Create a series with 4 random numbers s = pd.Series(np.random.randn(4)) print ("The actual data series is:") print s.values 执行上面示例代码,得到以下结果 - The actual data series is: [ 1.78737302 -0.60515881 0.18047664 -0.1409218 ] 实例2: 将DataFrame中的实际数据作为NDarray返回 #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("The actual data in our data frame is:") print df.values 执行上面示例代码,得到以下结果 - The actual data in our data frame is: [[25 'Tom' 4.23] [26 'James' 3.24] [25 'Ricky' 3.98] [23 'Vin' 2.56] [30 'Steve' 3.2] [29 'Minsu' 4.6] [23 'Jack' 3.8]] head()和tail() 要查看DataFrame对象的小样本,可使用head()和tail()方法。head()返回前n行(观察索引值)。显示元素的默认数量为5,但可以传递自定义数字值。tail()返回最后n行(观察索引值)。显示元素的默认数量为5. 实例: #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']), 'Age':pd.Series([25,26,25,23,30,29,23]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])} #Create a DataFrame df = pd.DataFrame(d) print ("Our data frame is:") print (df) print ("The first two rows of the data frame is:") print (df.head(2)) print ("The last two rows of the data frame is:") print (df.tail(2)) 输出: Our data frame is: Name Age Rating 0 Tom 25 4.23 1 James 26 3.24 2 Ricky 25 3.98 3 Vin 23 2.56 4 Steve 30 3.20 5 Minsu 29 4.60 6 Jack 23 3.80 The first two rows of the data frame is: Name Age Rating 0 Tom 25 4.23 1 James 26 3.24 The last two rows of the data frame is: Name Age Rating 5 Minsu 29 4.6 6 Jack 23 3.8
来源:OSCHINA
发布时间:2020-03-28 13:48:00
在媒体行业的转型升级中,云计算的出现多维度促进了媒体融合,打破传统媒体行业与新媒体的界限和竞争格局,在媒体素材管理、移动端功能演进的过程中扮演着重要角色,颠覆了传统媒体新闻采编、发布及传播的方式。 七牛云平台可全方位为媒体行业赋能,比如: · 海量数据的存储承载 · 视频结构化技术支持 · 直播与点播功能助力 · 人工智能的创新应用 传统媒体在移动互联网的冲击挑战下纷纷转型升级,开始打造移动新媒体平台,以此不断扩展业务范围。其中,中国网作为媒体代表,推出了以中国网客户端为核心的多语种移动产品矩阵和中国网直播等品牌栏目,自 2016 年起,就选择与七牛云达成深度合作,借力云端实现升级转型。 媒体平台的云上升级之路 中国网是国务院新闻办公室领导的重点新闻网站,是国家重大活动、各大部委新闻发布会、全国「两会」新闻中心指定的网络报道和直播媒体。自成立以来,逐步实现了利用近 10 个语种、 11 个文版,24 小时对外发布信息,访问用户覆盖全球 200 多个国家和地区。 截至 2018 年,中国网的移动用户体量突破千万,日活 800 万+,每日输出稿件达 15000 篇。日益增长的用户数量和业务的拓展,使得传统 IT 架构很难适应目前业务的快速发展。利用丰富、灵活、可扩展、安全可靠的服务资源来更好地满足业务快速增长的需求,是中国网转型升级迫在眉睫的选择。 计算、存储高可靠,业务响应无延迟 作为了解中国的门户,中国网需不间断对外发布多语言、多版本的新闻资讯,随着业务的发展,这对于服务器的压力愈发增大,庞大的资料和媒体素材也需要大量的存储空间。当重大事件发生后,海量用户的同步访问对于运维的挑战也逐步升级。如何在成本可控的范围内,提高供稿效率,提升海内外用户访问中国网供稿服务站的速度,是中国网业务发展所遇到的技术难题。 中国网选择使用七牛云主机与云数据库服务部署各项后端服务,保障其业务稳定、安全、可靠运行。七牛云主机利用虚拟化的方式,为中国网提供了可灵活扩展的计算资源,缩短业务部署上线以及扩展升级的周期,并大大降低运维成本。同时,中国网将移动端数据存储至七牛云,用户访问速度,媒体素材加载速度获得大幅提升。在新闻内容不断拓展的基础上,保障了数据安全性与业务的稳定不间断,大大增强了中国网的品牌竞争力及国际化的传播能力。 手机直播大事件,新闻现场不缺席 新闻传播不限于以图配文的传统稿件形式,在直播风口上,将重大新闻事件以视频形式实时直播,从而做到更高效快速地触达更多人群,让用户真正所见即所得。中国网在 2016 年,借力七牛云提供的直播云服务,成为中国最大的政务直播平台。 七牛云直播云服务基于强大的全球化流网络,打造了端到端直播解决方案,提供低延迟、稳定流畅、高可用的一站式直播云服务。直播 SDK 接入,使得驻外记者可以在任何时间、任何地点,快速、灵活地进行新媒体直播,大大提高新闻传播的时效性。同时,七牛云全网融合 CDN 节点实现了稳定的同步直播、同步互动,极大优化了海内外用户观看直播的体验。 媒体行业新实践,AI 蕴藏大能量 除了移动端接入、直播功能拓展之外,基于用户个性化需求而产生的推荐阅读正逐渐成为媒体平台独特的竞争优势,只有通过对存储数据进行大数据及 AI 分析,才能从海量信息中找到真正的满足用户个性化需求的内容,对此中国网也进行了大量的尝试与探索。 在 2018 年两会期间,中国网曾与七牛云进行合作,根据用户特征研究样本信息,推送个性内容。在云存储与大数据相结合的基础上,将 AI 技术创新运用于新闻之中,推出「刷脸看新闻」这款产品,用户通过七牛云 AI 人脸识别,扫描分析用户特征,为其推送具有匹配度的文章,扩宽了新闻阅读的方式,增强了用户体验感。此款「刷脸看新闻」产品,日后也有望在中国网客户端上线。 中国网坚持以新闻为前导,以国情为基础,通过精心整合即时新闻和独家的深度报道,以多语种、多媒体形式,向世界及时全面地介绍中国,其业务的有序运作背后离不开七牛云的技术支持。云计算正在为媒体平台提供技术赋能,七牛云愿与媒体行业携手,通过成熟、先进、可靠的云+智能技术,共同推进媒体融合升级转型,探索前沿技术在新媒体传播中的实践和应用。
来源:OSCHINA
发布时间:2019-01-21 10:49:00
ZStack的 系统测试 系统在真实的硬件环境中运行测试用例;像集成测试一样,这个系统测试也是全自动的,而且覆盖的层面包括:功能性测试、压力测试、性能测试。 概述 虽然集成测试系统,如我们在ZStack—自动化测试系统1:集成测试中所介绍的,强大到可以暴露开发过程中大多数的缺陷,也是有着固有的弱点的。首先,由于测试用例使用模拟器,它们不能测试真实场景,比如在一个物理的KVM主机上创建一个VM。第二,集成测试用例主要关注一个简单的场景,在一个简单的人造的环境中;举个例子,还是创建VM的这个用例,它可能只部署一个最小的环境,包括一个主机和一个L3网络,仅仅用于满足创建一个VM的需求。这些弱点,然而也是深思熟虑过的,因为我们想要开发人员能够在他们开发新特性时快速和容易地写测试用例,这是一个我们必须采取的权衡。 系统测试,目标在于测试整个软件,在一个真实的、复杂的环境中,很自然地补充集成测试。ZStack的系统测试系统被设计用于以下两个目标: 复杂的场景:这些场景应该比真实世界的使用场景更复杂,以测试软件的极限。举个例子,挂载和卸载磁盘的测试用例应该持续地、重复地对虚拟机执行,以一种非常快,人类无法手动做到的方式。 易于编写和维护测试用例:就像集成测试系统,系统测试系统接管了大多数无聊重复的任务,让测试人员有效率地写测试用例。 这个系统测试系统是一个Python项目,命名为zstack-woodpecker,由以下三个部分组成: 测试框架:一个测试框架,管理所有的测试用例,以及提供必须的库和工具。 环境部署工具:一个工具,用于从XML配置文件部署一个环境;它非常类似于集成测试系统的部署器。 模块化测试用例:测试用例是高度模块化的,而且覆盖了:功能测试、性能测试和压力测试。 系统测试 zstack-woodpecker完全由我们自己创建;在决定重新造这个轮子之前,我们试过了流行的Python测试框架,像nose,然后最终选择了创造一个新的工具,用以最大化地满足我们的目标。 套件配置 类似所有的其他测试框架,一个zstack-woodpecker中的测试套件是以suite setup开始,以suite teardown结束,在其中有一些测试用例。这里的suite setup和suite teardown是两个特殊的测试用例,suite setup负责准备后续的测试用例所需的环境,suite teardown负责在所有测试用例结束之后清理这个环境。一个典型的测试套件配置文件看起来像: 敏锐的读者可能会注意到一些参数是在其他的测试框架中看不到的。 第一个是timeout;每一个测试用例可以定义自己的超时时间,如果在这段时间内不能完成,它将被在最终的结果里被标记成超时。 第二个是repeat,允许你在测试套件中指定这个用例应该被执行多少次。 第三个,也是杀手级的参数是parallel,允许测试人员设定这个套件的并行级别;这是一个使得zstack-woodpecker运行测试用例非常快的关键特性;在上面这个例子中,parallel被设置成8,这意味着将有至多8个用例在同时运行;这不只是加速运行测试用例,也创造了一个复杂的场景,模拟许多用户在共享同一个环境时执行不同的任务。然而,不是所有的用例都可以被同时执行;在我们的例子中,用例test_delete_l2.py将会删除被其他用例依赖的L2网络,所以在其他用例执行时,它不能被执行;这就是第四个参数noparallel发挥作用的地方;一旦它被设置成true,这个用例将会单独被执行,不会有其他用例可以同时运行。 命令行工具 zstest.py是一个命令行工具,用于帮助测试人员控制测试框架,执行任务,像启动测试套件,列出测试用例,等等。zstest.py提供了丰富的选项帮助测试人员简化他们的工作。这些选项中的一些,用于在我们的日常测试中,特别有用,列在了下面。 测试人员可以通过选项-l获取可用的测试用例,例如:./zstest.py -l 它将会展示如下的结果: 测试套件名,是测试用例的第一级文件夹的名称;例如,在上图中你看到了大量的用例以basic开头(例如:basic/test_reboot_vm.py),是的,basic就是这个测试套件的名字。测试人员可以通过选项-s启动一个套件,使用套件名的全称或者部分都行,只要它是独一无二的,例如:./zstest.py -s basic 或 ./zstest.py -s ba 测试人员也可以选择性地执行测试用例,通过使用它们的名字或者ID,已经选项-c;例如:./zstest.py -c 1,6 或 ./zstest.py -c suite_setup,test_add_volume.py 记住,你需要运行suite setup的用例:suite_setup.py作为第一个用例,除非你已经这么做了。 由于一个测试套件将会执行所有的测试用例,清理环境,发出一个结果报告,测试人员有时可能想要停止测试套件,并在一个用例失败时保持环境,这样他们就可以深入查看失败结果并调试;选项-n和-S就是为此准备的;-n指示测试框架不要清理环境,-S要求跳过没有被执行的用例;例如:./zstest.py -s virtualrouter -n -S 另外,选项-b可以拉取最新的源代码并构建一个全新的zstack.war,这在Nightly测试中特别有用,这种测试被假定为测试最新的代码:./zstest.py -s virtualrouter -b 一旦所有的测试用例完成,一个报告将会被生成并被打印到屏幕上: 测试框架将会保存所有的日志,并直接输出每一个失败日志的绝对路径,如果存在的话。为了在一般的日志中记录更多的细节,有一种特殊的日志action log,用于记录每一个API调用;因为这是一个完全纯粹关于API的日志,我们可以容易地找到一个失败的根本来源,而不用被测试框架的日志分散注意力。另外,它是一种重要的工具,可以自动地生成一个新的用例用于重现失败,这是一个我们所使用的魔法武器,用于在基于模型的测试(每个用例都随机地执行各种API)中调试失败。你可以在ZStack--自动化测试系统3:基于模型的测试中找到细节。Action log的片段如下: 环境部署工具 类似于集成测试,对每一个测试用例来说,准备环境是频繁且重复的任务;例如,用于测试创建虚拟机的用例需要去配置独立的资源,像zone,cluster,host等等。Zstack-woodpecker调用zstack-cli,这个ZStack的命令行工具去从一个XML配置文件部署测试环境。例如:zstack-cli -d zstack-env.xml 这里的XML配置文件的格式类似于集成测试所用的,一个片段看起来像这样: 部署工具通常在运行任何用例前被suite setup调用,测试人员可以在XML配置文件中通过以$符号开头来定义变量,然后在一个独立的配置文件中解析。通过这种方式,这个XML配置文件像模板一个工作,可以产生不同的环境。配置文件的例子如下: 注意:正如你可能会猜测的,这个工具可以被管理员用于从一个XML配置文件部署一个云环境;更进一步,管理员们做相反的事情,将一个云环境写入到一个XML配置文件,通过zstack-cli -D xml-file-name. 对于性能和压力测试,环境通常需要大量的资源,例如100个zone,1000个cluster。为了避免手动在配置文件中重复1000行,我们引入了一个属性duplication,用于帮助创建重复的资源。例如: 这段不翻译了。 模块化的测试用例 在系统测试中测试用例可以被高度模块化。每一个用例本质上执行以下三步: 创建要被测试的资源 验证结果 清理环境 Zstack-woodpecker 本身提供一个完整的库用于帮助测试人员调度这些活动。API也很好地被封装在一个,从zstack源代码自动生成的库中。测试人员不需要去写任何的原生的API调用。检查器,用于验证测试结果,也已为每一个资源创建;例如,VM检查器,云盘检查器。测试人员可以很容易地调用这些检查器去验证他们创建的资源,而不需写成顿成吨的代码。如果当前检查器不能满足某些场景,测试人员也能创建自己的检查器,并作为插件放入测试框架。 一段测试用例看起来像: 像集成测试一样,测试人员可以仅以十几行便写出一个测试用例。模块化不只是帮助简化测试用例的编写,也为基于模型的测试构建了一个坚实的基础,下篇文章我们会详细讨论。 总结 在这篇文章中,我们引入了我们的系统测试系统。通过执行比现实世界的用例更复杂的测试,系统测试可以给我们更多的自信,关于ZStack在真实的硬件环境中的表现。使得我们可以快速进化成一个成熟的产品。
来源:OSCHINA
发布时间:2019-01-21 10:30:00
Pandas有两种排序方式,它们分别是 - 按标签 按实际值 按标签排序 使用sort_index()方法,通过传递axis参数和排序顺序,可以对Series, DataFrame进行排序。 默认情况下,按照升序对行标签进行排序。 实例: df = pd.Series(['E','B','C']) print(df.sort_index(axis=0,ascending=False)) unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],columns = ['col2','col1']) #按行排列 print (unsorted_df.sort_index(axis=0, ascending=False)) # 按列排列 print (unsorted_df.sort_index(axis=1, ascending=False)) 输出: 2 C 1 B 0 E dtype: object col2 col1 9 -0.680375 0.450634 8 0.354761 -0.919791 7 0.539276 -0.416008 6 -0.067286 0.513746 5 -0.191821 -1.265648 4 -1.075135 0.717537 3 -0.436641 0.007743 2 1.002102 -1.133920 1 -0.193714 0.664201 0 -0.495355 -0.727960 col2 col1 1 -0.193714 0.664201 4 -1.075135 0.717537 6 -0.067286 0.513746 2 1.002102 -1.133920 3 -0.436641 0.007743 5 -0.191821 -1.265648 9 -0.680375 0.450634 8 0.354761 -0.919791 0 -0.495355 -0.727960 7 0.539276 -0.416008 按值排序 像索引排序一样,sort_values()是按值排序的方法。它接受一个by参数,它将使用要与其排序值的DataFrame的列名称。 实例: df = pd.Series(['E','B','C']) print(df.sort_values(axis=0,ascending=False)) unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]}) print (unsorted_df.sort_values(by=['col1', 'col2'], ascending=False)) 输出: 0 E 2 C 1 B dtype: object col1 col2 0 2 1 3 1 4 1 1 3 2 1 2 排序算法 sort_values()提供了从mergeesort,heapsort和quicksort中选择算法的一个配置。Mergesort是唯一稳定的算法 方法 时间 工作空间 稳定性 速度 'quicksort'(快速排序) 'mergesort'(归并排序) 'heapsort'(堆排序) O(n^2) O(n*log(n)) O(n*log(n)) 0 ~n/2 0 否 是 否 1 2 3 实例: import pandas as pd import numpy as np unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]}) sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort') print (sorted_df) 执行上面示例代码,得到以下结果 - col1 col2 1 1 3 2 1 2 3 1 4 0 2 1
来源:OSCHINA
发布时间:2020-03-28 13:19:00
在上篇文章里,我们分享了CNCF为广大Kubernetes用户建议的9项Kubernetes安全最佳实践,分享了用户使用Kubernetes管理集群时的9个能进一步确保集群安全的基本操作。 上篇文章中的建议非常好,但不足之处在于它们都过于依赖GKE了。对于那些使用谷歌服务的用户来说,GKE固然是一个很好的解决方案。然而,还有更多的人则是在亚马逊、Azure、阿里云、华为云、DigitalOcean、甚至是他们自己的基础设施上或其他他们任何想在的地方上运行着Kubernetes集群,那么此时,GKE相关的解决方案对他们而言并没有太大帮助。 对于这些用户而言,Rancher作为一个开源的解决方案,是一个很棒的选择。 Rancher Labs对待安全问题十分严肃谨慎。Rancher Labs联合创始人及首席架构师Darren Shepherd,是2018年年底Kuberntes 被爆出的首个严重安全漏洞(CVE-2018-1002105)的发现者。安全性不应该是事后的想法,也不应该是部署了不安全的集群之后才记得要去做的事。就像你建造房子时,不应该把所有物品都搬进去之后,才开始安装门锁。 在本文中,我将回顾上篇文章中CNCF提出的每个要点,并向您分析Rancher和RKE能如何在默认设置中满足这些安全建议。 升级到最新版本 这是一个合理的建议,并且不仅适用于Kubernetes。因为未修补的程序常常是攻击者的切入点。当某个安全漏洞出现、poc代码公开可用时,Metasploit之类的工具套件很快就会在其标准套件中包含这些漏洞。此时,任何会从Internet复制和粘贴命令的人都可以控制您的系统。 使用Rancher Kubernetes Engine(RKE)时,无论是单独使用还是和Rancher一起使用,您都可以选择要安装的Kubernetes版本。Rancher Labs使用原生上游Kubernetes,这使公司能够快速响应安全警报,发布修复版本的软件。因为RKE是在Docker容器中运行Kubernetes组件的。运维团队可以对关键基础架构进行零停机升级。 您可以通过Rancher的GitHub主页、官网等各个渠道接收有关新版本发布的信息。我还强烈建议您在升级之前,先在staging环境中测试新版本。如果升级出错,Rancher也可以轻松回滚到以前的版本。 启用基于角色的访问控制(RBAC) 安装RKE后,RBAC会默认启动。如果您只使用RKE或任何其他独立的Kubernetes部署,则您需要负责配置帐户、角色和绑定以保护您的集群。 如果您正在使用Rancher,它不仅会安装安全集群,还会通过Rancher服务器,代理与这些集群的所有通信。Rancher可以插入许多后端身份验证程序,例如Active Directory、LDAP、SAML、Github等。当以这种方式连接时,Rancher使您能够将现有的企业身份验证扩展到Rancher的保护伞下的所有Kubernetes集群,无论这些集群在哪里运行。 Rancher在全局、集群和项目级别启用角色,使管理员可以在一个位置定义角色并将其应用于所有集群。这种RBAC-by-default和强大的身份验证和授权控制的组合意味着从使用Rancher或RKE部署集群的那一刻起,集群就是安全的。 使用命名空间建立安全边界 由于Kubernetes处理默认命名空间的特殊方式,我不建议您使用它。我建议您为每个应用程序创建一个命名空间,将它们定义为逻辑组。 Rancher定义了一个名为Project的附加抽象层。Project是命名空间的集合,可以在其上映射角色。用户可能有权访问某一Project,但他们无法看到任何他们无权访问的Project中运行的任何工作负载,也无法与其进行交互。这样一来,其实就是有效地创建了单集群多租户。 使用Projects,管理员可以更轻松地授予对单个集群中多个命名空间的访问权限。它最大限度地减少了重复配置以及人为错误。 将敏感工作负载彼此分开 这是一个很好的建议,因为它假定了一个问题,“如果工作负载受到损害会发生什么?”。提前采取行动可以减少破坏地范围使攻击者更难以升级权限,但也并不是完全不可能。所以这可能得花费您额外的时间处理。 Kubernetes允许您设置污点(taints)和容差(torlerations),从而控制可能部署Pod的位置。 Rancher还允许您通过Kubernetes标签控制工作负载的调度。除了污点和容差之外,在部署工作负载时,您可以为主机设置 必须、应该或可以 具有的标签,这些标签会控制Pod的部署位置。 如果您的环境是静态的,您还可以将工作负载安排到特定节点。 安全的云元数据访问 该建议指出,敏感的元数据“有时可能被盗或被滥用”,但未能概述“何时”或“如何”的条件。上篇文章中提到了Shopify的赏金细节的泄露, 2018年12月13日的北美KubeCon上提到了这一事件。虽然上篇文章指出GKE具有“元数据隐藏”的功能,但值得注意的是,在最开始泄露凭据的服务,正是Google Cloud元数据API。 此外,没有任何证据显示任何其他云提供商存在相同的漏洞。 此漏洞可能存在的唯一位置是托管的Kubernetes服务,例如GKE。如果您直接或通过Rancher将RKE部署到裸机或云计算实例上,您将最终得到一个无法通过云提供商的元数据API泄露凭据的集群。 如果您正在使用GKE,我建议您激活此功能以防止任何凭据通过元数据服务泄漏。我还认为云提供商不应该将凭证嵌入到可通过API访问的元数据中。即使这样做是为了方便,但这是一种不必要的风险,可能会产生难以想象的后果。 创建和定义集群网络策略 直接部署或由Rancher部署的RKE集群默认使用Canal,当然,您也可以选择Calico或Flannel。Canal和Calico都支持网络策略。当使用Canal作为网络提供商时,Rancher部署的集群也支持Project网络策略。激活后,工作负载可以与其项目中的其他工作负载通信,而系统项目(包括入口控制器等集群范围的组件)可以与所有项目进行通信。 早期版本的Rancher默认启用Project网络策略,但这给一些不了解额外安全性的用户造成了混乱。因此,为了给用户提供最佳体验,此功能现在默认情况下已关闭,但如果您想启用,也可以在启动后轻松激活。 运行集群范围的Pod安全策略 Pod安全策略(PSP)控制Pod必须具有某些功能和配置才能在集群中运行。例如,您可以阻止特权模式、主机网络或以root身份运行容器。通过Rancher或RKE安装集群时,您可以选择是否要默认启用受限制的PSP。如果选择启用它,则您的集群将立即对工作负载权限强制实施强制限制。 受限制的和不受限制的PSP在RKE和Rancher中是相同的,因此它们在安装时激活的内容是一样的。Rancher允许无限数量的额外PSP模板,所有这些都可以在全局范围内处理。管理员定义PSP,然后将它们应用于Rancher管理的每个集群。与前面讨论的RBAC配置类似,它将安全配置保存在一个位置,并大大简化了策略的配置和应用。 加强节点安全 这不是Kubernetes特定的建议,而是一个很好的普适策略。当要与您无法控制的流量进行交互时(例如,在Kubernetes中运行的应用程序的用户点击量),应该让其在攻击面较小的节点上运行。此外,禁用和卸载不需要的服务也是必要的。还有,应该通过SSH限制root访问权限并需要sudo密码加密。在SSH密钥上使用密码短语,或使用2FA、U2F密钥或Krypton等服务将密钥绑定到用户拥有的设备。 以上这些是安全系统的基本标准配置示例。 除了受支持的Docker版本之外,Rancher在主机上不需要其他。并且,RKE只需要SSH访问,它将在继续安装Kubernetes之前安装Kubernetes支持的最新版本的Docker。 如果您想进一步减少攻击面,可以了解一下RancherOS,这是一个轻量级Linux操作系统,可以将所有进程作为Docker容器运行。System Docker仅运行提供访问所需的最少数量的进程,并在用户空间中为实际工作负载运行Docker实例。 启用审核日志(Audit Logging) Rancher服务器可在RKE集群内部运行,因此除了Kubernetes审核日志之外,激活对服务器本身的API调用的审核日志也很重要。此日志将显示用户对任何集群执行的所有操作,包括发生的事件、执行操作的人员、执行操作的时间以及执行操作的集群。从有问题的服务器发送这些日志也很重要。Rancher可以连接到Splunk、Elasticsearch、Fluentd、Kafka或任何系统日志端点,您可以从中生成可疑活动的仪表盘和警报。 有关为Rancher 服务器启用审核日志的信息,请参阅我们的文档。 ( https://rancher.com/docs/rancher/v2.x/en/admin-settings/api-audit-log/ ) 有关为RKE集群启用审核日志的信息,请参阅下一节。 安全保障行动正在进行中 真正保护Kubernetes集群需要9项以上的操作,Rancher有一份安全强化指南( https://rancher.com/docs/rancher/v2.x/en/faq/security/ )和一份自我评估指南( https://releases.rancher.com/documents/security/latest/Rancher_Benchmark_Assessment.pdf ),涵盖了CIS基准用于保护Kubernetes的100多种控制。 如果您十分在意安全性,那么Rancher、RKE以及RancherOS将会帮助您。
来源:OSCHINA
发布时间:2019-01-29 09:53:00
Pandas对象之间的基本迭代的行为取决于类型。当迭代一个系列时,它被视为数组式,基本迭代产生这些值。其他数据结构,如:DataFrame和Panel,遵循类似惯例迭代对象的键。 简而言之,基本迭代(对于i在对象中)产生: Series - 值 DataFrame - 列标签 Pannel - 项目标签 迭代Series 迭代Series 的方法和python字典对象类似 实例: df = pd.Series(['A','B','C']) #遍历series的值 for item in df: print(item) print('\n') #遍历series的键 for item in df.keys(): print(item) print('\n') #遍历series的键-值 for item, value in df.items(): print(item, value) print('\n') for item in df.items(): print(item) print('\n') for item in df.iteritems(): print(item) 输出: A B C 0 1 2 0 A 1 B 2 C (0, 'A') (1, 'B') (2, 'C') (0, 'A') (1, 'B') (2, 'C') 迭代DataFrame 迭代DataFrame提供列名 实例: import pandas as pd import numpy as np N=20 df = pd.DataFrame({ 'A': pd.date_range(start='2016-01-01',periods=N,freq='D'), 'x': np.linspace(0,stop=N-1,num=N), 'y': np.random.rand(N), 'C': np.random.choice(['Low','Medium','High'],N).tolist(), 'D': np.random.normal(100, 10, size=(N)).tolist() }) for col in df: print (col) 执行上面示例代码,得到以下结果 - A C D x y 要遍历数据帧(DataFrame)中的行,可以使用以下函数 - iteritems() - 迭代(key,value)对 iterrows() - 将行迭代为(索引,系列)对 itertuples() - 以namedtuples的形式迭代行 iteritems() 将每个列作为键,将值与值作为键和列值迭代为Series对象。 实例: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns=['col1','col2','col3']) for key,value in df.iteritems(): print (key,value) 执行上面示例代码,得到以下结果 - col1 0 0.802390 1 0.324060 2 0.256811 3 0.839186 Name: col1, dtype: float64 col2 0 1.624313 1 -1.033582 2 1.796663 3 1.856277 Name: col2, dtype: float64 col3 0 -0.022142 1 -0.230820 2 1.160691 3 -0.830279 Name: col3, dtype: float64 iterrows() iterrows()返回迭代器,产生每个索引值以及包含每行数据的序列。 实例: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for row_index,row in df.iterrows(): print (row_index,row) 执行上面示例代码,得到以下结果 - 0 col1 1.529759 col2 0.762811 col3 -0.634691 Name: 0, dtype: float64 1 col1 -0.944087 col2 1.420919 col3 -0.507895 Name: 1, dtype: float64 2 col1 -0.077287 col2 -0.858556 col3 -0.663385 Name: 2, dtype: float64 3 col1 -1.638578 col2 0.059866 col3 0.493482 Name: 3, dtype: float64 itertuples() itertuples()方法将为DataFrame中的每一行返回一个产生一个命名元组的迭代器。元组的第一个元素将是行的相应索引值,而剩余的值是行值。 示例: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for row in df.itertuples(): print (row) 执行上面示例代码,得到以下结果 - Pandas(Index=0, col1=1.5297586201375899, col2=0.76281127433814944, col3=- 0.6346908238310438) Pandas(Index=1, col1=-0.94408735763808649, col2=1.4209186418359423, col3=- 0.50789517967096232) Pandas(Index=2, col1=-0.07728664756791935, col2=-0.85855574139699076, col3=- 0.6633852507207626) Pandas(Index=3, col1=0.65734942534106289, col2=-0.95057710432604969, col3=0.80344487462316527) 注意 - 不要尝试在迭代时修改任何对象。迭代是用于读取,迭代器返回原始对象(视图)的副本,因此更改将不会反映在原始对象上。 示例: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4,3),columns = ['col1','col2','col3']) for index, row in df.iterrows(): row['a'] = 10 print (df) 执行上面示例代码,得到以下结果 - col1 col2 col3 0 -1.739815 0.735595 -0.295589 1 0.635485 0.106803 1.527922 2 -0.939064 0.547095 0.038585 3 -1.016509 -0.116580 -0.523158
来源:OSCHINA
发布时间:2020-03-28 09:53:00
本文介绍Sidecar模式的特点,及其应用的场景。熟悉 Native Cloud 或者 微服务 的童鞋应该知道,在云环境下,技术栈可以是多种多样的。那么如何能够将这些异构的服务组件串联起来,成为了服务治理的一个重大课题。而Sidecar模式为服务治理,提供了一种解决方案。 将应用程序的组件部署到单独的进程或容器中,以提供隔离和封装。此模式还可以使应用程序由异构组件和技术组成。 这种模式被称为Sidecar,因为它类似于连接到摩托车的边车。在该模式中,边车附加到父应用程序并为应用程序提供支持功能。 sidecar还与父应用程序共享相同的生命周期,与父项一起创建和退役。边车图案有时被称为搭接图案并且是分解图案。 问题背景 应用程序和服务通常需要相关的功能,例如监控、日志、集中化配置和网络服务等。这些外围任务可以作为单独的组件或服务来实现。 如果它们紧密集成到应用程序中,它们可以在与应用程序相同的进程中运行,从而有效地使用共享资源。但是,这也意味着它们没有很好地隔离,并且其中一个组件的中断可能会影响其他组件或整个应用程序。此外,它们通常需要使用与父应用程序相同的语言或者技术栈来实现。因此,组件和应用程序彼此之间具有密切的相互依赖性。 如果将应用程序分解为服务,则可以使用不同的语言和技术构建每个服务。虽然这提供了更大的灵活性,但这意味着每个组件都有自己的依赖关系,并且需要特定于语言的库来访问底层平台以及与父应用程序共享的任何资源。此外,将这些功能部署为单独的服务可能会增加应用程序的延迟。管理这些特定于语言的接口的代码和依赖关系也会增加相当大的复杂性,尤其是对于托管、部署和管理服务。 解决方案 上述问题的解决方案是,将一组紧密结合的任务与主应用程序共同放在一台主机(Host)中,但会将它们部署在各自的进程或容器中。这种方式也被称为“Sidecar(边车)模式”。 下图展示了任务与主应用程序的部署关系图。 Sidecar模式 边车服务不一定是应用程序的一部分,而是与之相关联。它适用于父应用程序的任何位置。Sidecar支持与主应用程序一起部署的进程或服务。这就像是如下图所示的边三轮摩托车那样,将边车安装在一辆摩托车上,就变成了边三轮摩托车。每辆边三轮摩托车都有自己的边车。类似同样的方式,边车服务共享其父应用程序的主机。对于应用程序的每个实例,边车的实例被部署并与其一起托管。 使用边车模式的优点包括: 在运行时环境和编程语言方面,边车独立于其主要应用程序,因此不需要为每种语言开发一个边车。 边车可以访问与主应用程序相同的资源。例如,边车可以监视边车和主应用程序使用的系统资源。 由于它靠近主应用程序,因此在它们之间进行通信时没有明显的延迟。 即使对于不提供可扩展性机制的应用程序,也可以使用边车通过将其作为自己的进程附加到与主应用程序相同的主机或子容器中来扩展功能。 Sidecar模式通常与容器一起使用,并称为边车容器。有关容器方面的内容,可以参阅 https://waylau.com/ahout-docker/ 。 Sidecar模式的实现 Spring Cloud Netflix Sidecar框架提供了Sidecar模式的现成解决方案。Spring Cloud Netflix Sidecar框架框架可以提供对其他非Spring Cloud技术栈的微服务的治理。比如,你可以使用Node或者Golang编写一个Web项目,这个服务同样可以以Sidecar模式,纳入到Spring Cloud管理中去。 下面是实现步骤。 1. 为Web项目添加健康检查接口 提供REST接口,返回JSON格式内容 {"status" : "up"} 。其中status用于描述微服务的状态,常见的取值有UP、DOWN、OUT_OF_SERVICE和UNKNOWN等。 2. 编写Sidecar微服务 创建项目,添加Eureka、Sidecar的依赖: org.springframework.cloud spring-cloud-netflix-sidecar org.springframework.cloud spring-cloud-starter-eureka 启动类上加上@EnableSidecar注解。这是一个组合注解,它整合了三个注解,分别是@EnableCircuiBreaker和@EnableDiscoveryClient。 在配置文件中加入端口号、服务名称、Eureka地址以及Web项目的端口以及健康检查地址,如: server.port=8887 spring.application.name=sidecar-mylife-service eureka.client.serviceUrl.defaultZone=http://localhost:8881/eureka/ eureka.client.instance.prefer-ip-address=true sidecar.port=8080 sidecar.health-uri=http://localhost:8080/health eureka.instance.hostname=localhost 启动项目,并访问8887接口,就可以访问到Web项目中的接口。 3. Sidecar的一些端点 以下是Sidecar的常用端点: /hosts/{serviceId} 指定微服务在Eureka上的实例列表 /ping 返回OK字符串 /{serviceId} 请求对应的微服务 4. 部署应用 将Sidecar与Web服进行部署。一般是部署在相同的主机里面。 有关Spring Cloud的更多内容,可以参阅 Spring Cloud 教程 。 参考引用 原文同步至 https://waylau.com/sidecar-pattern/ Spring Cloud 微服务架构开发实战: https://github.com/waylau/spring-cloud-microservices-development Spring Boot 企业级应用开发实战: https://github.com/waylau/spring-boot-enterprise-application-development https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
来源:OSCHINA
发布时间:2019-01-28 23:55:00
1.只需要引入HBase的客户端依赖即可。 org.apache.hbase hbase-client 1.2.1 2.HBaseUtils.java 工具类抽取 public class HBaseUtils { private static Configuration configuration; // 1.获取配置对象 static { configuration = HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","hadoop1:2181,hadoop2:2181,hadoop3:2181"); } // 2.获取连接对象 public static Admin getAdmin() throws IOException { Connection connection = ConnectionFactory.createConnection(configuration); Admin admin = connection.getAdmin(); return admin; } /*获取table*/ public static Table getTable() throws IOException { return getTable("user_info"); } public static Table getTable(String tablename) throws IOException { Connection connection = ConnectionFactory.createConnection(configuration); return connection.getTable(TableName.valueOf(tablename)); } /*关闭table*/ public static void close(Table table) throws IOException { if (table != null){ table.close(); } } // 3.释放admin public static void close(Admin admin) throws IOException { admin.close(); } public static void close(Admin admin,Table table) throws IOException { close(admin); close(table); } } 3.DDL 操作 public class TableDDL { private HBaseAdmin admin; @Before public void before() throws IOException { admin = (HBaseAdmin) HBaseUtils.getAdmin(); } /*创建表*/ @Test public void createTable() throws IOException { // 1.创建表描述器对象 HTableDescriptor ht = new HTableDescriptor(TableName.valueOf("user_info")); // 2.添加列簇 HColumnDescriptor familyColumn1 = new HColumnDescriptor("base_info"); HColumnDescriptor familyColumn2 = new HColumnDescriptor("extra_info"); ht.addFamily(familyColumn1); ht.addFamily(familyColumn2); admin.createTable(ht); } /*删除表*/ @Test public void deleteTable() throws IOException { TableName tableName = TableName.valueOf("user_info"); HTableDescriptor user_info = new HTableDescriptor(tableName); if (!admin.isTableDisabled(tableName)){ admin.disableTable(tableName); } admin.deleteTable(tableName); } /*修改表*/ @Test public void modifyTable() throws IOException { TableName tableName = TableName.valueOf("user_info"); HTableDescriptor user_info = admin.getTableDescriptor(tableName); // 2.添加列簇 HColumnDescriptor familyColumn1 = new HColumnDescriptor("base_info2"); HColumnDescriptor familyColumn2 = new HColumnDescriptor("extra_info2"); user_info.addFamily(familyColumn1); user_info.addFamily(familyColumn2); admin.modifyTable(tableName,user_info); } /*查询所有的列簇*/ @Test public void listAllFamily() throws IOException { //查询所有的列簇 HTableDescriptor user_info = admin.getTableDescriptor(TableName.valueOf("user_info")); HColumnDescriptor[] columnFamilies = user_info.getColumnFamilies(); for (HColumnDescriptor ht : columnFamilies){ System.out.println(ht.getNameAsString()); } } /*删除一个列簇*/ @Test public void removeFamily() throws IOException { TableName tableName = TableName.valueOf("user_info"); HTableDescriptor user_info = admin.getTableDescriptor(tableName); //删除 //user_info.removeFamily(Bytes.toBytes("extra_info")); //提交修改 //admin.modifyTable(tableName,user_info); admin.deleteColumn(tableName,Bytes.toBytes("extra_info")); } @After public void after() throws IOException { HBaseUtils.close(admin); } } 4.DML 操作 public class TableDML { private Table table; @Before public void before() throws IOException { table = HBaseUtils.getTable(); } /*插入一条记录 * put 'ns1:t1','r1','c1','value' * 批量插入的话,直接放入list集合即可 * */ @Test public void put() throws IOException { // 1.创建put对象 Put put = new Put(Bytes.toBytes("001")); //行建 // 2.添加列数据 put.addColumn(Bytes.toBytes("base_info"),Bytes.toBytes("name"),Bytes.toBytes("wang")); table.put(put); } /*查询一条记录*/ @Test public void get1() throws IOException { // 1.创建get对象 Get get = new Get(Bytes.toBytes("001")); Result result = table.get(get); NavigableMap base_info = result.getFamilyMap(Bytes.toBytes("base_info")); // 2.便利有序集合 Set> entries = base_info.entrySet(); for (Map.Entry entry : entries){ System.out.println(new String(entry.getKey() + "--->"+new String(entry.getValue()))); } } /*查询一条记录*/ @Test public void get2() throws IOException { // 1.创建get对象 Get get = new Get(Bytes.toBytes("001")); Result result = table.get(get); CellScanner cellScanner = result.cellScanner(); // 2.遍历 while (cellScanner.advance()){ //当前的cell Cell cell = cellScanner.current(); System.out.println(new String(cell.getFamilyArray(),cell.getFamilyOffset(),cell.getFamilyLength()));//列簇 System.out.println(new String(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength()));//列名 System.out.println(new String(cell.getValueArray(),cell.getValueOffset(),cell.getValueLength()));//列值 } } /*查询一条记录*/ @Test public void get3() throws IOException { // 1.创建get对象 Get get = new Get(Bytes.toBytes("001")); Result result = table.get(get); CellScanner cellScanner = result.cellScanner(); // 2.遍历 while (cellScanner.advance()){ //当前的cell Cell cell = cellScanner.current(); System.out.println(new String(CellUtil.cloneRow(cell)));//行建 System.out.println(new String(CellUtil.cloneFamily(cell))); System.out.println(new String(CellUtil.cloneQualifier(cell))); System.out.println(new String(CellUtil.cloneValue(cell))); } } @After public void after() throws IOException { HBaseUtils.close(table); } }
来源:OSCHINA
发布时间:2020-03-27 18:24:00
基本介绍 网络环境比较复杂、网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率,基本UI如下: Source模式 source的方式指定多个清晰度的地址,这个模式在直播场景下使用的比较多,阿里云直播服务可以提供多码率的播放流地址,详细请参考: 视频直播转码 。Aliplayer提供了下面清晰度的对应关系: Code Text OD 原画 FD 流畅 LD 标清 SD 高清 HD 超清 2K 4K 2K 4K source如何支持多清晰度,参考下面的代码: var player = new Aliplayer({ id: "player-con", isLive:true, source:'{"HD":"https://livecdn.com/appname/testhd.flv", "SD":"https://livecdn.com/appname/testsd.flv", "FD":"https://livecdn.com/appname/testfd.flv", "LD":"https://livecdn.com/appname/testld.flv" }', width: "100%", height: "500px", autoplay: true }, function (player) { console.log("播放器创建成功"); }); videoId模式 播放点播服务的视频时,采用videoId的模式, Aliplayer会获取用户在点播服务转码生成的多分辨率的视频地址,生成多清晰度选择列表,详细参考 点播转码 。 如果用户转码生成多种视频格式文件,Aliplayer将会按照mp4->m3u8->flv的顺序优先选择播放,如果有加密视频和普通视频一起,点播服务将只会返回加密视频的播放地址。Aliplayer提供了其他一些属性可以做精确的获取点播视频的播放地址: 属性名称 类型 说明 format String 指定播放地址格式可选值为mp4、m3u8、flv、mp3,默认为空 mediaType String 指定返回音频还是视频,可选值为video和audio,默认为video,audio主要是针对只包含音频的视频格式 qualitySort String 指定排序方式,desc表示按倒序排序(即:从大到小排序),asc表示按正序排序(即:从小到大排序)默认值:‘asc’ definition defaultDefinition String String 显示视频清晰度,多个用逗号分隔,比如:’FD,LD’,此值是vid对应流清晰度的一个子集,取值范围:FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K) 默认播放视频清晰度,取值范围:FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K),默认是上次播放时选择的清晰度 播放器的使用代码为: var player = new Aliplayer({ id: "player-con", width: "100%", height: "500px", autoplay: true, language: "en-us", vid : '1e067a2831b641db90d570b6480fbc40', playauth:'ddddfdfdf' format:'m3u8', mediaType:'video', qualitySort:'desc', definition:'FD,LD', defaultDefinition:'LD' }, function (player) { console.log("播放器创建成功"); }); HLS的多码率 HLS HTTP Live Streaming 是Apple提出的基于http的流媒体传输协议,支持不同带宽的多码率地址,基本格式如下: #EXTM3U #EXT-X-VERSION:4 #EXT-X-STREAM-INF:BANDWIDTH=454521,AVERAGE-BANDWIDTH=432061,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=340x192,FRAME-RATE=25.000 GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_340.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=691401,AVERAGE-BANDWIDTH=644868,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=384x216,FRAME-RATE=25.000 GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_384.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=926476,AVERAGE-BANDWIDTH=850169,CODECS="avc1.42c01f,mp4a.40.5",RESOLUTION=512x288,FRAME-RATE=25.000 #EXT-X-STREAM-INF:BANDWIDTH=7011961,AVERAGE-BANDWIDTH=6374698,CODECS="avc1.640028,mp4a.40.5",RESOLUTION=1920x1080,FRAME-RATE=25.000 GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_1920.m3u8 EXT-X-STREAM-INF:BANDWIDTH里的指定带宽,下面为此带宽使用对应分辨率的视频地址,Aliplayer解析上面的master m3u8内容,展示清晰度列表,并且会根据网络情况选择合适的清晰度播放: 阿里云的媒体处理服务支持多分变率的打包, 详细参考: 如何进行HLS打包 作者: 隽阜 原文链接 本文为云栖社区原创内容,未经允许不得转载。
来源:OSCHINA
发布时间:2019-01-28 17:21:00
每个有状态且存在复杂状态转换的对象都包含一个状态机 例如org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl 代表一个mr job,其内部就包含一个状态机: public class JobImpl implements org.apache.hadoop.mapreduce.v2.app.job.Job, EventHandler { protected static final StateMachineFactory stateMachineFactory = new StateMachineFactory(JobStateInternal.NEW) .addTransition(JobStateInternal.NEW, JobStateInternal.FAIL_ABORT, JobEventType.JOB_INIT_FAILED, new InitFailedTransition()) //JobImpl 在NEW状态 下接收到 JOB_INIT_FAILED类型的事件后 进行InitFailedTransition转换, 转换之后 JobImpl的状态变为InitFailedTransition .addTransition(JobStateInternal.NEW, EnumSet.of(JobStateInternal.INITED, JobStateInternal.NEW), JobEventType.JOB_INIT, new InitTransition()) //JobImpl 在NEW状态 下接收到 JOB_INIT类型的事件后 进行InitTransition转换, 转换之后 JobImpl的状态可能为INITED、NEW 二者中的一个 //略 .installTopology(); //JobImpl 持有的状态机 private final StateMachine stateMachine; //构造函数 public JobImpl(JobId jobId, ApplicationAttemptId applicationAttemptId,...) { //略 stateMachine = stateMachineFactory.make(this); //将stateMachineFactory添加的各种Transition 生成状态机 //略 } } 状态机构建过程 状态机构建过程就是将之前stateMachineFactory添加的各种Transition 生成状态机,最核心的就是生成stateMachineTable。 Map>> stateMachineTable = new EnumMap>>(); stateMachineTable 维护了状态之间的转化关系: 一个状态可以转成成哪些状态 一个状态可以接受哪些类型的事件 一个状态接受到事件之后做何种处理(Transition) 状态转换过程 状态转换过程就是事件处理过程 //step1: handler 处理事件 //org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl public void handle(JobEvent event) { //略 getStateMachine().doTransition(event.getType(), event); //略 } //step2: //org.apache.hadoop.yarn.state.StateMachineFactory.InternalStateMachine public synchronized STATE doTransition(EVENTTYPE eventType, EVENT event) throws InvalidStateTransitonException { currentState = StateMachineFactory.this.doTransition (operand, currentState, eventType, event); return currentState; } //step3: //org.apache.hadoop.yarn.state.StateMachineFactory private STATE doTransition (OPERAND operand, STATE oldState, EVENTTYPE eventType, EVENT event) throws InvalidStateTransitonException { Map> transitionMap = stateMachineTable.get(oldState); //获取当前状态下可以相应的事件 if (transitionMap != null) { Transition transition = transitionMap.get(eventType); //根据当前事件获取的转换 if (transition != null) { return transition.doTransition(operand, oldState, event, eventType); //执行转换 } }
来源:OSCHINA
发布时间:2020-03-27 17:44:00
2018年下半年,UCloud首尔数据中心因外部原因无法继续使用,需要在很短时间内将机房全部迁走。为了不影响用户现网业务,我们放弃了离线迁移方案,选择了非常有挑战的机房整体热迁移。经过5个月的多部门协作,终于完成了既定目标,在用户无感知下,将所有业务完整迁移到同样位于首尔的新机房内。 本文将详述这个大项目中最有难度的工作之一:公共组件与核心管理模块迁移的方案设计和实践历程。 计划 整个项目划分为四个大阶段(准备阶段、新机房建设、新旧迁移、旧机房裁撤下线)。正如一位同事的比喻,机房的热迁移,相当于把一辆高速行驶高铁上的用户迁移到另一辆高速行驶的高铁上,高铁是我们的机房,高铁上的用户是我们的业务。要让迁移可行需要两辆高铁相对静止,一个方法是把两辆高铁变成一辆,如此两者速度就一致了。UCloud机房热迁移采用类似方案,把两个机房在逻辑上变成一个机房。为此,上层的业务逻辑要在新老机房间无缝迁移,下面的管理系统也要统一成一套。 其中,我们SRE和应用运维团队主要负责以下几个工作:1)机房核心zookeeper服务的扩缩容服务;2)核心数据库中间层udatabase服务的部署和扩容;3)大部分管理服务的部署和迁移;4)核心数据库的部署和迁移。以上涉及到前期规划、方案设计、项目实施、稳定性保证、变更校验等所有方面。 挑战 我们刚接到机房整体热迁移需求时,着实有些头疼,首尔机房属于较早期部署的机房之一,相关的技术架构比较老旧。而核心数据库、核心配置服务(zookeeper)、核心数据库中间层(udatabase)等几个服务都是比较重要的基础组件,老旧架构可能会因为基础层面的变动发生复杂的大范围异常,从而影响到存量用户的日常使用。 幸好SRE团队在过去一年里,针对各种服务的资源数据进行了全面的梳理,我们开发了一套集群资源管理系统(Mafia-RMS) ,该系统通过动态服务发现、静态注册等多种手段,对存量和增量的服务资源进行了整理,每一个机房有哪些服务、集群,某个集群有哪些服务器,每一个实例的端口、状态、配置等信息,都记录到了我们的资源管理系统中,如下图所示: 图1: UCloud SRE资源管理系统-集群管理功能 通过SRE资源管理系统,可以清楚地知道首尔机房存量内部服务的集群信息、每个实例的状态。我们基于SRE资源系统还构建了基于Prometheus的SRE监控体系,通过上图右侧Monitor按钮就可以跳转到监控页面,获取整个业务的实时运行状况。 有了这些资源数据之后,剩下的就是考虑怎么进行这些服务的扩容和迁移工作。 ZooKeeper服务的扩缩容 首先是内部服务注册中心zookeeper的扩缩容。 UCloud内部大规模使用zookeeper作为内部服务注册和服务发现中心,大部分服务的互访都是通过使用zookeeper获取服务注册地址,UCloud内部使用较多的wiwo框架(C++) 和 uframework (Golang) 都是基于主动状态机定时将自己的Endpoint信息注册到zookeeper中,相同Endpoint前缀的服务属于同一个集群,因此对于某些服务的扩容,新节点使用相同的Endpoint前缀即可。wiwo和uframework两个框架的客户端具备了解析zookeeper配置的能力,可以通过对Endpoint的解析获取到真实的IP和端口信息。然后通过客户端负载均衡的方式,将请求发送到真实的业务服务实例上去,从而完成服务间的相互调用。如下图所示: 图2:UCloud 首尔机房部署调用及服务注册/发现路径图 首尔老机房的zookeeper集群是一个具有3个节点的普通集群(当时规模相对较小,3个节点足够)。 然而首尔新机房的规模要大很多,因此新机房zookeeper的集群规模也要扩充,经过我们的评估,将新机房的zookeeper集群扩充到5个节点,基本上可以满足所需。 其实,一个理想的迁移架构应该是如图3所示,整个新机房使用和老机房相同的技术架构(架构和版本统一),新架构完全独立部署,与老机房并没有数据交互工作,而用户的业务服务(如UHost/UDB/EIP/VPC等)通过某种方式平滑的实现控制和管理面的迁移,以及物理位置的迁移工作。 图3:理想状态下的老旧机房服务迁移示意图 但是理想状态在现实中无法达到,内部架构和代码逻辑的限制,导致业务实例无法平滑实现逻辑和控制层面的迁移,更何况物理层面的迁移。新部署的管理服务需要和老机房的管理服务进行通信,因此,我们调整了新机房服务的部署架构,并适配实际情况分别使用两种部署模式,如图4和图5所示: 图4: 同集群扩容模式的跨机房服务部署 图5: 新建集群灰度迁移模式的跨机房服务部署 无论是图4的同集群扩容模式,还是图5的新建集群灰度迁移模式,在zookeeper层面必须让新旧机房的zookeeper集群处于一体的状态,需要两个集群的数据一致、实时同步。因此在zookeeper的技术层面,必须将这两个集群变成一个集群,将原有的3节点的zookeeper集群,经过异地机房扩容的方式扩充到8个节点(1个leader,7个follower),只有这种模式下数据才能够保持一致性和实时性。 而对于新机房新部署的需要注册的服务来说,他们的配置文件中对于zookeeper地址的配置,却不是新建的8个ip的列表,而是只配置新机房5个IP的列表。这样新老机房的后端服务使用同一套zookeeper,但是配置的却是不同的IP,这样做的目的,是为了后续老机房下线裁撤时,所有新机房的服务不需要因为zookeeper集群的缩容而重启更新配置,只要将集群中老机房所在的3个节点下线,剩余5个节点的配置更新重新选主即可。 因此在zookeeper的机房扩容方案上,我们采用了先同集群扩容后拆分的模式。zookeeper的扩容是整个机房扩建的第一步,后续所有的服务都会依托于该操作新建的5个节点的zookeeper配置;而zookeeper集群的缩容是最后的操作,待所有的服务都扩容完成,所有业务实例迁移完成之后,将zookeeper集群进行缩容重新选主,这样即可完成整个机房的裁撤。 数据库中间层udatabase的迁移 接下来是数据库中间层udatabase的迁移工作。 图4和图5两种模式对于zookeeper的处理方式是相同的,不同点在于后端对于内部管理和控制面服务的扩容迁移方式。udatabase迁移使用图4模式,这种模式下相当于在原有的集群进行异地机房扩容,扩容的新实例使用和原有集群相同的Endpoint前缀,也就是说它们是属于同一个集群,当服务启动后,新扩容的实例的状态会与原有集群的实例相同,框架(wiwo或uframework)层会通过客户端方式从zookeeper中发现到该集群节点的变化(新增),同时使用某种负载均衡算法将请求流量路由到新的节点上。这样属于同一个集群,但却处于两个地址位置的实例都有部分流量,而进行缩容的方式就是直接将老机房同集群的服务下线即可,这样客户端就会将所有该集群的流量都转发到新机房扩容的节点上,从而完成平滑的服务扩容。udatabase通过这样的方式完成了集群的迁移过程。 新建集群灰度迁移模式 其实图4模式对于大部分服务来说都是可行的,但为什么还出现了图5所示的新建集群灰度迁移模式呢?因为某些场景下图4会有一定的不可控性。假如新建的实例(如图4中Service A Instance 2)存在软件稳定性和可靠性的问题,比如配置异常、软件版本异常、网络异常,可能导致路由到新节点的请求出现问题,会直接影响在线业务,影响的规模由扩容的节点占集群总节点的比例决定,像我们这种1:1的扩容方式,如果服务有问题可能50%的请求就直接异常了。udatabase使用图4方案,是因为其代码的稳定性比较高,功能和配置比较简单,主要依托于其高性能的转发能力。 而对于某些功能逻辑都比较复杂的业务来说(如ULB/CNAT),就使用了更稳妥的图5模式,由于业务层面支持跨集群迁移,因此可以新建一个全新的无业务流量的集群,该集群在zookeeper中的Endpoint路径前缀和原有的集群不相同,使用一个全新的路径,然后在业务层面,通过迁移平台或工具,将后端服务或实例按需迁移,整个过程可控,出现问题立刻回滚,是最安全的迁移方案。我们通用的灰度迁移平台SRE-Migrate如图6所示。 图6:UCloud内部通用业务迁移系统SRE-Migrate 机房部署平台SRE-Asteroid UCloud产品线和产品名下服务数量繁多,无论是图4还是图5的方案,都需要大量的服务部署工作。SRE团队在2018年中推进的机房部署优化项目,意在解决UCloud新机房建设(国内及海外数据中心、专有云、私有云等)交付时间长和人力成本巨大的问题,2018年底该项目成功产品化落地,覆盖主机、网络等核心业务近百余服务的部署管理,解决了配置管理、部署规范、软件版本等一系列问题。首尔机房迁移也正是利用了这一成果,才能够在很短的时间内完成近百个新集群的部署或扩容工作,图7所示就是我们的新机房部署平台 SRE-Asteroid。 图7:UCloud内部机房部署平台SRE-Asteroid 核心数据库的部署和迁移 最后,是核心数据库层面的部署和迁移工作如何进行。UCloud内部服务所使用的数据库服务为MySQL, 内部MySQL集群采用物理机/虚拟机在管理网络内自行建设,以一个主库、一个高可用从库、两个只读从库和一个备份库的方式部署,使用MHA+VIP的方式解决主库的高可用问题,使用BGP/ECMP+VIP的方式解决从库的负载均衡和高可用问题,大体的架构如图8所示: 图8:UCloud内部MySQL服务架构图 首尔新老机房使用的内部MySQL数据库集群的架构跟上图类似,为了进行新老机房的集群切换,我们设计了如下的方案,如图9所示: 图9:首尔集群内部数据库集群迁移示意图 整体来说,为了保证核心数据库集群能够稳定完成迁移工作,我们抛弃了双主库、双写的切换方案,防止因为网络或其他因素导致新老集群的数据不一致、同步异常等问题。我们采用了最简单的解决方案,在业务低峰期停止console服务,直接修改数据库中间层配置切换的方案。 在部署阶段,我们在首尔新机房部署了相同高可用架构的MySQL集群,老机房的数据库逻辑备份导入,将新老机房的集群做成级联模式(图9中绿色虚线),新机房的主库作为老机房的从库,通过MySQL异步同步的方式(binlog)进行数据同步。我们使用pt-table-checksum工具,定期对两个集群的数据一致性进行校验,以保证新老机房的数据完全一致。与此同时使用内部开发的拓扑分析工具,将所有调用老集群数据库主从库的业务情况确认清楚(主要是哪些udatabase集群)。 部署完成后,数据一致性和实时性通过级联得到保障,udatabase仍然访问老机房的MySQL主库的VIP(图9蓝色虚线),此时并没有业务通过直连的方式写入新机房的主库(为保证数据的一致性,新机房的主库暂时设置成只读模式)。 在确定迁移时间和迁移方案之后,在某个业务低峰期的时间点,公告用户后,首尔机房整个console的操作停止一段时间(期间首尔机房的API请求可能会失败),在确定流量很低的前提下,通过修改数据库中间层(udatabase cluster)中数据库主从库VIP的配置,将业务从老机房MySQL集群切换到新机房MySQL集群,此时该业务所有的请求都会流入到新集群(图9红色虚线)。为了防止老集群仍然有业务写入或读取,我们将老集群主库设置为只读,然后继续通过tcpdump抓包分析老集群上可能存在的请求并手动处理,最终保证所有业务都使用新的MySQL集群。 由于需要对主机、网络、存储和监控等几个业务都进行集群切换,为保证不互相影响,使用逐个集群处理的方式,整体切换加检测的时间耗时近1个小时。 在整个机房切换的过程中,只有数据库集群是有状态的业务,因此重要性和危险性也比较高,该服务切换完成后,最重要的一个环节也宣告完成,剩下的业务层面(UHost/UDB/EIP等)的迁移工作由各个业务团队自行完成即可。 收尾 最终所有业务实例完成迁移后,理论上就可以完成本次机房迁移工作了,不过还是要对老机房仍然运行的实例进行流量监测,确认没有流量后进行下线,停止服务。最后对老机房的zookeeper集群(老机房的3个zookeeper节点)进行请求监测和连接监测,确认没有本机房以及新机房发来的请求(排除zookeeper集群自主同步的情况),在完成确认后,进行最后的zookeeper集群变更,将整个集群(8个节点)拆分成老机房(3个节点)和新机房(5个节点),老机房的集群直接停止服务,而新机房的新的zookeeper集群完成新的选主操作,确认同步正常和服务正常。 写在最后 经历了上文所述的一切操作后,整个首尔机房的迁移工作就完成了,整个项目历经5个月,其中大部分时间用于业务实例的迁移过程,主要是针对不同的用户要确定不同的迁移策略和迁移时间;内部管理服务的迁移和部署所花费的时间还是比较少的。UCloud内部针对本次迁移的每一个步骤都制定了详细的方案规划,包括服务依赖分析、操作步骤、验证方式、切换风险、回滚方案等,为了完成如此巨大的新机房热迁移工作,团队投入了充足的人力和时间。首尔新机房具有更好的建设规划、硬件配置和软件架构,能够为用户提供更好的服务,我们相信这一切都是很有价值的。
来源:OSCHINA
发布时间:2019-01-28 16:56:00
基本概念(Cluster Analysis) “物以类聚” 分析方法 系统聚类 快速聚类 类型 Q型聚类:对 样品 的聚类 R型聚类:对 变量 的聚类 聚类统计量 距离 欧氏距离 马氏距离 兰式距离 相关系数 距离矩阵 相关矩阵 距离矩阵计算——dist(),cor() 系统聚类法 基本思想:先将样品分成类,每个样品为一类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,直到所有样品归为一类为止 类间距离 的计算方法 最短距离法(single) 最长距离法(complete) 中间距离法(median) 类平均法(avera) 重心法(centroid) 离差平方和法(Ward) 通用公式 hclust(D,method=) 快速聚类法kmeans 概念:基本思想是将每一个样品分配给最近中心(均值)的类中 原理:n个对象分k类,类内 相似度 高,类间相似度低 相似度:类中对象的均值mean来计算 kmeans(x,centers) 不足:只有在类均值被定义的情况下才能使用,对孤立点、噪声影响敏感 knn,kmed,中位数 变量变换 平移变换 极差变换 标准差变换 主成分 对数 x1=c(2.5,3.0,6.0,6.6,7.2,4.0,4.7,4.5,5.5) x2=c(2.1,2.5,2.5,1.5,3.0,6.4,5.6,7.6,6.9) X=data.frame(x1,x2) D=dist(X,diag = TRUE,upper = FALSE) hc=hclust(D,"complete") hc names(hc) hc$merge hc$height #系统聚类图 plot(hc) rect.hclust(hc,3) #显示分类步骤 cutree(hc,9:1) #系统聚类分析步骤 library(mvstats) d7.2=read.table('clipboard',header = T) X7.2=msa.X(d7.2) plot(d7.2,gap=0) D=dist(d7.2) D H=H.clust(d7.2,"euclidean","single",plot=T)#最短距离法 H.clust(d7.2,"euclidean","complete",plot=T)#最长距离法 H.clust(d7.2,"euclidean","median",plot=T)#中间距离法 H.clust(d7.2,"euclidean","average",plot=T)#类平均法 H.clust(d7.2,"euclidean","centroid",plot=T)#重心法 H.clust(d7.2,"euclidean","ward",plot=T)#ward cutree(H,3) #快速聚类法 set.seed(123) x1=matrix(rnorm(1000,0,0.3)) x2=matrix(rnorm(1000,1,0.3)) X=rbind(x1,x2) H=hclust(dist(X)) plot(H) km=kmeans(X,2) km$cluster plot(X,pch=km$cluster) #10变量2000样品 set.seed(123) x1=matrix(rnorm(10000,0,0.3),ncol = 10) x2=matrix(rnorm(10000,1,0.3),ncol = 10) Y=rbind(x1,x2) km=kmeans(Y,2) km$cluster plot(Y,pch=km$cluster) km 参考资料: https://next.xuetangx.com/course/JNU07011000851/151569
来源:OSCHINA
发布时间:2020-03-27 11:29:00
https://blog.csdn.net/diantun00/article/details/81180694 https://illya-chekrygin.com/2017/08/26/configuring-certificates-for-jenkins-kubernetes-plugin-0-12/
来源:OSCHINA
发布时间:2019-02-27 14:36:00
1.hbase是一个分布式系统,需要依赖HDFS作为存储介质,并依靠zookeeper来完成监控主从节点上下线。 2.安装准备如下: 1.HBase角色 HMaster(主节点,一台Active,一台StandBy) HReginServer(数据节点,多台) 2.依赖 HDFS集群、zookeeper集群【启动】 3.上传安装包解压 tar -zxvf hbase-1.2.1.bin.tar.gz -C apps/ 4.进入conf目录修改配置文件如下 1.vi hbase-env.sh export JAVA_HOME=/usr/local/java/jdk1.8.0_231 export HBASE_MANAGES_ZK=false #自己的zookeeper,不启动它内置的 2.vi hbase-site.xml hbase.rootdir hdfs://hadoop01:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum hadoop01:2181,hadoop02:2181,hadoop03:2181 hbase.master.info.port 60010 3.vi regionservers hadoop01 hadoop02 hadoop03 5.拷贝到其他机器 scp -r hbase-1.2.1/ hadoop02:$PWD scp -r hbase-1.2.1/ hadoop03:$PWD 6.启动前看看hdfs、zookeeper是否启动 # 1.一台一台启动 bin/hbase-daemon.sh start master bin/hbase-daemon.sh start regionserver # 2.全部启动,统一时间记得。要不同步会出现错误。 bin/start-hbase.sh # 3.要想启用备用的master,只需要在另外一台机器执行 bin/hbase-daemon.sh start master # 3.hadoop01:16010可以查看web页面 7.命令行客户端 体验即可,一般要用java程序访问 cd bin/hbase bin/hbase shell >status >建表等等。。。 8.java客户端 略
来源:OSCHINA
发布时间:2020-03-27 11:24:00
pod.yaml apiVersion: v1 kind: Pod metadata: name: two-containers labels: label1: ok label2: nok annotations: label3: good label4: nogood namespace: mynamespace spec: restartPolicy: Always containers: #--------------------swarm service-------------------# - name: swarm-container-name0 image: 192.168.175.143:5000/swarm:0.0 imagePullPolicy: Always ports: - name: exposeport containerPort: 9090 hostPort: 9090 env: - name: sex value: boy - name: addr value: guangzhou volumeMounts: - mountPath: /root/test readOnly: true name: mountfunction #--------------------swarm service--------------------# #--------------------jenkins service------------------# - name: jenkins-container-name1 image: 192.168.175.143:5000/android:0.2 imagePullPolicy: Always ports: - containerPort: 8083 hostPort: 8083 - containerPort: 22 hostPort: 2222 volumeMounts: - mountPath: /home/jenkins/.jenkins readOnly: false name: share-data #--------------------jenkins service------------------# #--------------------common setting-------------------# volumes: - name: share-data nfs: server: 192.168.175.143 path: "/home/ubuntu/jenkins/JENKINS_HOME" - name: mountfunction hostPath: path: "/home/ubuntu/STU" nodeSelector: slave: "146" dnsPolicy: "None" dnsConfig: nameservers: - 8.8.8.8 - 10.192.27.32 - 10.192.33.32 #--------------------common setting-------------------# deployment_python_http.yml apiVersion: apps/v1 kind: Deployment metadata: name: service-test-1 spec: replicas: 3 selector: matchLabels: app: service_test_pod1 template: metadata: labels: app: service_test_pod1 spec: containers: - name: simple-http image: 192.168.175.149:5000/swarm:0.0 imagePullPolicy: IfNotPresent ports: - name: http containerPort: 9090 hostPort: 7777 nginx-deploy-v1.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: 192.168.175.143:5000/nginx:0.0 ports: - name: expose-port containerPort: 80
来源:OSCHINA
发布时间:2019-02-27 13:41:03
Hive只在一个节点上安装即可 1.上传tar包 2.解压 tar -zxvf hive-1.2.1.tar.gz -C /apps/ 3.安装mysql数据库(切换到root用户)(装在哪里没有限制,只有能联通hadoop集群的节点) 4.配置hive (a)配置HIVE_HOME环境变量 vi conf/hive-env.sh 配置其中的$hadoop_home 1.配置hive环境变量,编辑 vi /etc/profile #set hive env export HIVE_HOME=/root/apps/hive-1.2.1 export PATH=${HIVE_HOME}/bin:$PATH source /etc/profile 2.配置hadoop环境变量【安装hadoop时候已配置】 cd apps/hive-1.2.1/conf 4.1 cp hive-env.sh.template hive-env.sh vi hive-env.sh 将以下内容写入到hive-env.sh文件中 export JAVA_HOME=/usr/local/java-1.8.231 export HADOOP_HOME=/root/apps/hadoop-2.6.5 export HIVE_HOME=/root/apps/hive-1.2.1 4.2 配置元数据 vi hive-site.xml 添加如下内容: javax.jdo.option.ConnectionURL jdbc:mysql://192.168.52.200:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root username to use against metastore database javax.jdo.option.ConnectionPassword 123456 password to use against metastore database 5.安装hive和mysq完成后,将mysql的连接jar包拷贝到hive安装目录的/lib目录下 如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行) mysql -uroot -p #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION; FLUSH PRIVILEGES; grant all privileges on *.* to root@"192.168.52.200" identified by "mysql" with grant option; FLUSH PRIVILEGES; 【注意】:需要配置hadoop和hive的环境变量,在启动hive之前需要启动hadoop的hdfs、yarn 6. Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar 7.1 启动hive程序 bin/hive 【注意】移植很强悍,只需要需改好的hive-1.2.1拷贝到其他机器,不许做任何修改,直接可启动用,如: scp -r hive-1.2.1/ hadoop02:/root/apps/ 7.2 显示当前使用的库,和开启字段名称 set hive.cli.print.current.db=true; set hive.cli.print.header=true; 8.0如果启动hive服务、客户端呢??? # 启动服务hiveserver2 10000端口 bin/hiveserver2 # 这里没有后台运行 nohup bin/hiveserver2 1>/dev/null 2>&1 & # 后台运行服 # 开启beeline客户端 bin/beeline beeline>!connect jdbc:hive2://hadoop1:10000 用户名root 直接回车 客户端很好看!!!!! # 退出客户端 beeline>!quit 9.0 建内部表(默认是内部表default) 字段之间 , 分开的 create table trade_detail(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by ','; 9.1 建外部表 建外部表,任意目录,可以非/usr/warehouse/下,外部表删除后,hdfs中的数据目录不会删除。 create external table td_ext(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by ',' location '/lod/20190202/'; 10. 创建分区表 10.1 普通表和分区表区别:有大量数据增加的需要建分区表 create table log (id bigint, url string) partitioned by (daytime string) row format delimited fields terminated by ','; 10.2 **导入本机数据到分区表 hdfs的hive仓库中 1.手动上传 2.hive命令,再次执行的话会追加数据 hive>load data local inpath '/root/log1.log/' log partition(daytime='20190904'); # 指定分区20190904 10.3 分区表加载数据 select * from log where daytime='20190904'
来源:OSCHINA
发布时间:2020-03-27 11:19:00
毋庸置疑,K8s已经成为云容器编排系统的标准,但是,如果缺乏K8s环境相关的安全问题认识的话,会致使各种组件暴露在网络集群内外的攻击之下。本文将介绍通过强身份验证如何确保企业的K8s集群免受外部攻击。 这是关于Kubernetes安全性的三篇系列文章中的第一篇,在本系列文章中,我们将依次介绍如何确保企业的Kubernetes集群免受外部攻击、内部攻击,以及如何处理资源消耗或noisy neighbors问题。 毋庸置疑,Kubernetes已经成为云容器编排系统的标准,据Cloud Native Computing Foundation(CNCF)的定义,它提供了一个“自动化部署、扩展以及跨主机集群操作应用程序容器的平台”。但是,如果缺乏Kubernetes环境相关的安全问题认识的话,会致使各种组件暴露在网络集群内外的攻击之下。 锁定API服务器,Kubelets Kubernetes环境中有多种可由外部访问的组件,包括应用程序编程接口(API)服务器、kubelet以及数据存储。如果没有正确锁定和保护它们的话,这些组件有可能会造成数据泄漏和系统损害。 Kubernetes为开发、运维和安全团队提供了一个API结构,可用于和应用程序和Kubernetes平台交互。Kubelet是一个在节点上运行并且读取容器清单的服务,它确保定义了的容器已经启动并运行。Kubernetes利用etcd分布式键值存储来保存和复制Kubernetes在整个集群中使用的数据。基本上,最经常受到攻击的Kubernetes系统是那些根本没有设置访问控制的系统。 Goins指出,Kubernetes易于部署,在默认情况下并没有内置太多确保安全性的东西。例如,直到2017年年中,容器编排系统才开始具有RBAC(基于角色的访问控制)功能。 Kubernetes 1.8版本的亮点之一是RBAC(基于角色的访问控制),这是一种用于管理Kubernetes资源周围权限的授权机制。RBAC允许配置灵活的授权策略,可以在不需要重启集群的情况下进行更新。 “在很多Kubernetes部署中,一旦出现compromise,用户可以使用root权限安装和运行他们想要的软件。”Goins说,“黑客和网络犯罪分子希望进入一个系统,升级他们的权限,接着转向其他系统,开始收集信用卡和个人身份识别数据等信息。” 2018年12月在Kubernetes爆出的首个安全漏洞——特权升级漏洞(CVE-2018-1002105),当时是由Rancher Labs联合创始人及首席架构师Darren Shepherd发现的。该漏洞演示了用户如何通过Kubernetes API服务器建立和后端服务器的连接。建立连接之后,攻击者可以通过网络连接直接向后端集群服务(如kubelets)发送任意的请求。该漏洞让任何用户在任何计算节点上都拥有完整的管理员权限。后来发布了专门修复受支持的Kubernetes版本的补丁,在1.10.11,1.11.5和1.12.3中都提供了这样的补丁。 企业该如何保护K8s集群免受外部攻击 Goins建议,Kubernetes用户需要做的第一件事是完全关闭外部API访问,或者将该功能封装在某种强身份验证中设置保护。为了减轻外部攻击的威胁,信息技术/安全管理员必须确保只有必要的Kubernetes服务能对外暴露。此外,他们必须设置身份验证并且给所有公开的服务配置正确的网络安全策略。 Handy Tecchnologies的Alexander Uricoli在一篇博客中写道:“除非你在kubelet上指定了一些标志(flags),否则它在默认操作模式下,是会接受未经身份验证的API请求的。”在这篇博客中Uricoli分析了黑客是如何入侵同时个人服务器上的Kubernetes集群的: https://medium.com/handy-tech/analysis-of-a-kubernetes-hack-backdooring-through-kubelet-823be5c3d67c Uricoli说:“看来有人找到了一种方法,可以在一个正在运行的容器上放置一些加密挖掘软件,然后执行这个过程。”Kubernetes API服务器虽然面向internet公开,但是受到证书身份验证的保护。 结果,同事的服务器公开了kubelet端口(tcp 10250和tcp 10255)。Uricoli指出,尽管问题已显而易见,这样的入侵仍然应该引起大家对Kubernetes的部署的一些问题的关注。如果你的用户可以通过网络节点来访问你的节点,那么kubelet API就是一个通往集群的API后门,它功能齐全且未经身份验证。如果用户已经花了很多心思在webhook、RBAC或其他方法启用身份验证和授权上,那么他们也同样应该将kubelet好好地锁定上。 互联网安全中心(CIS)建议用户为kubelet连接部署HTTPS。CIS在关于为Kubernetes 1.11建立安全配置的指南中写道,“从API服务器到kubelets的连接可能带有机密和密钥等敏感数据。因此,在API服务器和kubeletes之间的任何通信中使用在途加密(in-transit)是非常重要的。” Kubernetes用户应该禁用对API服务器的匿名请求。启用时,没有被其他配置好的身份验证方法拒绝的请求将被视为匿名请求,然后API服务器会处理这些请求。根据CIS的说法,Kubernetes的用户应该依靠身份验证来授权访问,并切拒绝匿名请求,而组织应该根据需要实现可控制的访问。 Goins指出,加强内部集群用户防御的安全控制——RBAC、隔离以及权限限制——对于保护Kubernetes免受外部攻击同等重要。 他说:“如果有人使用任何内部用户的账户从外部访问集群,他们会立刻获得完全访问权限。”所以,这并不是说你需要内部控制来抵御外部的攻击。而是说如果你没有这些措施,当受到攻击的时候你就遭大殃了。 结 语 Rancher Kubernetes平台拥有着超过一亿次下载量,我们深知安全问题对于用户而言的重要性,更遑论那些通过Rancher平台在生产环境中运行Docker及Kubernetes的数千万用户。 2018年年底 Kubernetes被爆出的首个严重安全漏洞CVE-2018-1002105 ,就是由Rancher Labs联合创始人及首席架构师Darren Shepherd发现的。 2019年1月 Kubernetes被爆出仪表盘和外部IP代理安全漏洞时 ,Rancher Labs也是业界第一时间向用户响应,确保了所有Rancher 2.x和1.6.x的用户都完全不被漏洞影响。 未来Rancher将会向用户分享更多容器及Kubernetes安全技巧。在下一篇博客中,我们将分享三种保护Kubernetes不受内部攻击的方法:基于角色的访问、Kubernetes特性(如逻辑隔离,即命名空间)和Rancher资源(如Project)。记得保持关注~
来源:OSCHINA
发布时间:2019-02-27 12:41:00
判别分析(Discriminat Analysis) 概念:多元统计分析中判别样本所属类型的一种统计分析方法 方法:在已知的分类之下,对新的样本,利用此方法选定判别标准,以判断将该新样品置于哪个类中 种类 确定性判别:Fisher型 线性型 距离型 非线性型 概率性判别:Bayes型 概率型 损失型 线性判别函数(linear discriminatory function) 求Fisher线性判别函数 计算判别界值 建立判别标准 两总体距离判别 马氏距离(统计距离) 协方差矩阵 等方差阵(等价于Fisher判别)——直线判别 异方差阵——曲线判别(qda) 多总体距离判别 协方差矩阵相同——线性判别 协方差矩阵不相同——非线性判别 Bayes判别准则 概率判别 损失判别 概率最大、损失最小 正态总体的Bayes判别 Bayes判别函数求解 先验概率 密度函数 协方差矩阵 后验概率计算 #建立Fisher线性判别函数 d6.1=read.table('clipboard',header = T) d#基本统计分析 boxplot(x1~G,d6.1) t.test(x1~G,d6.1) boxplot(x2~G,d6.1) t.test(x2~G,d6.1) #Logistic模型分析 summary(glm(G-1~x1+x2,family = binomial,data=d6.1)) #Fisher判别分析 attach(d6.1) plot(d6.1$x1,d6.1$x2) text(d6.1$x1,d6.1$x2,adj=-0.5) library(MASS) ld=lda(G~x1+x2,d6.1) ld #判断 lp=predict(ld) G1=lp$class data.frame(G,G1) tab1=table(G,G1) tab1 sum(diag(prop.table(tab1))) #非线性判别模型 qd=qda(G~d6.1$x1+d6.1$x2) qp=predict(qd) G2=qp$class data.frame(G,G1,G2) #多类距离判别 d6.3=read.table('clipboard',header = T) #线性判别(等方差) ld3=lda(d6.3$G2~d6.3$Q+d6.3$C+d6.3$P) ld3 #异方差,二次判别 ld4=qda(G~d6.1$x1+d6.1$x2) ld4 #Bayes判别 ld41=lda(d6.3$G2~d6.3$Q+d6.3$C+d6.3$P,prior=c(1,1,1)/3) ld41 #先验概率不等 ld42=lda(d6.3$G2~d6.3$Q+d6.3$C+d6.3$P,prior=c(5,8,7)/20) ld42 #概率结果 predict(ld41,data.frame(Q=8,C=7.5,P=65)) predict(ld42,data.frame(Q=8,C=7.5,P=65)) 参考资料: https://next.xuetangx.com/course/JNU07011000851/151569 ​​​​​​​
来源:OSCHINA
发布时间:2020-03-27 10:05:00
本文作者:y****n 人脸识别技术在 AI 时代不仅可以带来便利,同时也提高了效率。8月21日,百度大脑开放日在乌镇举办 “乘风新基建,加速产业智能化升级” 专场,桐乡市经济和信息化局副局长陈再飞、乌镇镇科协秘书长钱永琪、桐乡市工业互联网企业联合会会长于亚东等出席活动。 会上,百度大脑发布了新近开放和升级的 AI 能力, 重磅推出乘风人脸通行考勤平台,并在现场实操模拟通行考勤场景演示平台部署过程, 全面展现百度大脑人脸识别服务的端边云协同的解决方案。同时, 由百度主办,乌镇镇人民政府、桐乡市经济和信息化局与桐乡市工业互联网联合会协办的乌镇 X EasyDL 产业智能创新大赛也正式启动。 陈再飞在致辞中表示:“我们将与百度加大合作力度,把打造乌镇 AI 高地作为共同目标和任务,把开放日等一系列活动办好、办扎实,政企合办 EasyDL 产业智能创新大赛,推动产业创新与升级。” “乘风平台”实现端云结合一站式管理 随着人工智能技术的不断升级,“刷脸”已成为新的行业趋势。目前,人脸识别系统已经在写字楼、智慧园区、景区人脸验票、考场实名核验、酒店等场所被广泛应用。也仍有不少企业使用指纹考勤,或采用传统的 IC 卡门禁系统,但这样较为传统的方式弊病也愈发明显: 指纹打卡识别失灵、上下班打卡高峰、进出携带不方便、遗忘丢卡现象还有很大的安全隐患。 而市场上现有的一些人脸识别的硬件、算法、软件仅能交付单点的功能性产品,还需要企业自行开发后端业务管理平台。但人脸识别管理系统业务逻辑复杂,需要与花样繁多的硬件、算法做适配与兼容,开发成本高、周期长、部署/运维难度大,对企业也是极大的挑战。 为了更好地解决这些难题,本次开放日百度发布了乘风人脸通行考勤平台,该平台依托百度大脑人脸识别能力,提供端到端的一站式通行考勤的解决方案,可以 满足企业对智慧通行、无感考勤等场景的管理需求,实现跨地域、跨环境的人脸设备在线管理,适配多模态设备接入,实现端云数据同步。 乘风平台支持公有云和私有化两种部署和使用方案, 灵活应对各类项目的需求。在前端设备上无论是业务已有的抓拍机器,识别 Pad,或其他第三方厂商设备、用户自研的硬件设备,百度度目硬件设备都可以兼容,灵活利旧。同时黑名单、访客、VIP、员工等人脸库的自定义创建、对应的考勤通行策略的自定义创建,差异化的策略管理皆可灵活编辑。实时的通行考勤记录与报表,对设备的状态跨地域管理等业务功能,能够全面支撑客户基于人脸识别能力更加高效、安全地进行通行、考勤管控,较好地覆盖了多地多分公司多店的考勤、通行管理场景。 直播现场,产品经理还进行了实操演示,模拟了考勤通行场景,并演示了整个平台部署过程。从点击开始使用,到下载配套软件、不同设备添加、人脸库管理,考勤通行策略的制定,到最终系统功能使用, 只需要10分钟,零代码开发即可完成, 同时展现出乘风人脸通行考勤平台灵活易用、兼容性强、功能完善的显著优势。 不断创新升级 百度大脑 AI 进行时 乘风平台之所以能够具备这样的优势,还要得益于百度大脑一直以来持续领先的 AI 技术能力,此次开放日上百度大脑产品经理向开发者们展示了百度大脑开放平台7-8月新增和升级的 AI 能力。 在人脸识别方面, 有4项能力升级优化,包括人脸离线识别 SDK 升级、H5 视频活体检测能力升级、H5 端人脸实名认证解决方案升级、黑眼圈/眼袋检测能力开放邀测; 在文字识别方面, 共有6项能力升级优化,2项能力公测上线,7项新能力开放邀测,涉及通用场景文字识别、卡证文字识别、财务票据文字识别、医疗票据文字识别、汽车场景文字识别以及其他场景文字识别。 在内容审核方面, 百度大脑不断优化图像、文本审核能力,持续丰富审核维度、提升识别精度; 在语音技术方面, 在线语音合成上线2个新款精品音库,并支持按次数方式购买,低至0.5元/千次; 在语言与知识方面, 智能招聘解决方案开放邀测、合同智能处理开放邀测、智能对话定制与服务平台 UNIT 3项能力全新升级。由于本月也是百度大脑语言与知识主题月,因此还有主题月系列活动等着大家参与。 除此之外,可以提供完善的学习和实训环境的百度 AI Studio 也在不断更新相关内容,助力 AI 算法工程师的成长;百度 AI 市场也更新了数据,AI 商品发布达到1300+,成交金额达到千万级。 可以说,从技术到硬件,从场景到应用, 百度大脑始终在坚持“软硬一体化”发展,更有效的降低各行业应用 AI 技术的门槛。 截至目前,百度大脑已是服务规模最大的 AI 开放平台,已开放 269项 技术能力,有 超210万 开发者使用。 政企联合举办大赛 用 EasyDL 加速产业 AI 转型 在百度和波士顿咨询公司的联合调研中, 约86%的市场需求需要定制开发业务场景下的 AI 模型。 正是基于这样的市场诉求,百度推出了 EasyDL 零门槛 AI 开发平台,用户根据可视化页面提示,通过采集与标注数据、训练模型、部署模型的核心操作流程,即可获得公有云 API、本地服务器部署、设备端 SDK、软硬一体方案等类型 AI 服务,方便企业将 AI 服务快速集成在自身业务系统中。 现场还通过一系列 EasyDL 实际落地场景的案例介绍,向大家展示了各行各业如何应用 EasyDL 实现产业创新和 AI 转型。例如:慧安信科通过使用百度 EasyDL 实现实时 监管非机动车辆乱停乱放现象; 安徽恒科结合 EasyDL 训练的机械车辆识别模型, 实时监控工地光缆下是否有机车出现, 保障光缆安全;搭把手通过使用百度 EasyDL 软硬一体开发套件 ,制作智能厨余垃圾回收箱 等。目前 EasyDL 产品服务已经广泛应用到工业、安防、互联网、零售、物流、智能硬件、教育 、医疗、电商等各个行业,成为诸多企业的首选。 为了吸引更多企业、开发者感受 AI 的魅力,此次开放日上,百度携手乌镇镇政府、桐乡市经济和信息化局、桐乡市工业互联网联合会正式启动乌镇 X EasyDL 产业智能创新大赛, 无论企业还是个人,只要有 AI 应用落地的场景与需求,都可以通过本届大赛,定制 AI 服务,解决行业实际问题。 目前大赛已在百度大脑 AI 开放平台 AI Studio 比赛板块开启报名通道。报名需要提交使用 EasyDL 训练 AI 模型信息、创意思路、产业价值等相关内容。 大赛于9月底将完成初审和复审,并公布决赛名单;10月22日将迎来线下决赛路演与颁奖。 原文链接地址: https://developer.baidu.com/topic/show/291191
来源:OSCHINA
发布时间:2020-08-26 10:40:00
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 Cloud Toolkit 是免费的本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云 等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具。获查看详情: https://cn.aliyun.com/product/cloudtoolkit VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验以下任何一个功能: 将本地 Visual Studio Code 中的代码,一键打包、部署到任意的阿里云 ECS 服务器; 将本地 Visual Studio Code 中的代码,一键打包、部署到任意的远程服务器; 向任意的阿里云 ECS 或者 任意远程服务器 发送并执行指定的命令(即将发布); VSCode 版本的插件正不断更新迭代中,不久将会有更多强大的功能上线,请期待!或向我们提出需求! 如何下载插件? 开发者可以通过在线安装或离线安装方式来下载插件: 在线安装:从 Visual Studio Code 的 Marketplace 进行安装,访问插件页面: https://marketplace.visualstudio.com/items?itemName=alibabacloud-cloudtoolkit.toolkit-vscode&ssr=false#overview 离线安装:在插件的群里(文末扫码进群)获得离线安装包,进行离线安装; 阿里云 Cloud Toolkit 和其他任何插件安装方式一致,因此不做赘述,下面为大家详细介绍插件功能。 一键打包部署 一、添加服务器 如下图所示,在 Visual Studio Code 左侧,点击阿里云图标,在出现的菜单中,点击 Alibaba Cloud Toolkit - Host View 打开机器视图界面。 然后点击右上角 Add Host 按钮,出现添加机器界面,如下图。按照表单提示,填入对应的机器 IP,端口、用户名和密码即可。 二、部署 点击 Run Configurations - Deployments - Deploy to Host 创建一个新的部署配置,配置界面如下: 在 Deploy to Host 对话框设置部署参数,然后单击 Apply,即可保存。 部署参数说明: Name:未配置定义一个名字,以便更容易区分多个配置; File:选择打包方式; Project:选择待部署工程的根目录; Build Output Directory:打包之后的 Output 目录; Webpack Configuration:Webpack 配置; Target Host:部署的远程目标服务器; Target Directory:远程目标服务器上的指定部署目录; After deploy:输入应用启动命令,如 sh /root/restart.sh,表示在完成应用包的部署后,需要执行的命令 —— 对于 Java 程序而言,通常是一句 Tomcat 的启动命令。 查看更多:https://yq.aliyun.com/articles/743855?utm_content=g_1000103370 上云就看云栖号:更多云资讯,上云案例,最佳实践,产品入门,访问:https://yqh.aliyun.com/
来源:OSCHINA
发布时间:2020-02-11 20:57:00
安装kudu-python包参照官方文档: https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/kudu_development.html To install the Kudu Python client: Update all the packages on your system using the following command: sudo yum -y update Install the extra packages for the Enterprise Linux distribution: sudo yum -y install epel-release Install the Python package manager: sudo yum -y install python-pip Verify the version of the PIP manager that you just installed: pip --version Install Cython: sudo pip install cython Download the following files: wget http://username:password@archive.cloudera.com/p/cdh6/6.3.3/redhat7/yum/RPMS/x86_64/kudu-1.10.0+cdh6.3.x-1822539.x86_64.rpm wget http://username:password@archive.cloudera.com/p/cdh6/6.3.3/redhat7/yum/RPMS/x86_64/kudu-client-devel-1.10.0+cdh6.3.x-1822539.x86_64.rpm Install the kudu package from the local directory: sudo yum -y localinstall ./kudu-* Install the package used for developing Python extensions: sudo yum -y install python-devel Upgrade the setup tools: sudo pip install --upgrade pip setuptools Install the C++ compiler: sudo yum -y install gcc-c++ Install the Kudu-python client: sudo pip install kudu-python==1.10.0 Install kudu-python: sudo pip install kudu-python 上面,有个需要cloudera账户密码的wget地址。其实只要来这个地址,就可以不用登陆就能下载了: https://archive.cloudera.com/cdh6/6.3.2/redhat7/yum/RPMS/x86_64/ 实际上,要下载的包有三个,分别是: kudu-1.10.0+cdh6.3.2-1605554.el7.x86_64.rpm 2019-11-12 13:43 161.00MB kudu-client-devel-1.10.0+cdh6.3.2-1605554.el7.x86_64.rpm kudu-client0-1.10.0+cdh6.3.2-1605554.el7.x86_64.rpm 2019-11-12 13:44 2019-11-12 13:43 57.00KB 4.00MB 就可以了。 我绕了一个弯路,按照官方文档装失败了。 然后就在usr/lib64下面,手动地添加了一个 libkudu_client.0.so 文件(软连接) 从我的CDH自动部署的Kudu项目里面找出来的。 https://community.cloudera.com/t5/Support-Questions/Using-kudu-with-Python/td-p/59185/ 然后再使用pip或者setuptools工具,把kudu包装了上去。
来源:OSCHINA
发布时间:2020-02-11 15:14:00
一文看懂pandas的透视表pivot_table 一、概述 1.1 什么是透视表? 透视表是一种可以对 数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能, 而在pandas中它被称作pivot_table。 1.2 为什么要使用pivot_table? 灵活性高,可以随意定制你的分析计算要求 脉络清晰易于理解数据 操作性强,报表神器 二、如何使用pivot_table 首先读取数据,数据集是火箭队当家球星James Harden某一赛季比赛数据作为数据集进行讲解。 数据地址 。 先看一下官方文档中pivot_table的函数体: pandas.pivot_table - pandas 0.21.0 documentation pivot_table(data, values=None, index=None, columns=None,aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All') pivot_table有四个最重要的参数 index、values、columns、aggfunc ,本文以这四个参数为中心讲解pivot操作是如何进行。 2.1 读取数据 import pandas as pd import numpy as np df = pd.read_csv( 'h:/James_Harden.csv',encoding= 'utf8') df.tail() 数据格式如下: 2.2 Index 每个pivot_table必须拥有一个index, 如果想查看哈登对阵每个队伍的得分,首先我们将对手设置为 index : pd.pivot_table(df,index=[ u'对手' ]) 对手成为了第一层索引,还想看看对阵同一对手在不同主客场下的数据,试着将对手与胜负与主客场都设置为index,其实就变成为了两层索引 pd.pivot_table(df,index=[ u'对手' , u'主客场' ]) 试着交换下它们的顺序,数据结果一样: pd.pivot_table(df,index=[ u'主客场' , u'对手' ]) 看完上面几个操作, Index就是层次字段,要通过透视表获取什么信息就按照相应的顺序设置字段 ,所以在进行pivot之前你也需要足够了解你的数据。 2.3 Values 通过上面的操作,我们获取了james harden在对阵对手时的所有数据, 而Values可以对需要的计算数据进行筛选,如果我们只需要james harden在主客场和不同胜负情况下的得分、篮板与助攻三项数据: pd.pivot_table(df,index=[ u'主客场' , u'胜负' ],values=[ u'得分' , u'助攻' , u'篮板' ]) 2.4 Aggfunc aggfunc参数可以设置我们对数据聚合时进行的函数操作。 当我们未设置aggfunc时,它默认 aggfunc='mean' 计算均值。我们还想要获得james harden在主客场和不同胜负情况下的总得分、总篮板、总助攻时: pd.pivot_table(df,index=[ u'主客场' , u'胜负' ],values=[ u'得分' , u'助攻' , u'篮板' ],aggfunc=[np.sum,np.mean]) 2.5 Columns Columns类似Index可以设置列层次字段,它不是一个必要参数,作为一种分割数据的可选方式。 #fill_value填充空值,margins=True进行汇总 pd.pivot_table(df,index=[ u'主客场'],columns=[ u'对手'],values=[ u'得分'],aggfunc=[np.sum], fill_value= 0,margins= 1 ) 现在我们已经把关键参数都介绍了一遍,下面是一个综合的例子: table=pd.pivot_table(df,index=[ u'对手' , u'胜负' ],columns=[ u'主客场' ],values=[ u'得分' , u'助攻' , u'篮板' ],aggfunc=[np.mean],fill_value= 0 ) 结果如下: aggfunc也可以使用dict类型,如果dict中的内容与values不匹配时,以dict中为准。 table=pd.pivot_table(df,index=[ u'对手', u'胜负'],columns=[ u'主客场'],values=[ u'得分', u'助攻', u'篮板'],aggfunc={ u'得分':np.mean, u'助攻':[min, max, np.mean]},fill_value= 0) 结果就是助攻求min,max和mean,得分求mean,而篮板没有显示。
来源:OSCHINA
发布时间:2020-02-10 22:55:00
# default_exp china # 上面一行用于nbdev中声明本模块的名称。必须是notebook的第一个Cell的第一行。 china 描述:抗击新冠病毒(6)-# 全国总体情况分析。 功能:载入data/china.csv文件,进行绘图输出和分析。 模块:使用JupyterLab、Python、nbdev等完成。用到的Python模块包括: re,正则表达式解析。 json,JSON格式解析。 pandas,数据表格分析。 数据来源: http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml 源码-https://github.com/openthings/anti2020ncov 参考: JupyterLab-数据实验室 文学式编程-nbdev入门教程 Pandas快速入门 更多参考: https://my.oschina.net/u/2306127?q=pandas 抗击新冠病毒(1)-开源软件与数据项目 抗击新冠病毒(2)-基于Jupyter+nbdev的数据分析 抗击新冠病毒(3)-探索在线数据资源 抗击新冠病毒(4)-获取并保存在线数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import * china = pd.read_csv("./data/china.csv") china = china.sort_values(by='日期') 趋势图绘制 # 绘制增加量趋势图 def draw(dfx): myfont = FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc',size=24) fig=plt.figure(figsize=(48,12), dpi=250) p1=fig.add_subplot(1,1,1) p1.set_xticklabels(dfx['日期'], rotation=15, fontsize='small',fontproperties=myfont) #显示数据。 p1.plot(dfx['日期'],dfx['新增确诊'],color='red',linewidth=3,label='新增确诊') p1.plot(dfx['日期'],dfx['新增疑似'],color='#BB0000',linewidth=3,label='新增疑似') p1.plot(dfx['日期'],dfx['新增治愈'],color='green',linewidth=3,label='新增治愈') p1.plot(dfx['日期'],dfx['新增重症'],color='#660000',linewidth=3,label='新增重症') p1.bar(dfx['日期'],dfx['新增死亡'],color='black',label='新增死亡') plt.title(u'全国新增病例数量(NCP)-2020年01-02月',fontproperties=myfont) plt.legend(loc=0,ncol=1,prop=myfont) plt.grid(True) plt.gcf().autofmt_xdate() plt.show() # 绘制累计指标趋势图 def drawa(dfx): myfont = FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc',size=24) fig=plt.figure(figsize=(48,12), dpi=250) p1=fig.add_subplot(1,1,1) p1.set_xticklabels(dfx['日期'], rotation=15, fontsize='small',fontproperties=myfont) #显示数据。 p1.plot(dfx['日期'],dfx['累计确诊'],color='red',linewidth=3,label='累计确诊') p1.plot(dfx['日期'],dfx['现有疑似'],color='#BB0000',linewidth=3,label='现有疑似') p1.plot(dfx['日期'],dfx['累计治愈'],color='green',linewidth=3,label='累计治愈') p1.bar(dfx['日期'],dfx['累计死亡'],color='black',label='累计死亡') plt.title(u'全国累计病例数量(NCP)-2020年01-02月',fontproperties=myfont) plt.legend(loc=0,ncol=1,prop=myfont) plt.grid(True) plt.gcf().autofmt_xdate() plt.show() 全国新增病例数量(NCP)-2020年01-02月 draw(china) 全国累计病例数量(NCP)-2020年01-02月 drawa(china)
来源:OSCHINA
发布时间:2020-02-10 22:49:00
# default_exp province # 上面一行用于nbdev中声明本模块的名称。必须是notebook的第一个Cell的第一行。 province 描述:抗击新冠病毒(5)-# 使用pandas进行数据分析. 功能:载入data/china.csv文件,进行绘图输出和分析。 模块:使用JupyterLab、Python、nbdev等完成。用到的Python模块包括: re,正则表达式解析。 json,JSON格式解析。 pandas,数据表格分析。 源码-https://github.com/openthings/anti2020ncov 参考: JupyterLab-数据实验室 文学式编程-nbdev入门教程 Pandas快速入门 更多参考: https://my.oschina.net/u/2306127?q=pandas 抗击新冠病毒(1)-开源软件与数据项目 抗击新冠病毒(2)-基于Jupyter+nbdev的数据分析 抗击新冠病毒(3)-探索在线数据资源 抗击新冠病毒(4)-获取并保存在线数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import * prov = pd.read_csv("./data/prov_20200209.csv") #prov #prov['省份'].values.tolist() 各省的病例情况图 #中文乱码问题,https://www.linuxidc.com/Linux/2019-03/157632.htm def draw(dfx): myfont = FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc') fig=plt.figure(figsize=(48,12), dpi=250) p1=fig.add_subplot(1,1,1) p1.set_xticklabels(dfx['省份'], rotation=30, fontsize='small',fontproperties=myfont) #显示数据。 p1.plot(dfx['省份'],dfx['确诊'],color='red',linewidth=3,label='确诊') p1.plot(dfx['省份'],dfx['治愈'],color='green',linewidth=3,label='治愈') p1.bar(dfx['省份'],dfx['死亡'],color='black',label='死亡') plt.title(u'各省病例数量-2020/02/08',fontproperties=myfont) plt.legend(loc=0,ncol=1,prop=myfont) plt.grid(True) plt.gcf().autofmt_xdate() plt.show() # 绘制各省的病例情况图。 draw(prov) 分省区的地市病例情况图 city = pd.read_csv("./data/city_20200208.csv") #city # 绘制指定省份的地市病例情况图。 def drawc(province): dfx = city[city['省份']==province] #print(dfx) #查询Linux系统的可用字体:fc-list :lang=zh myfont = FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc') fig = plt.figure(figsize=(48,6), dpi=250) p1 = fig.add_subplot(1,1,1) p1.set_xticklabels(dfx['城市'], rotation=30, fontsize='small',fontproperties=myfont) #显示数据。 p1.plot(dfx['城市'],dfx['确诊'],color='red',linewidth=3,label='确诊') p1.plot(dfx['城市'],dfx['治愈'],color='green',linewidth=3,label='治愈') p1.bar(dfx['城市'],dfx['死亡'],color='black',label='死亡') plt.title(province + u'各地市病例数量-2020/02/08',fontproperties=myfont) plt.legend(loc=0,ncol=1,prop=myfont) plt.grid(True) plt.gcf().autofmt_xdate() plt.show() return dfx # 绘制所有省的所有地市统计图。 ind = 1 for each in prov['省份']: print(ind, each) ind = ind + 1 try: result = drawc(each) except: print("ERROR!") 输出图形如下:
来源:OSCHINA
发布时间:2020-02-10 19:21:00
# default_exp getdata # 上面一行用于nbdev中声明本模块的名称。必须是notebook的第一个Cell的第一行。 getdata 描述:抗击新冠病毒(4)-获取并保存在线数据。 功能:获取数据,转换为列表格式,保存到*.c s v文件,用于后续的分析和绘图输出。 模块:使用JupyterLab、Python、nbdev等完成。用到的Python模块包括: requests,访问web服务网站。 re,正则表达式解析。 json,JSON格式解析。 BeautifulSoup,HTML格式解析。 pprint,格式化输出。 pandas,数据表格分析。 源码-https://github.com/openthings/anti2020ncov 参考: JupyterLab-数据实验室 文学式编程-nbdev入门教程 抗击新冠病毒(1)-开源软件与数据项目 抗击新冠病毒(2)-基于Jupyter+nbdev的数据分析 抗击新冠病毒(3)-探索在线数据资源 #hide from nbdev.showdoc import * #export from bs4 import BeautifulSoup from parser import * #regex_parser import re import json import time import logging import datetime import requests import pprint 预设网络地址和创建请求头。 丁香园-新型冠状病毒肺炎疫情实时动态, https://ncov.dxy.cn/ncovh5/view/pneumonia?from=singlemessage&isappinstalled=0 中国疾控中心, http://www.chinacdc.cn , 分布图 http://2019ncov.chinacdc.cn/2019-nCoV/ 全国卫健委-新型冠状病毒肺炎疫情防控, http://www.nhc.gov.cn/xcs/xxgzbd/gzbd_index.shtml 全国卫健委-官方网站, http://www.nhc.gov.cn 世界卫生组织(WHO), https://www.who.int/zh # export # 使用丁香园的数据。 url = "https://ncov.dxy.cn/ncovh5/view/pneumonia?from=singlemessage&isappinstalled=0" headers = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36' } #保存的文件名。 dateof = '20200207' 从Web服务获取网页,并解析为JSON格式。 Python之json使用 #export def getweb(): session = requests.session() session.headers.update(headers) r = session.get(url) soup = BeautifulSoup(r.content, 'lxml') #获取省市数据。 area_information = re.search(r'\[(.*)\]', str(soup.find('script', attrs={'id': 'getAreaStat'}))) area = json.loads(area_information.group(0)) return area 保存分省的数据到data/prov_日期.csv文件。 # export # 写入文件,分省数据。 def saveprovice(area): fprovince = "data/" + "prov_" + dateof + ".csv" fp = open(fprovince, "w") fp.write("省份,确诊,疑似,治愈,死亡\r") for a in area: fp.write(a['provinceName']+','+ \ str(a['confirmedCount'])+','+ \ str(a['suspectedCount'])+','+ \ str(a['curedCount'])+','+ \ str(a['deadCount'])+ '\r') fp.close() print("writed to "+ fprovince + "\r\n") 保存分市的数据到文件 data/city_日期.csv。 # export # 写入文件,分市数据。 def savecity(area): fcity = "data/" + "city_" + dateof + ".csv" fc = open(fcity, "w") fc.write("省份,城市,确诊,疑似,治愈,死亡\r") for p in area: cities = p['cities'] for c in cities: fc.write(p['provinceName']+','+ \ c['cityName']+','+ \ str(c['confirmedCount'])+','+ \ str(c['suspectedCount'])+','+ \ str(c['curedCount'])+','+ \ str(c['deadCount'])+'\r') fc.close() print("writed to "+ fcity + "\r\n") 查看保存的文件。 这里用到Notebook的魔法操作符,参考: IPython 6/Jupyter的magic操作符 IPython的Magics魔法操作符 !ls -l data 总用量 176 -rw-r--r-- 1 supermap supermap 1445 2月 9 22:49 china.csv -rw-r--r-- 1 supermap supermap 11840 2月 7 23:02 city_20200207.csv -rw-r--r-- 1 supermap supermap 12156 2月 8 18:39 city_20200208.csv -rw-r--r-- 1 supermap supermap 12169 2月 10 18:20 city_20200209.csv -rw-r--r-- 1 supermap supermap 126285 2月 9 15:09 IMG_7082.JPG -rw-r--r-- 1 supermap supermap 780 2月 7 23:02 prov_20200207.csv -rw-r--r-- 1 supermap supermap 784 2月 8 18:39 prov_20200208.csv -rw-r--r-- 1 supermap supermap 790 2月 10 18:20 prov_20200209.csv nbdev 适用工具 # 将notebook转化为python的*.py代码,保存到项目名称的子目录中。 from nbdev.export import * notebook2script() Converted 00_digdata.ipynb. Converted 01_getdata.ipynb. Converted 10_charts.ipynb. Converted 10_china.ipynb. Converted index.ipynb.
来源:OSCHINA
发布时间:2020-02-10 19:00:00