PHP大会笔记:新浪微博LNMP架构分享

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

WechatIMG2.jpeg

私有云“化零为整”

WechatIMG3.jpeg

 
二、服务docker化
docker服务启动快
docker镜像一次制作,多次部署
尤其适合动态扩容部署
 
部署方案设计

WechatIMG4.jpeg

 
PHP服务器包括Nginx、php-fpm、memcache、scribe等几大组件
PHP组件容器单独部署
代码、配置、日志等经常变更部分通过挂载的方式和docker容器互动
 
镜像制作

WechatIMG6.jpeg

 
镜像方案

WechatIMG7.jpeg


WechatIMG8.jpeg

首次部署服务
通过下发配置文件、上线代码、启动容器完成服务部署。

WechatIMG10.jpeg

 
代码上线
通过镜像完成上线
代码镜像使用busybox为基础,大小仅1m

WechatIMG11.jpeg

 
创建代码镜像

WechatIMG12.jpeg

一些细节
 
四、弹性扩容

WechatIMG14.jpeg

扩容效果:一键式扩容
 
流量切换

WechatIMG15.jpeg


总结
LNMP服务docker化,制作PHP服务先关镜像
结合DP平台完成PHP服务的首次部署、配置更改、代码上线

0 个评论

要回复文章请先登录注册