腾讯云— LAMP 架构个人实践分享

腾讯云— LAMP 架构个人实践分享LAMP环境通常指Linux环境下,由Apache+MySQL/MariaDB+PHP以及其它相关组件组成的网站服务器架构。目前以LAMP组成的Web应用程序平台广泛被应用,70%以上的访问流量由LAMP提供,所以我们也认同LAMP是最强大的网站解决方案。关于LAMP的环境部署文档随处可搜,腾讯官网环境部署介绍可参阅:手动搭建LAMP环境:https://cloud.tencent.com/document/product/213/38402镜像部署LAMP环境:https://cl

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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.  虚拟主机部署

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

腾讯云— LAMP 架构个人实践分享

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

  1. 对于单CVM节点制定快照策略(自动周期性创建快照及快照清理)
  2. CVM添加“云硬盘”,通过自动化备份脚本备份MySQL 数据库至“云硬盘”(云硬盘和CVM是挂载关系,当CVM故障下,我们云硬盘数据安全)
  3. 添加“云监控”,免费版本云监控可对CVM进行基础资源监控,设置告警通知策略,当CVM的CPU /内存/网络/磁盘空间 等资源出现负荷,可提前进行扩容操作;

  1.  轻量应用服务器部署

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

腾讯云— LAMP 架构个人实践分享

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

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

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

2.1.IAAS 部署模式

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

腾讯云— LAMP 架构个人实践分享

如架构图展示;

  1. Web前端主要面对Public 公网流量访问,后端APP和MYSQL主要内网进行应用通信,从而减少互联网暴露,提高网络安全防护;
  2. 安全组是云环境下“网络防火墙”,分别设定独立的安全组策略,修改常用端口,减少对外端口开放,控制风险。
  3. 为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页面和音视频文件。

腾讯云— LAMP 架构个人实践分享

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

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

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

腾讯云— LAMP 架构个人实践分享

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181395.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm配置tensorflow环境_python3.6对应的tensorflow版本

    pycharm配置tensorflow环境_python3.6对应的tensorflow版本Round1:打开PyCharm,点击File->Settings,点击弹出界面的“+”号,在搜索框中键入关键字“tensorflow”,从列表中选中“tensorflow”,点击下方的“InstallPackage”,等待一段时间,华丽丽的安装失败了-_-Round2:在Pycharm的terminal中运行pipinstalltensorflow,在等了半小时后,倒计时还有3个多小时,我弃疗了!安装失败!Round3:以上用的都是官方的源,现在考虑换成国

  • C语言冒泡法_冒泡编程c语言

    C语言冒泡法_冒泡编程c语言在考试前依然有很多同学不清楚冒泡法怎么用所以这期我专门整理了一下冒泡法的用法,供大家参考哦!

  • 来谈谈SQL数据库中”简单的”SELECT TOP—可能有你从未注意到的细节

    来谈谈SQL数据库中”简单的”SELECT TOP—可能有你从未注意到的细节首先从博客园的JeromeWong网友说起他提出了一个这样的问题本人写了好几年SQL语句了,从来没注意到这件事情。例如:数据表如下:IDEMPNONAMEAGE126929Jerome

  • 鸟哥的 Linux 私房菜10– 磁盘与硬件管理

    鸟哥的 Linux 私房菜10– 磁盘与硬件管理

  • ❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)[通俗易懂]

    ❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)[通俗易懂]文章目录强烈推荐系列教程,建议学起来!!一.pycharm下载安装二.python下载安装三.pycharm上配置python四.配置镜像源让你下载嗖嗖的快4.1pycharm内部配置4.2手动添加镜像源4.3永久配置镜像源五.插件安装(比如汉化?)5.1自动补码神器第一款5.2汉化pycharm5.3其它插件六.美女背景七.自定义脚本开头八、这个前言一定要看九、python入门十、python缩进十一、Python注释1.单行注释2.多行注释十二、Python变量1.变量定义理解2.变量名命名3.分

  • Android开发:什么是IBinder

    Android开发:什么是IBinder上回书简单描述了进程间传递类对象的原理,这回在讲Parcel之前,先要讲一个东西:IBinder。IBinder是什么呢?首先要明白,Android的远程调用(就是跨进程调用)就是通过IBinder实现的,下面是对android开发文档的翻译。IBinder是远程对象的基本接口,是为高性能而设计的轻量级远程调用机制的核心部分。但它不仅用于

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号