前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 — LAMP 架构实践分享

腾讯云 — LAMP 架构实践分享

原创
作者头像
Chris Fei
修改2021-07-12 11:05:05
3.1K0
修改2021-07-12 11:05:05
举报
文章被收录于专栏:云计算实践云计算实践

LAMP 环境通常指Linux 环境下,由Apache+MySQL/MariaDB+PHP 以及其它相关组件组成的网站服务器架构。目前以LAMP组成的Web 应用程序平台广泛被应用,70%以上的访问流量由LAMP提供,所以我们也认同LAMP是最强大的网站解决方案。

关于LAMP的环境部署文档随处可搜,腾讯官网环境部署介绍可参阅:

手动搭建LAMP环境:https://cloud.tencent.com/document/product/213/38402

镜像部署LAMP环境:https://cloud.tencent.com/document/product/213/38364

而LAMP为何如此流行,还是受益于其开源,该架构优势归纳如下三点:

1:架构下软件程序开源,提供经济的软件成本

2:开源社区积累丰富,应用程序稳定,可以快速上手

3:兼容性好,LAMP架构由各自独立的程序架构在一起使用,拥有了很好的兼容度

跳过部署,我们今天交流的是“LAMP 云架构实践” ,围绕如何在云上架构安全,弹性,高可用的LAMP Web应用架构进行一些实践分享。我是基于我的认识和项目经验把LAMP 场景进行了细分,也是方便一些刚接触的同学好理解,当然如果不足之处,欢迎指导交流。

一、单节点web架构

对于轻量/非关键业务的web 应用(例如官网、论坛、博客等web应用),通常还是单节点部署架构;

在单节点web架构,我们有两种部署方式;虚拟主机部署和轻量应用服务器部署;

1.1. 虚拟主机部署

采购S5或SA2系列CVM完成LAMP环境部署并发布站点,这是最简单的架构。

在这种简单架构下,一般承载非关键业务应用,但从运维角度提高应用的稳定性,我们通常有如下几点实践建议;

l对于单CVM节点制定快照策略(自动周期性创建快照及快照清理)

lCVM添加“云硬盘”,通过自动化备份脚本备份MySQL 数据库至“云硬盘”(云硬盘和CVM是挂载关系,当CVM故障下,我们云硬盘数据安全)

l添加“云监控”,免费版本云监控可对CVM进行基础资源监控,设置告警通知策略,当CVM的CPU /内存/网络/磁盘空间 等资源出现负荷,可提前进行扩容操作;

1.2. 轻量应用服务器部署

轻量应用服务器我们在之前的文章中有所介绍,轻量应用服务器从销售角度,算是一种“打包”的产品模式,在产品角度,是为轻量/非关键web应用提供的解决方案。我们在创建轻量应用服务器的时候,我们可以看到有预置的“LAMP 应用镜像”,可以快速的完成部署和上线。

通过镜像模板,可以省去部署过程,基于轻量轻盈服务器的“性价比”,可以进一步优化成本。

二、经典三层架构:Web前端+APP应用+数据库后端

相当于单节点架构,经典三层架构是把web应用通过前中后角色进行了拆分,环境独立的情况下,对于应用的排错、负载等方面得到提升。我们就在云环境下分如下两种部署模式介绍;

2.1.IAAS 部署模式

依然是纯IAAS 的资源部署,原本一台服务器拆分为三台服务器分别部署WEB/APP/MYSQL服务器角色。在云环境下我们有如下几点改进:

如架构图展示;

  • Web前端主要面对Public 公网流量访问,后端APP和MYSQL主要内网进行应用通信,从而减少互联网暴露,提高网络安全防护;
  • 安全组是云环境下“网络防火墙”,分别设定独立的安全组策略,修改常用端口,减少对外端口开放,控制风险。
  • 为Web Server 添加EIP (弹性IP),弹性IP支持绑定和解绑,当web server故障无法恢复时,我们可以新建Web Server ,讲EIP 绑定新Web Server , 快速恢复访问。同时EIP 是预留固定公网IP ,Domain 域名映射不需要修改。

2.2.IAAS+COS+RDS 部署模式

对于传统架构,云环境下可以更好的提出“云化”方案,这里我们实践通常将CVM部署MYSQL 替换成 RDS for MySQL 云数据库,增加COS存储类型存放静态web页面和音视频文件。

该架构优化的收益有如下几点:

  • MySQL 云数据库属于PAAS服务,稳定性,扩展性,冗余等方面都由于自建Mysql 服务器,可以提供更稳定的数据库服务
  • 目前web类应用加载了大量高清图片以及音视频文件,通过COS存储可以分摊CVM的带宽压力,同时COS支持CDN直接加速,用户的加载体验更好。
  • 目前COS 不仅是静态页面/图片/音视频存储的最佳选择,同时集成了大量的AI数据处理能力,例如图片压缩、水印、语音识别、二维码识别等数据处理能力,部分可以直接通过开关功能即可实现,部分可以支持API方式处理。

三、经典三层架构下高可用架构

所有架构都是随着业务要求而完善的,从单节点,到多层架构,再到高可用架构都是应对业务需求的增长。从业务最初对功能的需求,后期会逐步关注稳定性,用户体验,安全性的方面。

基于高可用的需求下,我们通常优化如下几部;

  • Web前端实现多节点部署,通过ELB +AUTOSCALE (自动伸缩) + 云监控, 实现随着业务的不可预期负载进行自动的计算节点伸缩,经济+稳定性得到一定的保障
  • 基于微服务的架构思想,APP应用开始拆分多模块,也有企业以业务应用中台为建设方向,去应对多系统、高负载的需求。
  • 后端MySql云服务器可以快速的实现多副本、容灾架构。依托读写分离、增加缓存数据库等方案可以快速优化数据库方案。

当然除了负载问题,在大应用平台下,客户还会比较关注安全加固和互联网安全防护,这里就不做过多介绍了,下次独立章节做介绍交流。

如上架构的场景介绍,是遵循从小到大,从简到繁的过程,当然还有很多细节没有详尽介绍,希望未来有更多交流的机会 。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档