开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:【视频】阿里云云计算 ACP 认证(3)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1006/detail/15117
【视频】阿里云云计算 ACP 认证(3)
4、CDN的接入
1、开通CDN服务
2、添加CDN加速域名(添加加速域名后就会有一个对应的CNAME地址)
3、绑定CNAME(阿里只能给到CNAME地址,然后我们需要到DNS所在的服务商进行解析。如果是使用阿里云自己的域名的服务就在阿里的域名服务中做解析即可。如果需要加速的域名不是在阿里云购买,而是在其它的一些域名商购买就需要到该域名商的后台将域名解析的方式改成CNAME解析,并且将CNAME地址指向CDN分配的地址中。整个过程做完就完成了CDN的接入。
但是现在由于一些法规的要求,直接设置CNAME不一定能够成功,不是填一个源站地址即可。例如我们要填入一个要加速的域名:www.a.com,要返回一个CNAME域名xx.alikunlun.com,源站的域名最终要落到一个ip上,所以我们还要提供一个源站的ip/域名,可能是ECS或者OSS的地址都可以。
如果源站是一个ip,为了验证我们是源站的所有者,我们需要根据要求例如在源站ip对应的端口8080放置一个可以进行访问的文件,此时如果发现该ip确实可以被访问并且我们是所有者,才会分配给我们域名)
CDN 的应用场景-网站站点应用加速
动静分离后将静态资源通过CDN做进一步加速。如果资源通过OSS放出,建议配一个CDN,因为我们面向公网去提供服务给用户,让用户通过OSS拉取数据,本身一定会消耗OSS的下行流量。下行流量的费用每GB每月的单价事实上CDN相对更便宜,一般来讲CDN每月每GB的单价比OSS下行流量的三分之一还要少,所以此时一般会上CDN,在程序上并不需要做改动,只是域名解析时原来解回的过程中多了CDN。但是这里面只能针对静态资源进行解析加速。
5、CDN 应用场景-视音频点播/大文件下载分发加速
与音视频有关的场景通过CDN可以非常好的降低延时,体验会比直接通过OSS直接下发媒体资源更好。例如上图,客户端上传视频文件,通过负载均衡进行上传,上传后先到达OSS(其实先到ECS上,ECS再存储到OSS上。
大部分是先到ECS判断用户是否正常,资源是否正常)转码服务可以自己进行转,也可以放到OSS上调用MTS媒体转码服务通过云来做转码,例如优酷会有五路转码:标清、高清等。转码完成后的数据流放到OSS上再通过CDN加速出去。
6、CDN 应用场景-视频直播加速
直播与点播比较大的一个区别在于:点播里的数据量是完整的,提前准备好的;而直播是将最近一两秒的数据边录制边推流边加速。录制视频是整个视频做加速,直播是流的方式。
过程相同,视频设备进行采集推流,推到OSS上也是经由媒体转码转完放到OSS上,再由CDN进行加速,然后直接来到终端设备上。CDN到离自己最近的边缘节点的设备的过程从采集、推流、转码到推到CDN,一般是在一到两秒。
所以我们现在通过视频直播做加速,大部分看到的画面都是一到两秒之前的画面,但并不一定。因为整个加速事实上是根据我们的画面本身的构成、分辨率、复杂程度操作。决定我们体验速度的很大程度上是最后产生的单位的流资源的数据量大小。以直播为例,会采用GOP来衡量。GOP:Group Of Pictures图形组,以24帧为例,每一秒画面都需要有24帧,帧与帧之间的内容稍微存在区别。
例如讲课ppt一个画面可以存在很久,所以像这种画面压缩比较简单。但是如果是画面很剧烈的电影,压缩不好压缩。所以单位gop的数据量可能有多有少,所以之后的传输、转码等时间就会有区别。
CDN应用场景-移动应用加速同样类似,不做讲解。
二、云数据库 RDS
1、什么是 RDS
阿里云关系型数据库RDS ( Relational Database Service )是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和MariaDBTX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
稳定可靠:阿里在提供该服务保证稳定性,可靠是指数据的可靠性和可用性。一般来说RDS至少两个或三个节点,除非是单机基础。如果使用标准节点数可靠性比较高。
可弹性伸缩:弹性有水平方向的维度和垂直方向上的弹性,与ECS讨论的维度相同。
垂直方向上的弹性是升配或降配,这是云提供的服务。水平方向上的弹性:在ECS上是一台不够使用两台,类似在RDS上也是一台不够可以使用多台。因为数据库有点复杂,所以不能直接通过增加系统成员的方式来水平扩展能力。
所以数据库水平方向的弹性大致有几大类:第一种是读写分离,是最容易实现的一种方式,因为我们的数据库服务在目前时代绝大多数的压力都是读多写少,例如逛淘宝,数据库的查询动作与实际下单修改订单增删改的动作频次相比可能达到100:1甚至更高,以此类推,12306买票等也类似,所以此时考虑增加一个节点只读节点来拓展读的能力,然后在后台设置每一个只读节点所分配到的读的权重百分比即可。该过程不需要修改代码,基本上是透明的。第二种是数据量多压力大,一个RDS不够,例如一张表有好几个亿的数据或者说数据量非常大,可能需要放几百个RDS才能放下。
此时就用到分库分表的方式,只靠一个RDS不够,需要多个RDS共同承担数据,此时就需要用到另一个服务PolarDB-x,为之前的DRDS,相当于通过该组件该产品将多个RDS从逻辑上进行归并。
例如现在系统上有10个RDS,我们不是自己操作RDS,而是来到PolarDB-x返回一个地址,通过它去将数据、SQL请求来中转。由PolarDB-x来判断,给PolarDB-x设置各种分库分表的规则,本质上是一个分布式数据库的中间件,让我们使用这种多库场景可以有使用单库场景的体验。
2、目标
·将耗时费力的数据库管理任务承担下来,使用户能够专心于应用开发和业务发展
·用户可根据业务需求对RDS进行弹性伸缩
3、可靠性保证
·RDS采用主从备份架构(一主一备节点),具备高可用性,承诺不低于99.95%的服务可用性
·SSD云盘(SSD所在的盘可以选择云盘也可以选择本地盘)每份数据具有3个副本(云盘有3个副本,本地盘有两到三个副本,但是只有99.9999的可靠性),承诺不低于99.9999999%的数据可靠性
·本地盘基于RAID,6个9的数据可靠性,如果使用云盘,数据可靠性会更高,但是性能相比弱
4、为什么选择 RDS?
l 自研内核:AliSQL(开源的,对官方版进行了优化,提高了性能,
例如5.6、5.7,比官方版性能提高了60%以上,相当于是用相同的费用获得更多的性能,便宜易用,性能较高)
l 便宜易用
l 高可用容灾:本身自带一主一备的两个节点,形成高可用的两个
架构。例如现在提供了两个RDS,为一主一备,主备之间是自动进行数据同步,如果主备在一个机房中,那么就形成了应用级别的容灾即集群级容灾。主和备可以选在在一个地域的不同可用区中,即机房级容灾。
主在A可用区,备在B可用区,如果A可用区机房掉电,数据在备中仍然可以进行工作,因为主备会进行切换,这就是机房级容灾。而跨地域容灾现在一个RDS是做不到的,如果跨地域容灾需要有两个RDS:例如如图两个主才能形成跨地域级容灾
l VS自建
l 高安全性:
1、事前:可以设置白名单(控制访问源,不在白名单
中的无法访问),可以控制访问的链路,例如白名单可以设置通用白名单或高安全白名单,高安全白名单可以指定通过某个vpc进行访问,就是设置访问链路某个VPC。事前都是从访问源进行约束。
1、事中:可以加一些SSL安全证书,还可以增加TDE透明数据加密(数据库的库文件落盘时加密保存,提取时解密提取。开启后就会自动操作,避免脱库风险)
2、事后:本身自带操作审计,可以通过购买数据库审计来做一些朔源的操作
l 高性能