赞
踩
云计算岗位一般的要求是:
1、常见操作系统的使用与Linux命令行、Shell脚本
2、云计算基础:包括虚拟化技术、云存储、云安全等。
3、网络: 包括NAT、TCP/IP
4、Docker&云原生K8S
5、开发环境搭建与部署
6、微服务、DevOps与云原生监控
7、故障排除、日志分析、变更管理
国内常见云平台:
国外常见云平台:
购买云服务商提供的公共服务器
公有云是最常见的云计算部署类型。公有云资源(例如服务器和存储空间)由第三方云服务提供商拥有和运营,这些资源通过 Internet 提供。在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。Microsoft Azure 是公有云的一个示例。
在公有云中,你与其他组织或云租户
共享相同的硬件、存储和网络设备,并且你可以使用 Web 浏览器访问服务和管理帐户。公有云部署通常用于提供基于 Web 的电子邮件、网上办公应用、存储以及测试和开发环境。
公有云优势:
成本更低:无需购买硬件或软件,仅对使用的服务付费。
无需维护:维护由服务提供商提供。
近乎无限制的伸缩性:提供按需资源,可满足业务需求。
高可靠性:具备众多服务器,确保免受故障影响。
自己搭建云平台,或者购买
私有云由专供一个企业或组织使用的云计算资源构成。私有云可在物理上位于组织的现场数据中心,也可由第三方服务提供商托管。但是,在私有云中,服务和基础结构始终在私有网络上进行维护,硬件和软件专供组织使用。
这样,私有云可使组织更加方便地自定义资源,从而满足特定的 IT 需求。私有云的使用对象通常为政府机构、金融机构以及其他具备业务关键性运营且希望对环境拥有更大控制权的中型到大型组织。
私有云优势:
没有一种云计算类型适用于所有人。多种不同的云计算模型、类型和服务已得到发展,可以满足组织快速变化的技术需求。
部署云计算资源有三种不同的方法:公共云、私有云和混合云。采用的部署方法取决于业务需求、数据中心预算以及企业运维能力等。
云计算的服务模式是分几层的,分别是:
基础设施在最下端,平台在中间,软件在顶端。
如何理解:
计算、存储、网络、安全;是计算机领域的四大核心。每家云厂商都提供了现成的核心资源,让我们能秒级开通和使用,像用水电一样方便。云未来将会成为水电一样的基础设施
以下是常用的云设施。需要我们熟练掌握
接下来我们开始实战学习这些云设施;每个资源都使用按量付费的方式,用完需要自行销毁,避免大量扣费。
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了采购IT硬件的前期准备,让我们
像使用水、电、天然气等公共资源
一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。简而言之,云服务器就是把固定配置的服务器升级为随时可以调整配置的云端服务器。
https://www.aliyun.com/product/ecs
容灾概念:(一个服务器会容易引发单点故障)
机器级:同一个机房,还有相同的很多机器可以顶上;
机房级:有不同的机房,一个机房故障,其他顶上
地域级:在不同的地域,有其他机房可以顶上
行星级:在不同的星球,有其他机房可以顶上
…
一个机器,一定是在某个地方的某个机房
通俗解释:
- 实例:一台云服务器
- 块存储:云上的硬盘
- 快照:系统、硬盘数据的备份
- 弹性网卡:云上服务器的网卡
- VPC:专有网络VPC(Virtual Private Cloud);组建局域网。需要用到交换机、内网IP
- 内网IP:也叫私有IP,如果用VPC进行组网,每一个ecs都有自己的内网IP,在同一个VPC内这些IP可以互相访问
- 公网IP:暴露给外界用的IP,可以在世界各地进行访问
- 安全组:Linux的防火墙规则
- 访问方式:如何登录进ecs进行操作。可以通过web控制台,也可以使用一些终端连接。
- 地域:物理区,比如北京、上海、杭州。就是某个城市的机房。不同地域不能互通
- 可用区:某个城市不只会有一个机房。众多机房合起来可以划分很多可用区。同一地域不同可用区可以互通
理解:
操作系统选好、设置账号密码
选择公共镜像 CentOS7.9 设置自定义密码
启动服务器
推荐使用 WindTerm 软件。进行连接。
以spzx-manager为例部署
我们先在云服务器安装spzx-manager需要的环境并配置好
然后修改spzx-manager的配置文件,打包
部署spzx-manager到云服务器测试
1Panel 是一个现代化、开源的 Linux 服务器运维管理面板 。1Panel 的功能和优势包括:
https://1panel.cn/docs/
下载安装1Panel
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
下载安装: 一路回车默认安装
保存好账号密码访问地址等信息:
上面安装1Panel后,需要使用端口号11293
,ECS服务器需要再安全组中开放此端口
安全组是实例维度的虚拟防火墙,用于保护ECS实例的网络安全。
配置安全组规则,测试访问性
每个ECS都会绑定一个安全组。可以在左侧菜单,或者ECS服务器的操作中找到安全组的配置。
配置安全组
找到上面ECS服务器使用的安全组修改
新开放11293
端口
参考安装1Panel的公网地址使用账号密码访问
登录成功
MySQL
Redis
创建数据库db_spzx
导出尚品甄选项目原数据库的库表
ECS服务器MySQL导入库表数据
点击导入备份
点击上传
选择之前导出的spzx数据库sql文件
上传
恢复
导入库表
开放Adminer:9853端口
安全组开放MySQL:3306端口
安全组开放MinIO:9000,9001端口
安装Adminer:MySQL客户端工具
使用Adminer连接MySQL:
设置Adminer服务器地址:使用ECS服务器地址
**输入账号密码:**使用云服务器IP连接
查看操作库表
访问 阿里云服务器ip:9000 访问MinIO
账号密码按照安装时配置的输入
创建桶spzx
访问权限设置为public
连接服务器打开终端
参考以下命令安装jdk17
cd /opt
wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
tar -zxvf openjdk-17_linux-x64_bin.tar.gz
vim /etc/profile
#java_home
export JAVA_HOME=/opt/jdk-17
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
echo $JAVA_HOME
# 查看安装的jdk版本:如果能执行表示安装成功
java -version
修改spzx-manager的application-dev.yml
数据库、minio连接地址修改为阿里云服务器的地址
redis地址修改为127.0.0.1
为了测试方便,修改
cd /opt
# 后台启动spzx-manager
nohup java -jar spzx-manager-1.0-SNAPSHOT.jar &
参考章节5.4
安全组配置,开放spzx-manager端口8501
http://ECS服务器IP:8501/doc.html
专有网络VPC(Virtual Private Cloud):https://www.aliyun.com/product/vpc
专有网络是您独有的云上虚拟网络,您可以将云资源部署在您自定义的专有网络中。
- 云资源不可以直接部署在专有网络中,必须属于专有网络内的一个交换机(子网)内。
- 交换机(vSwitch)是组成专有网络的基础网络设备,用来连接不同的云资源实例
- 专有网络是地域级别的资源,专有网络不可以跨地域,但包含所属地域的所有可用区
- 可以在每个可用区内创建一个或多个交换机来划分子网。
192.168.0.0/16 CIDR表示法,表示一个网络范围。
132.26.0.0/14 网络范围有多大
每个专有网络都由至少一个私网网段、一个路由器和至少一个交换机组成。
对于不需要连接到Internet的一些网络,比如每个教室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网IP地址。
在创建专有网络和交换机时,您需要以CIDR地址块的形式指定专有网络使用的私网网段。
您可以使用下表中标准的私网网段及其子网作为VPC的私网网段,也可以使用自定义地址段作为VPC的私网网段。更多信息,请参见网络规划。
网段 | 说明 |
---|---|
192.168.0.0/16 (A类) | 可用私网IP数量(不包括系统保留地址):65,532 |
172.16.0.0/12(B类) | 可用私网IP数量(不包括系统保留地址):1,048,572 |
10.0.0.0/8 (C类) | 可用私网IP数量(不包括系统保留地址):16,777,212 |
自定义地址段 | 除100.64.0.0/10、224.0.0.0/4、127.0.0.0/8、169.254.0.0/16及其子网外的自定义地址段。 |
系统自动创建,我们无需干预
路由器(vRouter)是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接专有网络内的各个交换机,同时也是连接专有网络和其他网络的网关设备。每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器至少关联一张路由表。
更多信息,请参见路由表概述。
将VPC一个大的网段,划分成几个不同的小网段,这些小网段可以跨可用区互通,从而实现跨可用区的容灾机制
交换机(vSwitch)是组成专有网络的基础网络设备,用来连接不同的云资源。创建专有网络后,您可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。您可以将应用部署在不同可用区的交换机内,提高应用的可用性。
更多信息,请参见创建和管理交换机。
创建VPC并规划交换机网段
创建三台ECS,分别使用指定的VPC和交换机。用ping命令,测试三台机器的集群内联通性
结论:跨VPC的机器不互通,同一个VPC下的机器即使跨可用区(跨交换机)也互通。
VPC做环境隔离;
#安装Nginx
yum install nginx
#启动nginx
systemctl start nginx
#查看Nginx位置
whereis nginx
# 修改 /etc/nginx/nginx.conf 端口为8080
port 8080
# 重启nginx
nginx -s reload
云盘采用多副本的分布式机制,具有低时延、高性能、持久性、高可靠等性能,可以为云服务器提供安 全可靠,性能优越的块存储服务。
根据存储的数据类型和云盘的创建方式,云盘可以作为系统盘和数据盘使用。
登录到云服务器使用 df -h
命令验证磁盘空间。看到 /mydata
有 40G
即可
df -h
: 确定挂载点为 /dev/vdb1
umount /dev/vdb1
blkid
: 查看磁盘分区信息
删除/etc/fstab
中数据盘分区文件系统的自动挂载信息
vim /etc/fstab
/dev/vdb1
信息,注释或者删除即可去阿里云管理控制台卸载磁盘
镜像提供了创建ECS实例所需的信息,包括实例的操作系统、初始化应用数据及预装的软件。镜像文件相当于副本文件,包含了一块或多块云盘中的所有数据。
前置:开通一个服务器,安装好nginx,修改index.html页面为自定义内容
创建ECS时,可以选择自定义镜像。
阿里云负载均衡(Server Load Balancer,简称SLB)是云原生时代应用高可用的基本要素。通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升应用系统的可用性。 阿里云SLB包含面向4层的网络型负载均衡NLB、面向7层的应用型负载均衡ALB和传统型负载均衡CLB,是阿里云官方云原生网关。
阿里云
负载均衡SLB
支持以下类型的负载均衡:
前置:开通3台ECS,安装Nginx,各自配置不同首页页面,测试可以被访问
**NAT网关( Network Address Translation Gateway)**可以提供网络地址转换服务。阿里云提供公网NAT网关和VPC NAT网关两款产品。
可以根据业务需求灵活选择。
公网NAT网关的网络拓扑如下图所示。您可以选用公网NAT网关,满足您以下业务场景需求:
某公司在阿里云创建了专有网络VPC(Virtual Private Cloud)和交换机,交换机中创建了多个ECS实例。ECS实例均未分配固定公网IP,也未绑定弹性公网IP(Elastic IP Address,简称EIP)。因公司业务发展,每台ECS实例都需要访问互联网。
解决:
- 可以通过公网NAT网关的SNAT功能,配置SNAT条目,使得VPC内无公网IP的ECS实例可以通过公网NAT网关绑定的EIP访问互联网。
注意:VPC中不存在目标网段为0.0.0.0/0的自定义路由。如果存在,请删除该路由条目。
步骤:
前置:
确认订单数据:
等待创建
确认公网IP地址:
结果:
公网NAT:
- SNAT只是保证同一个vpc下的ecs可以访问公网,并不是保证从公网可以访问ecs
- DNAT可以让公网访问某个ecs
某公司在阿里云创建了ECS实例,并在ECS实例上部署了应用服务,但未给ECS实例分配固定公网IP,也未绑定弹性公网IP(Elastic IP Address,简称EIP)。因公司业务发展,公司计划通过公网NAT网关DNAT功能的IP映射或者端口映射方式,实现ECS实例面向互联网提供服务。
所有实验完成都记得销毁资源。
SLB、EIP、NAT、ECS、EBS、VPC、安全组
在互联网行业业务发展中,Web 应用具有间歇性高并发的特点,常见于电商,社交,文娱等行业之中。可以通过负载均衡,动态、静态内容分离加速,应用服务器、数据库弹性伸缩以及采用高效缓存等机制提高应用整体性能及响应时间。
另外,借助应用监控、应用防护、性能测试等产品,可为互联网业务在上线前及营销活动间隙提前测试和评估业务系统的承载能力,发现性能瓶颈,提前优化资源配置;更可提供流量控制、应用模块降级、故障演练等能力,从而全面提升业务稳定性。
本次以部署 Wordpress 应用为例,介绍云上高并发 Web 架构模型以及云产品选择、资源部署、基础监控、应用实时监控、性能测试、应用防护的最佳实践。
Web高并发并没有一个绝对的定义,一般认为Web高并发就是在互联网业务中某个时间点或者极短的时间内Web应用有大量的访问请求的场景
Response Time,响应时间
系统对请求做出响应的时间。响应时间越短,系统性能越高。
Request Per Second,每秒请求数 rps = 500/s
Query Per Second,每秒查询数 rps = qps = 500/s
Transation Per Second,每秒事务数
QPS(TPS)= 并发请求数/平均响应时间
TPS一般用来衡量业务系统流程处理能力
QPS用来衡量接口查询处理能力
面试题:
京东:日活 9千万; 京东用户总量:
yx20%= 9kw = 4亿多;
常见量级:
成功率越高,系统稳定性越好。要求一般不低于99.6%
高并发:快、稳
高并发的本质是构建服务的资源不足以支撑稳定的服务提供,出现了响应缓慢,甚至服务不可用,导致业务中断。因此应对高并发的策略简单来说就是“开源节流”。
开源:指通过服务端的优化和资源提升来提高每个请求的处理速度
节流:客户端能不访问服务端就不要访问
能不访问服务端就不要访问,即使访问少量访问
尽量减少请求数量,降低数据传输量,比如:客户端提供缓存,使用数据压缩传输,使用异步接口、按需获取数据等。
提高单个请求的处理速度
垂直优化:单机性能优化到强劲。(CPU、内存、硬盘、缓存、软件参数…)
水平优化:集群化负载均衡。(集群、分片、复制、负载均衡…)
1、需要3个eip(弹性公网IP),因为eip是公网ip,全球能访问到的。
2、需要2个ecs;模拟集群。ess保证ecs的弹性扩缩容
3、对象存储oss,负责把所有的静态资源都能进行加速访问。
4、静态资源数据其实是保存到nas的
5、PTS、CMS、ARMS、AHAS都是周边治理设施
⚫ 负载均衡 SLB:提供负载均衡服务,用来做流量分发及应用服务器容错保护
⚫ 内容分发 CDN:内容分发网络,提供静态资源的加速访问
⚫ 专有网络 VPC:搭建各个组件的网络访问环境
⚫ 云服务器 ECS:阿里云服务器,用来运行业务应用程序
⚫ 弹性伸缩 Auto Scaling:提供自动化/半自动化ECS资源伸缩能力,
⚫ 对象存储 OSS:存储网站图片、小文件、js、css等静态数据
⚫ 文件服务 NAS:统一存储应用代码及客户上传原文件
⚫ 云数据库 PolarDB:阿里云自研数据库,为业务系统提供弹性、高性能的数据库服务
⚫ 云数据库 Redis:提供服务端缓存
⚫ 云监控 CloudMonitor:监控云服务
⚫ 应用实时监控 ARMS:应用性能管理服务,监测应用接口、访问数据库等的性能
⚫ 应用高可用 AHAS:为应用接口提供流控及流量防护
⚫ 性能测试 PTS:测试应用性能
专有网络 VPC:是用户基于阿里云创建的自定义私有网络,不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如ECS、负载均衡、RDS等 。 https://www.aliyun.com/product/vpc
云服务器 ECS:是一种简单高效、处理能力可弹性伸缩的计算服务。ECS 帮助您构建更稳定、安全的应用,提升运维效率,降低 IT 成本,使您更专注于核心业务创新。
https://www.aliyun.com/product/ecs
弹性伸缩 Auto Scaling:是根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务,不仅适合业务量不断波动的应用程序, 同时也适合业务量稳定的应用程序。 https://www.aliyun.com/product/ecs/ess
对象存储 OSS:是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。OSS 的容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
https://www.aliyun.com/product/oss
云文件存储 NAS:是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。兼容 POSIX 文件接口,可支持数千台计算节点共享访问,可以挂载到弹性计算 ECS、神龙裸金属、容器服务 ACK、弹性容器 ECI、批量计算 BCS、高性能计算 EHPC,AI 训练 PAI 等计算业务上提供高性能的共享存储,用户无需修改应用程序,即可无缝迁移业务系统上云。https://www.aliyun.com/product/nas
云数据库 PolarDB:阿里云自研的云原生关系型数据库,拥有三个独立的引擎,分别 100%兼容 MySQL、100%兼容 PostgreSQL、高度兼容 Oracle 语法,适用于企业多样化的数据库应用场景。PolarDB 采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。PolarDB 既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势。https://www.aliyun.com/product/polardb
云数据库 Redis 版:高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。https://www.aliyun.com/product/kvstore
云监控 CloudMonitor:是一项针对阿里云资源和互联网应用进行监控的服务。云监控服务可用于收集获取阿里云资源的监控指标,探测互联网服务可用性,以及针对指标设置警报https://www.aliyun.com/product/jiankong
应用实时监控 ARMS:是一款应用性能管理产品,包含前端监控,应用监控和Prometheus 监控三大子产品,涵盖了浏览器,小程序,APP,分布式应用和容器环境等性能管理,可实现全栈式的性能监控和端到端的全链路追踪诊断, 让应用运维从未如此轻松高效。https://www.aliyun.com/product/arms
应用高可用 AHAS:是专注于提高应用及业务高可用的工具平台,目前主要提供应用架构探测感知,故障注入式高可用能力评测 和 流控降级高可用防护 三大核心能力,通过各自的工具模块可以快速低成本的在营销活动场景、业务核心场景全面提升业务稳定性和韧性。https://www.aliyun.com/product/ahas
性能测试 PTS:是面向所有技术背景人员的云化测试工具。有别于传统工具的繁复,PTS 以互联网化的交互,提供性能测试、API 调试和监测等多种能力。自研和适配开源的功能都可以轻松模拟任意体量的用户访问业务的场景,任务随时发起,免去繁琐的搭建和维护成本。更紧密结合监控、流控等兄弟产品提供一站式高可用能力,高效检验和管理业务性能。https://www.aliyun.com/product/pts
云速搭 CADT:是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供大量预制的应用架构模板,同时也支
持自助拖拽方式定义应用云上架构;支持大量阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。
https://help.aliyun.com/product/182827.html
云产品 | 配置项 | 描述 |
---|---|---|
专有网络 | 名称 | vpc |
IPv4 网段 | 192.168.0.0/16 | |
交换机名称 | vswitch | |
可用区 | 华北 2(北京) 可用区 H | |
IPv4 网段 | 192.168.0.0/24 | |
ECS x 2 | 计费方式 | 按量付费 |
地域 | 华北 2(北京) 可用区 H | |
实例 | ecs.g5ne.xlarge | |
镜像 | [公共镜像] CentOS 7.9 64 位 | |
存储 | [系统盘] SSD 云盘 40 GiB | |
网络 | [专有网络] vpc | |
登录凭证 | 自定义密码 | |
登录密码 | 设置符合要求的 root 账号的密码 | |
实例名称 | wp1, wp2 | |
EIP x 2 | 付费方式 | 后付费 |
EIP 名称 | eip-sa, eip | |
地域 | 华北 2(北京) | |
带宽峰值 | 10Mbps, 100Mbps | |
流量 | 按使用流量计费 | |
PolarDB | 付费方式 | 按量付费 |
地域 | 华北 2(北京)可用区 H(主),可用区 G(备) | |
数据库类型 | MySQL | |
版本 | 5.6 | |
系列 | 集群版 | |
网络类型 | [专有网络] vpc | |
规格 | polar.mysql.x4.large | |
Redis | 计费方式 | 按量付费 |
地域 | 华北 2(北京)可用区 H,可用区 G(备) | |
网络类型 | [专有网络] vpc | |
版本类型 | 企业版 | |
系列类型 | 性能增强型 | |
版本 | 5.0 | |
架构类型 | Cluster | |
分片数 | 2 | |
实例规格 | 4G 集群性能增强版(2 节点) | |
SLB | 计费方式 | 按量付费 |
地域 | 华北 2(北京)可用区 H(主),可用区 G(备) | |
网络类型 | [专有网络] vpc | |
网络付费类型 | 按流量付费 | |
访问地址类型 | Intranet | |
规格 | slb.s2.small | |
OSS | Bucket 名称 | my-wpimg |
地域 | 华北 2(北京) | |
存储类型 | 标准存储 | |
读写权限 | 公共读 | |
NAS | NAS 组名 | nas_wp |
地域 | 华北 2(北京)可用区 H | |
交换机名称 | vswitch | |
协议类型 | NFS | |
存储类型 | 容量型 | |
CDN | 域名 | cdn.example.com |
业务类型 | 图片、小文件 | |
加速区域 | 仅中国内地 | |
NAT 网关 | 规格 | Small |
地域 | 华北 2(北京)可用区 H | |
付费方式 | 后付费 |
先添加我们架构将要用到的所有产品的快速访问入口。
- 登录阿里云
- 搜索产品
- 点击收藏按钮
步骤1: 进入实例列表,点击进入实例详情
步骤2: 在账号管理中选择创建账号。
步骤3: 创建 Wordpress 应用连接数据库账号 wp_dbuser。
步骤4: 确认创建成功。
为 Wordpress 应用创建数据库并授权数据库用户读写权限。
步骤1:在数据库管理中选择创建数据库。
步骤2: 创建 Wordpress 应用数据库 wp_db,并授权已创建的数据库用户 wp_dbuser 对数据
库拥有读写权限。
步骤3: 确认创建成功。
确认集群白名单中 default 分组的配置已加入 Wordpress 应用服务器所在 IP 段。
复制弹出的地址
pc-bp1nr4241h47s84ny.mysql.polardb.rds.aliyuncs.com:3306
如果生产应用,可以设置自动扩容机制,当前示例应用不做设置
进入redis控制台
为 Redis 配置同一 VPC 内免密访问。
步骤1: 在实例列表页面,单击实例 ID 进入实例详情页。
步骤2: 为 Redis 配置同一 VPC 内免密访问。
步骤3: 确认配置成功。
显示为灰色则代表配置成功
刷新实例信息页面
本例地址: r-bp1evay4r509y2mghu.redis.rds.aliyuncs.com
Web 应用的程序文件保存在共享的文件存储中,所有应用程序服务器通过挂载该共享存储来读取程序文件。示例的 Wordpress 应用还有存储上传的图片、附件等需求,也统一存储到在文件存储中。
本章介绍文件存储 NAS 实例的初始化配置:为 NAS 服务配置权限组、权限规则;为NAS 实例挂载点权限组。
步骤1:登录 NAS 文件系统控制台(https://nasnext.console.aliyun.com/)。
步骤2:创建权限组 nas_wp。
步骤3: 进入权限组 nas_wp 规则管理界面
步骤4:为权限组 nas_wp 添加权限规则。
步骤5:设定规则:允许 VPC 的 IP 段有匿名读写访问权限。
步骤6:确认权限规则创建成功。
默认已经有一个挂载点
步骤1:进入文件系统列表,选择 NAS 实例管理操作。
步骤2: 在挂载使用页面下为挂载点修改权限组。
步骤3: 确认修改成功,记录挂载命令备用。
复制出来挂载命令如下:
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 06ec248f5a-uca59.cn-hangzhou.nas.aliyuncs.com:/ /mnt
暂时不要公网地址,后面进行绑定
参照《8. 创建EIP》 先创建一个EIP,绑定到一台ECS中。
步骤1:可以使用ssh通过公网ip连接,也可以使用web远程连接
步骤2:连接上任意一台,安装好应用以后,打包镜像,另一台机器使用更换镜像的方式一键安装
# 安装nginx
yum install -y nginx
# 开机启动
systemctl start nginx
systemctl enable nginx
# 验证访问
# 安装php7
## 运行以下命令,添加EPEL源。
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y --enablerepo=remi-php73 php php-fpm php-mysqlnd php-cli
#确认 PHP-FPM 监听端口为 9000。
cat /etc/php-fpm.d/www.conf | grep 'listen ='
#确认 PHP-FPM 最大、自小空闲服务进程数配置。
cat /etc/php-fpm.d/www.conf | grep 'spare_servers ='
为 Wordpress 创建 Nginx 虚拟主机。
步骤1:创建 Nginx 虚拟主机配置文件。
步骤2:根据配置文件创建相关目录。
步骤3:验证配置文件正确性。
步骤4:重启相关服务。
#修改配置
vim /etc/nginx/conf.d/wordpress.conf
#内容如下
server {
listen 80;
server_name _; # _代表所有,这里可以写一个域名进行测试,比如lfyblog.com
access_log /usr/share/nginx/wordpress_logs/access.log;
error_log /usr/share/nginx/wordpress_logs/error.log;
location / {
root /usr/share/nginx/wordpress;
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass localhost:9000; # port where FastCGI processes were spawned
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/usr/share/nginx/wordpress$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
## 根据配置文件创建相关目录。
mkdir -p /usr/share/nginx/wordpress
mkdir -p /usr/share/nginx/wordpress_logs
# 验证配置文件正确性。
nginx -t
systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx
# 如果修改了nginx配置文件,可以进行热启动
nginx -s reload
echo "<?php phpinfo(); ?>" > /usr/share/nginx/wordpress/info.php
#访问 http://47.99.167.211/info.php
如果上一步Nginx配置了域名。则可以修改本机域名映射,最终通过域名访问
注意,一段时间以后域名访问会失效,因为阿里云会进行备案验证
前提:在 《3.5. 创建NAS》步骤中已经创建完成好了NAS系统
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 3616f4948a-gcc51.cn-shanghai.nas.aliyuncs.com:/ /usr/share/nginx/wordpress
echo "3616f4948a-gcc51.cn-shanghai.nas.aliyuncs.com:/ /var/www/html nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" >> /etc/fstab
#安装nfs工具
yum install -y nfs-utils
#挂载 NAS 实例。根据复制的挂载命令,修改挂载点为 wordpress 应用安装目录 /usr/share/nginx/wordpress
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 0f62e4925a-anh55.cn-hangzhou.nas.aliyuncs.com:/ /usr/share/nginx/wordpress
#配置开机自动挂载NAS实例,根据挂载命令,为 fstab 文件添加自动挂载配置。 注意修改为你的NAS地址
echo "0f62e4925a-anh55.cn-hangzhou.nas.aliyuncs.com:/ /usr/share/nginx/wordpress nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" >> /etc/fstab
cd ~
# 下载应用
#wget https://cn.wordpress.org/latest-zh_CN.tar.gz
wget https://cn.wordpress.org/wordpress-6.3-zh_CN.tar.gz
#解压程序包。
tar -zvxf wordpress-6.3-zh_CN.tar.gz
# 根据示例配置文件创建 wordpress 配置文件,编辑配置文件,设置数据库连接信息。
cp wordpress/wp-config-sample.php wordpress/wp-config.php
vim wordpress/wp-config.php
# 内容如下 填写Polardb的连接信息
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wp_db' );
/** MySQL database username */
define( 'DB_USER', ' wp_dbuser' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'pc-xxxxxxxxxxxx3x19tl.rwlb.rds.aliyuncs.com' );
# 修正程序文件属性并部署至虚拟主机服务目录。
# -r -v -f
cp -rvf wordpress/* /usr/share/nginx/wordpress/
# Wordpress 应用初始化安装配置。
浏览器打开 http://myblog.xianwang2019.com/wp-admin/install.php
注意:请根据实际情况自替换主域名。
#回到 wp1 的 SSH 远程窗口,下载 Redis 插件。
cd ~
wget https://downloads.wordpress.org/plugin/redis-cache.2.0.17.zip
#安装解压工具 unzip。
yum install -y unzip
unzip redis-cache.2.0.17.zip
#安装插件。
cp -rf redis-cache /usr/share/nginx/wordpress/wp-content/plugins/
cp /usr/share/nginx/wordpress/wp-content/plugins/redis-cache/includes/object-cache.php /usr/share/nginx/wordpress/wp-content/
#更新 wordpress 配置文件,增加 Redis 配置信息。
vim /usr/share/nginx/wordpress/wp-config.php
#内容如下
#配置 Reids 的连接地址,我们已配置免密登录,密码不用配置。相关信息已在第 3 章
#设置并获取,填入相应的配置项保存退出。
### 在 wp-config.php MySQL 设置后增加 redis 数据库信息:
/** redis object cache 配置 **/
/** Redis 主机 */
define('WP_REDIS_HOST', 'r-**********.redis.zhangbei.rds.aliyuncs.com');
/** Redis 端口 */
define('WP_REDIS_PORT', '6379');
/** 接受用于使用该 SELECT 命令自动选择逻辑数据库的数值,不用修改 */
回到 Wordpress web 控制后台启用 Redis 插件。
仪表盘也有监控
另一台ECS直接更换系统镜像即可拥有安装好的所有功能,包括挂载的nas盘。需要在ECS停止状态下操作
把之前ECS绑定的EIP换绑到新换系统的ECS上,访问测试wordpress是否正常运行
访问 http://47.99.167.211 ,一切正常
EIP x 2
确认结果
访问SLB地址:http://114.55.249.248/,访问正常
对于站点的静态内容加速访问,如图片、小文件等可将其托管至 OSS 并启用 CDN 支持;同时使用 OSS 和 CDN 也可有效降度存储及带宽成本。本例中我们选择 WPJAM Basic 插件来实现静态资源托管至 OSS 并使用 CDN 进行访问加速。
步骤1:登录ECS,下载 cdn-enabler 插件,并解压、安装。
wget https://downloads.wordpress.org/plugin/cdn-enabler.2.0.8.zip
unzip cdn-enabler.2.0.8.zip
cp -rvf cdn-enabler /usr/share/nginx/wordpress/wp-content/plugins/
步骤2:回到 Wordpress web 控制后台启用 CDN Enabler 插件。
要是用CDN,先要开通CDN,CDN还需要绑定域名,域名需要备案才能用。我们为了测试,选择全球加速,不包含中国区,即可跳过备案
这里的域名,不用着急设置,先配置下面
配置对象存储,与镜像回源;
WPJam 插件是利用 OSS 的镜像回源方式实现图片文件自动托管至 OSS 并使用 CDN加速。
注意:这里的地址推荐用稳定的域名或者ip或者负载均衡地址
选择一键配置
可以不着急做这一步
发表一片图文博客。
审查元素,发现图片的地址是CDN的地址
访问对象存储,发现真实存在这个文件
应用实时监控服务 (Application Real-Time Monitoring Service, 简称ARMS) 是一款应用性能管理产品,含前端监控,应用监控和Prometheus监控三大子产品,涵盖了浏览器,小程序,APP,分布式应用和容器环境等性能管理,能帮助你实现全栈式的性能监控和端到端的全链路追踪诊断, 让应用运维从未如此轻松高效。
ARMS 支持以 SDK 及探针模式监控 PHP 应用。推荐使用 SDK 接入的方式,本例中,为实现对应用代码的零侵入,采用探针模式接入。
默认支持多种应用接入。新版没有列出PHP。仅支持如下应用监控
可以自行根据Java应用引导,进行Java应用监控
应用高可用服务(Application High Availability Service)是一款专注于提高应用高可用能力的SaaS产品,包含流量防护、故障演练、功能开关和多活容灾四大独立的功能模块。
AHAS 应用防护可以接入多种语言的应用,包括 JAVA、PHP、GO 等。当应用接入到AHAS 应用防护后,可以对其配置流控、降级、隔离等规则来保证系统的稳定性。推荐使用 SDK 接入的方式;如果应用使用的第三方组件和框架在支持组件列表中,则通过 Agent 接 入 方 式 无 需 修 改 代 码 即 可 完 成 , 详 细 说 明 参 见https://help.aliyun.com/document_detail/131232.html。本例中,为实现对应用代码的零侵入,采用 Nginx 防护模式接入。
步骤1:登录 AHAS 控制台。(https://ahas.console.aliyun.com/)
步骤2:选择地域,选择流量防护 > Nginx 防护页面,并单击 Nginx 接入。
根据流程进行配置
#登录ecs
#下载
curl -L -O https://ahasoss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/sidecar/latest/ahas-sentinel-sidecar-linux.tar.gz
#解压
tar -xvzf ahas-sentinel-sidecar-linux.tar.gz -C /opt/
Nginx Sentinel 动态模块文件位于 sidecar 目录的 lib/-nginx- 子目录下。由于 Nginx 自身限制,预编译 Nginx 动态模块与 Nginx 版本和配置绑定。我们目前提供了以下主流 GNU/Linux 64 位系统和 Nginx 版本的预编译动态模块:
操作系统 | Nginx 版本 | 动态模块路径 |
---|---|---|
Ubuntu 18.04 | nginx-1.14.0 | lib/ubuntu-18.04-nginx-1.14.0/ngx_sentinel_module.so |
CentOS 6 | nginx-1.10.3 | lib/centos6-nginx-1.10.3/ngx_sentinel_module.so |
CentOS 7 | nginx-1.16.1 | lib/centos7-nginx-1.16.1/ngx_sentinel_module.so |
#给nginx配置文件要添加以下配置
load_module "/opt/ahas-sentinel-sidecar-linux/lib/centos7-nginx-1.20.1/ngx_sentinel_module.so";
sentinel_init sidecar unix:/tmp/sentinel-sidecar.sock;
sentinel_sidecar_run "/opt/ahas-sentinel-sidecar-linux/bin/sentinel-sidecar.sh" --app=lfyblog ;
vim /etc/nginx/nginx.conf
#在文件开头添加内容如下
load_module "/opt/ahas-sentinel-sidecar-linux/lib/centos7-nginx-1.20.1/ngx_sentinel_module.so";
sentinel_init sidecar unix:/tmp/sentinel-sidecar.sock;
sentinel_sidecar_run "/opt/ahas-sentinel-sidecar-linux/bin/sentinel-sidecar.sh" --app=lfyblog ;
nginx -t
systemctl restart nginx
回到 Nginx 防护页面,确认接入的 Nginx 网关。
之前机器所有软件环境都已经安装好,配置好。只需要制作成镜像,新机器按照这个镜像启动即可。
通过给ECS更换系统镜像的方式,快速让新的ECS应用上最新镜像。
注意: 关机 后 选择 更换操作系统。
接入弹性伸缩 Auto Scaling 服务,使得应用服务器集群具备根据业务负载动态伸缩资源的能力。
步骤1:登录弹性伸缩控制台。(https://essnew.console.aliyun.com/)
步骤2:创建服务关联角色(如需)。
当系统指定指标发生阈值过界,则进行报警,报警会触发自动伸缩规则,不同的报警执行不同的伸缩规则即可。
ARMS Agent 访问服务端需要公网访问能力,为 NAT 网关配置 SNAT 策略。
PTS(Performance Testing Service)是面向所有技术背景人员的云化测试工具。有别于传统工具的繁复,PTS以互联网化的交互,提供性能测试、API调试和监测等多种能力。自研和适配开源的功能都可以轻松模拟任意体量的用户访问业务的场景,任务随时发起,免去繁琐的搭建和维护成本。更是紧密结合监控、流控等兄弟产品提供一站式高可用能力,高效检验和管理业务性能。
本章介绍使用性能测试 PTS 对 Web 应用进行性能测试。结合实时监控、应用高可用产品检验 Web 应用的高并发能力。
测试方案分为三轮压力测试:
第一轮:弹性伸缩规则停用、AHAS 流量防护停用。
第二轮:弹性伸缩规则启用、AHAS 流量防护启用自适应策略。
第三轮:弹性伸缩规则启用、AHAS 流量防护启用自定义策略。
以下为参考配置,需要自行修改合适的值
都配置好后,先进行场景调试。
确认调试成功后返回。
最终配置
本轮压测弹性伸缩报警任务停用、AHAS 流量防护停用。
等待压测执行
当发现大量错误就可以停止压测了
发现,当并发到达30以后,成功率开始下降,出现错误。平均RT时间也成倍增加。两台机器的TPS仅为8,单台平均为4
将此次压测结果设置为基线,方便以后的压测与基线进行对比,从而看到提升结果。
本轮压测弹性伸缩报警任务启用、AHAS 流量防护启用自适应策略。
并发30,TPS12,说明每个机器也就是tps = 6个。这就代表此机器的峰值处理能力,所以我们可以给这个机器。但是注意,我在这里的演示是由于使用香港的机器等导致的,网络时间占用很多,也就是并不是代表这个机器的峰值能力。
启用规则
压测期间观察ECS会自动扩容
峰值服务器列表
观察成功率,在一段时间不稳定后会稳步上升
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。