PHP大会笔记:新浪微博LNMP架构分享
【音频资源晚上放进来】
大会议题:高可用PHP。
一:新浪微博PC主站升级PHP7后的问题分析,新一代LNMP架构,基于混合云平台的弹性扩容架构
新浪微博内部技术体系:
后端语言,Java和PHP两大体系,开放平台用户关系和内容,是Java实现,所有业务需求开发用PHP。
模块并行化
突发大流量如何处理?改善架构,弹性扩容架构
分享大纲
背景和挑战
DCP平台介绍
PHP服务docker化
弹性扩容
1、背景和挑战
突发热点事件,引发大流量
大型活动及三节保障:春节红包飞
PUSH推送,运营的各种站内站外推送
话题业务特点
平时流量稳定,每日峰值波动较小
传统解决方案:提前申请足够的设备
设备冗余的问题,机架位不足,千万级采购成本,采购周期长,运行三个月只为一晚。
服务降级
降级非核心及周边业务
极端情况PC主站只保留主Feed
扩容繁琐,目标实现业务的弹性扩容部署
采购(采购机器)--》基础运维(操作系统、网络)--》业务运维(环境、监控、服务、流量)
运营设备成本高,目标要降低成本
各业务线利用率不高,未充分利用设备
各业务模型不同,峰值事件不同,不能进行错峰使用
每个业务都有自己的冗余,多个业务池会造成极大的成本
2、DCP平台介绍
主要思想:业务弹性调度、基础设施支持跨云
业务弹性调度:容器化来抹平运行环境的差异(借助docker)
基础设施支持跨云:
私有云(透明、安全、高性能)----- 按负载迁移(混合云)------公有云(敏捷、低成本、弹性)
固定工作负载 ,放在私有云----- 如根据预警,申请临时阿里云公有云,来进行弹性工作负载(按需申请使用和归还(无需闲置,成本低))
架构图
私有云“化零为整”
二、服务docker化
docker服务启动快
docker镜像一次制作,多次部署
尤其适合动态扩容部署
部署方案设计
PHP服务器包括Nginx、php-fpm、memcache、scribe等几大组件
PHP组件容器单独部署
代码、配置、日志等经常变更部分通过挂载的方式和docker容器互动
镜像制作
镜像方案
首次部署服务
通过下发配置文件、上线代码、启动容器完成服务部署。
代码上线
通过镜像完成上线
代码镜像使用busybox为基础,大小仅1m
创建代码镜像
一些细节
四、弹性扩容
扩容效果:一键式扩容
流量切换
总结
LNMP服务docker化,制作PHP服务先关镜像
结合DP平台完成PHP服务的首次部署、配置更改、代码上线
大会议题:高可用PHP。
一:新浪微博PC主站升级PHP7后的问题分析,新一代LNMP架构,基于混合云平台的弹性扩容架构
新浪微博内部技术体系:
后端语言,Java和PHP两大体系,开放平台用户关系和内容,是Java实现,所有业务需求开发用PHP。
模块并行化
突发大流量如何处理?改善架构,弹性扩容架构
分享大纲
背景和挑战
DCP平台介绍
PHP服务docker化
弹性扩容
1、背景和挑战
突发热点事件,引发大流量
大型活动及三节保障:春节红包飞
PUSH推送,运营的各种站内站外推送
话题业务特点
平时流量稳定,每日峰值波动较小
传统解决方案:提前申请足够的设备
设备冗余的问题,机架位不足,千万级采购成本,采购周期长,运行三个月只为一晚。
服务降级
降级非核心及周边业务
极端情况PC主站只保留主Feed
扩容繁琐,目标实现业务的弹性扩容部署
采购(采购机器)--》基础运维(操作系统、网络)--》业务运维(环境、监控、服务、流量)
运营设备成本高,目标要降低成本
各业务线利用率不高,未充分利用设备
各业务模型不同,峰值事件不同,不能进行错峰使用
每个业务都有自己的冗余,多个业务池会造成极大的成本
2、DCP平台介绍
主要思想:业务弹性调度、基础设施支持跨云
业务弹性调度:容器化来抹平运行环境的差异(借助docker)
基础设施支持跨云:
私有云(透明、安全、高性能)----- 按负载迁移(混合云)------公有云(敏捷、低成本、弹性)
固定工作负载 ,放在私有云----- 如根据预警,申请临时阿里云公有云,来进行弹性工作负载(按需申请使用和归还(无需闲置,成本低))
架构图
私有云“化零为整”
二、服务docker化
docker服务启动快
docker镜像一次制作,多次部署
尤其适合动态扩容部署
部署方案设计
PHP服务器包括Nginx、php-fpm、memcache、scribe等几大组件
PHP组件容器单独部署
代码、配置、日志等经常变更部分通过挂载的方式和docker容器互动
镜像制作
镜像方案
首次部署服务
通过下发配置文件、上线代码、启动容器完成服务部署。
代码上线
通过镜像完成上线
代码镜像使用busybox为基础,大小仅1m
创建代码镜像
一些细节
四、弹性扩容
扩容效果:一键式扩容
流量切换
总结
LNMP服务docker化,制作PHP服务先关镜像
结合DP平台完成PHP服务的首次部署、配置更改、代码上线