云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析

云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析

在之前的学习笔记中,我们已经对华为云的基础计算(ECS)、存储(EVS、OBS)和网络(VPC、ELB)服务进行了系统性的拆解和实操。掌握了这些基础设施的搭建,只能算是具备了"造砖"的能力。而在真实的云原生运维生产环境中,我们需要将这些零散的组件串联起来,构建具备高可用、高弹性、可观测性的完整业务架构。

今天的学习重点转向了两个更为宏观的层面:一是企业级网站的综合上云部署 ,涉及LAMP架构搭建、业务与数据分离(RDS)、流量分发(ELB)以及弹性伸缩(AS)的闭环实践;二是云运维服务矩阵,涵盖统一身份认证(IAM)、消息通知(SMN)、云审计(CTS)、云监控(CES)和云日志(LTS)。此外,还对数据库、安全、CDN、AI等拓展云服务进行全景式的梳理。以下是本次实操与理论学习的完整复盘。


一、 综合实践:企业网站上云架构部署

某企业计划将业务网站部署在华为云上,业务架构要求如下:数据节点与业务节点分离部署;可根据不同业务量动态调整服务器数量;自动将流量分发到多台服务器;使用云监控监控业务状态。

基于上述需求,我们设计并落地了如下架构方案:

  • 基础网络:自定义VPC及子网,保障网络隔离。
  • 业务节点:弹性云服务器ECS(CentOS 7.6),搭建LAMP(Linux+Apache+MySQL+PHP)环境。
  • 数据节点:关系型数据库RDS for MySQL,实现业务与数据的解耦。
  • 高可用与弹性:弹性负载均衡ELB(流量分发)+ 弹性伸缩AS(动态调整ECS数量)。
  • 监控与日志:云监控CES(业务指标监控)。

1.1 基础环境与LAMP搭建

首先创建VPC(vpc-gqd,网段 192.168.0.0/16)和子网(subnet-gqd),并创建安全组,为简化实验,先放通全部端口。随后购买一台ECS(ecs-gqd,2vCPU/4GB,CentOS 7.6),分配公网IP(2Mbit/s)。

通过CloudShell登录ECS,执行以下命令安装LAMP环境:

bash 复制代码
# 1. 安装EPEL和Remi源,以支持更高版本的PHP
[root@ecs-gqd ~]# yum install epel-release -y
[root@ecs-gqd ~]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@ecs-gqd ~]# yum -y install yum-utils
[root@ecs-gqd ~]# yum repolist all | grep php

# 2. 启用PHP 7.4并安装httpd、php及相关扩展
[root@ecs-gqd ~]# yum-config-manager --enable remi-php74
[root@ecs-gqd ~]# yum install -y httpd php php-fpm php-server php-mysql mysql
# 输出显示 Complete! 表示安装成功

# 3. 修改httpd配置文件,添加ServerName
[root@ecs-gqd ~]# vi /etc/httpd/conf/httpd.conf
# 在文件末尾添加:ServerName localhost:80

# 4. 解压WordPress并赋予权限(WordPress安装包需提前上传)
[root@ecs-gqd ~]# unzip wordpress-5.2.3-zh_CN.zip -d /var/www/html
[root@ecs-gqd ~]# chmod -R 777 /var/www/html

# 5. 启动并设置开机自启
[root@ecs-gqd ~]# systemctl start httpd.service
[root@ecs-gqd ~]# systemctl start php-fpm.service
[root@ecs-gqd ~]# systemctl enable httpd
[root@ecs-gqd ~]# systemctl enable php-fpm

在本地浏览器输入ECS的EIP,出现Apache的"Testing 123..."页面,说明LAMP环境已安装成功。

1.2 RDS数据库配置与WordPress对接

为了保证数据安全与持久化,我们将数据库部署在RDS上。

在控制台购买RDS for MySQL实例(rds-gqd,主备架构,2vCPU/4GB,SSD云盘)。配置网络时,选择与ECS相同的VPC和子网,并绑定同一个安全组。创建完成后,记录内网IP地址及端口(默认3306)。

登录RDS控制台,创建WordPress所需的数据库:

sql 复制代码
-- 在RDS的SQL执行窗口创建数据库
CREATE DATABASE wordpress;

随后,在浏览器访问 http://<ECS_EIP>/wordpress,进入WordPress配置页面。输入数据库名(wordpress)、用户名(root)、密码(RDS实例密码)以及数据库主机(RDS的内网IP及端口),点击提交并安装。至此,一套动静分离的基础网站架构搭建完毕。

1.3 构建高可用与弹性架构(ELB + AS)

单节点ECS存在单点故障风险,且无法应对突发流量。我们通过ELB和AS来改造架构。

步骤1:制作私有镜像

为了AS扩容出的实例自带LAMP环境,需要将当前的ECS制作成私有镜像。

在ECS控制台将ecs-gqd关机,进入镜像服务IMS ,选择"创建私有镜像",镜像源选择该ECS的系统盘,创建名为ims-gqd的镜像。

步骤2:配置弹性负载均衡(ELB)

创建共享型ELB实例,网络类型选择IPv4公网,分配公网IP。配置监听器:前端协议选择TCP,端口80;后端分配策略选择加权轮询算法。此时先不添加后端服务器(交由AS自动管理)。

步骤3:配置弹性伸缩(AS)

  1. 创建伸缩配置 :选择刚才创建的镜像ims-gqd,规格选择2vCPU/4GB,网络选择业务VPC。
  2. 创建伸缩组:绑定刚才创建的伸缩配置和ELB。设置最大实例数为3台,期望实例数为2台,最小实例数为1台。可用区选均衡分布。健康检查方式选择"负载均衡健康检查"。
  3. 添加伸缩策略 :
    • 扩容策略:告警策略,当CPU使用率最大值 ≥ 60% 时,增加1台实例,冷却时间300秒。
    • 缩容策略:告警策略,当CPU使用率最大值 ≤ 20% 时,减少1台实例,冷却时间300秒。

配置完成后,AS会自动按照期望实例数拉起2台ECS,并自动挂载到ELB的后端服务器组中。在浏览器访问ELB的EIP,可以正常访问WordPress站点。这证明了ELB已经成功将流量分发到后端动态拉起的ECS实例上。


二、 云运维类服务:构建业务可观测与管控体系

系统上云后,如何确保其稳定运行、出现问题如何快速定位、如何防范人为误操作?这需要依赖健全的运维类服务。本节涵盖了IAM、SMN、CES、LTS和CTS的实战。

2.1 消息通知服务(SMN)与云审计服务(CTS)

云审计服务(CTS)能够记录云账户下资源的操作记录。为了在发生高危操作时第一时间收到告警,我们将CTS与SMN(消息通知服务)结合。

1. 配置SMN主题与订阅

进入消息通知服务SMN控制台,创建主题ecs-notify。在主题下添加订阅,协议选择"短信",填写订阅终端(手机号)。确认后,手机端会收到华为云发送的确认短信,点击链接完成确认(状态变为"已确认")。

2. 配置CTS关键操作通知

进入云审计服务CTS控制台,系统会自动创建追踪器。点击左侧"关键操作通知",创建通知keyOperate_info_notify:

  • 操作类型:自定义。
  • 操作列表:ECS的 deleteServer(删除云服务器)和 rebootServer(重启云服务器)。
  • SMN主题:选择刚刚创建的ecs-notify。

3. 验证告警机制

在ECS控制台,对任意一台实例执行"重启"操作。几秒钟后,手机收到短信:"【华为云】尊敬的...您的资源xxx在ECS服务发生操作..."。

在CTS的"事件列表"中,可以查询到详细的审计日志记录,包括事件名称(如rebootServer)、资源名称、操作者账号及时间。

2.2 云监控服务(CES)与告警规则

云监控CES提供对ECS的立体化监控。除了基础的CPU、内存监控,核心在于告警规则的联动。

1. 创建告警规则

在主机监控页面,为ecs-gqd创建告警规则alarm-ecs:监控指标为CPU使用率,触发条件为连续2个周期(每5分钟检测一次)超过90%,告警级别为"重要"。

2. 模拟CPU飙高

通过CloudShell登录ECS,执行计算圆周率的指令(利用 bc 命令进行高精度运算),使CPU满载:

bash 复制代码
[root@ecs-gqd ~]# echo "scale=800000;4*a(1)" | bc -l -q
# 此时系统卡顿,CPU占用率达到100%

返回CES监控页面,可以观察到CPU使用率曲线迅速飙升至100%。随后,在"告警记录"中,会生成一条"告警中"的记录,原因显示为"CPU使用率超过了90%"。

3. 排障与恢复

重新打开一个终端连接ECS,使用 top 命令定位高负载进程:

bash 复制代码
[root@ecs-gqd ~]# top
# 输出显示PID为4210的bc进程占用了99.9%的CPU

执行 kill -9 4210 杀掉该进程。回到CES页面,随着CPU回落,告警状态会自动更新为"已解决"。这个过程完整模拟了生产环境中的监控发现、定位、排查与恢复的闭环。

2.3 云日志服务(LTS)

日志是排障的命脉。LTS提供日志采集、分析与检索功能。

1. 创建日志组与日志流

进入LTS控制台,创建日志组lts-group-gqd,并在其中创建日志流lts-topic-gqd。

2. 安装ICAgent

ICAgent是日志采集插件。在LTS主机管理页面,点击"安装ICAgent",系统会生成一条安装命令(需提前在"我的凭证"中获取AK/SK并填入命令中):

bash 复制代码
# 在ECS上执行生成的安装命令
set +o history;curl https://icagent-cn-east-3.obs.cn-east-3.myhuaweicloud.com/ICAgent_linux/apm_agent_install.sh > apm_agent_install.sh && REGION=cn-east-3 bash apm_agent_install.sh -ak <YOUR_AK> -sk <YOUR_SK> ...

执行完成后,在LTS控制台看到主机状态显示为"运行",说明插件安装成功。

3. 配置日志采集与查询

在LTS"接入中心"选择"云主机ECS-文本日志",选择对应的日志组和流,配置采集路径为 /var/log/messages(系统日志)。

登录ECS,使用echo命令生成一条测试日志:

bash 复制代码
[root@ecs-gqd ~]# echo hahaha >> /var/log/messages

在LTS的"实时日志"或"原始日志"页面,等待几秒钟,即可检索到 hahaha 这条日志,证明了日志链路完全打通。LTS还支持结构化提取(如正则解析)与SQL可视化分析,极大提升了排障效率。


三、 拓展云服务概览与架构思考

除了计算、网络、存储和运维服务,华为云还提供了丰富的数据库、安全和AI服务。

3.1 数据库服务矩阵

  • RDS for MySQL:基于开源MySQL生态,提供主备高可用、跨AZ容灾、读写分离(最多支持5个只读副本,分担读流量)、以及基于全量备份+Binlog的任意时间点恢复(PITR)能力。
  • RDS for PostgreSQL:在复杂数据对象处理、地理位置应用上具有优势。
  • GaussDB:华为自研的分布式关系型数据库,基于Shared-Nothing架构。支持分布式事务强一致(ACID),同城双活/异地容灾,适用于金融、政企的核心交易系统。其核心组件包括协调节点(CN)、数据节点(DN)、全局事务管理器(GTM)和集群管理(CM)。

3.2 安全类服务

云安全遵循责任共担模型。

  • 企业主机安全(HSS):通过在主机安装Agent,实现木马查杀、漏洞检测、防暴力破解、网页防篡改等。
  • Web应用防火墙(WAF):部署在业务入口,通过对HTTP/HTTPS流量进行特征匹配,防范SQL注入、XSS跨站脚本等OWASP Top 10攻击。
  • 数据加密服务(DEW):核心组件包括KMS(密钥管理),支持对对象存储OBS、云硬盘EVS等服务的数据进行加密。
  • 漏洞扫描服务(VSS):集成Web漏洞、操作系统漏洞、安全配置基线检查,实现风险事前防御。

3.3 CDN与AI/大数据

  • CDN(内容分发网络):通过将源站内容缓存到离用户最近的边缘节点,大幅降低访问延迟,减轻源站带宽压力。华为云国内拥有2000+节点,支持直播、点播、下载等多种加速场景。
  • AI与大数据:ModelArts提供一站式AI开发平台;数据湖探索(DLI)、MapReduce服务(MRS)及云数据仓库GaussDB(DWS)构成了完善的大数据存算分离架构。

四、 总结与心得

今天这套"组合拳"打下来,最大的感受是:架构的复杂度来源于业务的需求。如果没有高并发,单台ECS也能跑网站;如果没有容灾要求,单机数据库也能撑住。但一旦业务上规模,ELB、AS、RDS高可用版就成了必选项。

运维类服务看似"边角料",实则是保障整个云上环境稳定运转的基石。CTS管"查账",记录下所有资源的增删改查;CES管"看病",实时监控指标异常;LTS管"归档",留存最底层的排查线索;SMN则是"传令兵",把告警第一时间推送到人。这五者联动,才构成了一个闭环的自动化运维体系。

在底层机制上,不得不感慨公有云在易用性上的封装。比如RDS的主备切换,底层必然是经历了VIP漂移、主备数据强同步校验等复杂的流程,但在控制台上,用户只需点击"强制切换",几十秒后业务即可恢复。这种SaaS化的产品体验,极大降低了企业的TCO。而对于云原生工程师而言,了解这些"黑盒"背后的原理(如数据库主从复制延迟、ELB健康检查机制、AS的冷却时间限制),依然是设计高可用架构和排查疑难杂症的底气。

相关推荐
坤坤子吖28 分钟前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
Rabitebla38 分钟前
【Linux学习笔记】进程篇(九):进程的创建与退出——fork、写时拷贝与退出码
linux·c++·笔记·学习
Decay__1 小时前
19_MySQL 告警与自动化运维 —— 告警分级收敛 / Webhook / 定时巡检 / 脚本库
运维·数据库·sql·mysql·架构
楚山之石1 小时前
【MRM】CAPLEX 对比剂灌注 MRI 开源术语库:ISMRM OSIPI 共识报告
图像处理·人工智能·学习·mri
FungLeo1 小时前
成为全栈·基础补充·Linux 服务器入门
linux·运维·服务器·ssh·部署·成为全栈
智者知已应修善业1 小时前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
qq_452396231 小时前
第三篇:《从 ZooKeeper 到 KRaft 的迁移实战:前置条件、三阶段流程与回滚策略》
分布式·zookeeper·云原生
爱和冰阔落1 小时前
【Linux网络】TCP 服务器怎么写?从 listen、accept 到 read/write,手写完整 Echo Server
linux·运维·服务器·网络
鲁邦通物联网1 小时前
工业装备OEM远程服务架构:边缘计算网关与售后运维系统设计
运维·边缘计算·数据采集·工业数据采集·边缘计算网关·plc数采·厂内数采