互联网公司技术架构资料.新浪.动态应用平台后端系统与自动化运维系统开发实践.pdf
- 文件大小: 9.96MB
- 文件类型: pdf
- 上传日期: 2025-08-17
- 下载次数: 0
概要信息:
YC HOf
{/KZ"XELu(
mRbe
• DevOps @Sina
ἧ Lamp项目托管平台
ἧ 已托管项目500+
ἧ 日均请求10B+
DhtYCVpw^
ἧ SOA陷阱
• Memcached“太”好用了
ἧ RDBMS难以ģ展
ἧ 困扰ሹ们的“Ẓ喀琉斯之踵”
mR0!
ἧ 解耦
ἧ 分而治之
ἧ ...太多名词来描述优点和必要性
ἧ 当目标太多的时候,是不是容易⁇成
і了做而做?
Service 1 Service 2
User
Service 3 Service 4
Service 5
Service 6
Service 7
Service 8
Service 9
Service 10
Client
Service 1
ZooKeeper
Service 2
Service 2
DiscoveryNamingACLQuota
Configuration Center
Ops
DNS
Web Server
DNSMasq
Apache
DNS
Query
Worker Server
DNSMasq
Queue
Subscriber
DNS
Query
Message
Queue
Updating API
Update
Sync
Purge
Service
Purge Req
DNS Cache
Purge
MonitorStatus Update
jxUT6n
• CPythonNode.JSPowerDNS
DNSMasqMongoDB
ἧ DNS协议,更新时通知所有客户端,
缓存一致性强
ἧ 多样化API
ἧ 无监控框ว,结合API设计开发
ἧ A记ᕢ无法返回端口号
1vx
*L
,i}
ἧ ሹ的首ၷ最多要取50+1+4+2个用户
的信息
ἧ ሹ的首ၷ最少要取50X2+3个计数ዸ
ἧ і了访问ቴ度大量使用并依赖
Memcached
ἧ 如果有一台Memcached服务ዸ宕机的
话...
Zookeeper Cluster
Web Front-End
Apache
php-
meta-ext
php-mc-
ext
metad
zk local cache
Cache Node
Watcher
MCMC
MC
Updating
Notification
Cache Node
Watcher
MCMC
MC
Legend
Server
Process
Cluster
Extension
Node Register
&
Heartbeat
Memcached Command
5%a>)6n
• ThriftCC++Python
ZooKeeper
ἧ 分片信息保存在ZooKeeper中,并在
Metad缓存
ἧ উ持引擎级主⎫主复制
ἧ 连接数LRU(Patch from SAEۤ
• Memcached-Like SDK
5%a>)6n
ἧ ԯ来特性:
ἧ 跨IDC复制(开发中ۤ
ἧ 数据迁移和无缝ģ容(也ᱎۤ
ἧ FlashCached(也ᱎۤ
ἧ 更好的管ၯ性
,4W
ἧ MySQL很棒,但是...
ἧ Range Ĉ Hash
ἧ 开发改造成本
ἧ 不合“规范”的Ĉ┐ቷ
• Master HA
Management API
ZooKeeper FE Cluster
Web/Command-line
tools
MySQL Cluster MySQL Cluster MySQL Cluster
Maya Maya
dFJA&
ἧ Node.JĈ、C、Flex ௲ Bḋson、
Pthon、
ἧ Ĉ┐ቷ路ҹ
ἧ 流量统计、配̩、限制
ἧ 数据库预拆分(不是自动拆分ۤ
ἧ 主库半自动切换、从库自动切换
ἧ Ĉ┐ቷ审计、自动DDቷ
mR,
HOf
ἧ 每年新增PHP项目100+
ἧ 3000+台前端服务ዸ 100亿+ Hits/天
ἧ 45000+ᥳ虚拟主机配置 30G代码
(GZip后ۤ
ἧ 3000+台数据库服务ዸ 200亿+ 数据
库请求/天
ἧ 6000+ 个MySQL实例 总存储量2P+
=@+~7[$3
_,#GQ
Make
Disasters
Manual
/<{kSs
ἧ 配置ዃ部越统一越容易自动化
ἧ ኚ服务ዸ按照功能划分角色
ἧ і每一个角色指定相应的配置ᅎ件
ἧ 角色和配置ᅎ件的分类尽量ℛ洁
ἧ 差异配置利用程序来自动化处ၯ
;
&3.5# #
&3.5# #
&3.5# #
httpd-vhost.conf_tmpl
;
*%$#14,&
7+-8
# #
# #
# #
9
&,2*',*.&:-<"!2&3.5!2# #
<8
042)5)/23#$/.'*('*,& &3.5# #
*%$#14,&8*%$98# #9
.&63
9&,2*',*.&:-<"!2&3.5!2# #
<8
042)5)/23#$/.'*('*,& &3.5# #
*%$#14,&8*%$98# #9
.&63
9&,2*',*.&:-<"!2&3.5!2# #
<8
042)5)/23#$/.'*('*,& &3.5# #
*%$#14,&8*%$98# #9
.&63
9
vhost_config.pl
FE Node
/etc/httpd-vhost.conf
2y9Mr-,
Iz]B
ἧ 那༫创造一个配置ᅎ件吧
ἧ 当然要尽量创造一个全局统一的
ἧ 索性ዃ监控程序结合来怎么样?
• INI VS YAML
ἧ ༫比如Memcached!
[MBlog_Userinfo]
ip=10.55.22.100:10000 10.55.22.101:10000 10.55.22.102:10000 10.55.22.103:10000
memsize=10.55.22.100:1G 10.55.22.101:1G 10.55.22.102:1G 10.55.22.103:1G
conn_limit=10.55.22.100:1W 10.55.22.101:1W 10.55.22.102:1W 10.55.22.103:1W
[MBlog_Counter]
ip=10.55.22.100:10001 10.55.22.101:10001 10.55.22.102:10001 10.55.22.103:10001
memsize=10.55.22.100:1G 10.55.22.101:1G 10.55.22.102:1G 10.55.22.103:1G
conn_limit=10.55.22.100:1W 10.55.22.101:1W 10.55.22.102:1W 10.55.22.103:1W
mc.conf
MC Node
/etc/init.d/memcached
/etc/cron.d/check_mc
Monitor Node
/etc/monitor.d/check_mc.py
Reporting Node
/etc/reporting.d/get_mc_stats.py
Automation
uX;
8/DevOps
• Scrum
• BDD
• CI
• 工具大部分来自于Atlassian(比如Jira)
qq
Q&A
当前页面二维码