项目架构优化后迁移阿里云实录


    公司一网站项目由于历史遗留原因已经不能支持先有业务(保密不能告诉你们公司具体项目),现在要整改,决定规划出新的方案,最后上阿里云。这里总结记录下,希望能给准备迁移上云的小伙伴们一个参考。

现有网站架构

计划架构

最终网站架构

参考资料


        

现有网站架构

网站的思路:dns轮循到www.巧妙绝情李靖.cn(假想的网地),到apache后,将所有图片请求转到nginx,同时会话写入redis,如果是查询数据,php直接读数据库,如果写操作就调用nginx转发到C++程序服务器,再写到数据库。

wKioL1expwiCM2ggAATMN3K53wE604.png-wh_50

 

 

旧有架构问题:

1、web高可用采用dns轮循,并不能提高网站高可用,只起到负载分流作用。

2、apache直接响应客户端请求、又做反向代理、又要解析php,缓存功能。

3、nginx图片服务器存在单点故障,且只做C++转发,没有利用nginx高并发高速缓存。

4、mysql存在单点故障和redis存在单点故障。

5、C++程序存在单点故障,

 

计划网站架构:

网站的思路:采用

lnamp架构,利用nginx高并发、代理转发实现负载均衡和强大静态文件处理能力,及图片缓存功能,再结合apachephp动态处理(apache+php稳定性比nginx+php-fpmphp稳定性好),实现静态动态分离,配合keepalived实现高可用。

 

wKioL1expz-DXS_iAAUUArwbskE662.png-wh_50


优化后架构:

1、不再采用DNS轮循,提高网站高可用,最前端nginx只做缓存和转发。

2、nginx图片服务器(nginx03/04)不再有单点故障,提高了高可用,和负载均衡能力。

3、Mysql分为主业务库和基础库(用户中心、后台、消息中心),做了双主结构,提高了高可用,和负载均衡的作用。

4、Redis也做了主从,c++程序启用俩台,提高了高可用,和负载均衡的作用。

5、采用了分布式文件系统。

 

  最终网站架构

   由于阿里云禁止广播和多播,导致计划网站架构keepalived不可用,最后采用阿里SLB(负载均衡产品)来替换,最终修改如下图。

 

 wKiom1exp3KzEgXWAAURwFgl9q8948.png-wh_50 

 

   到此架构迁移完毕,后续博客会整理具体迁移步骤,并贴出具体文档配置。

 

 

本文是 巧妙绝情 一个字一个图打出来,参考了好多资料,感谢他们的分享,基于open source分享精神,转载请注明出出。
支持我,请点击巧妙绝情 谢谢

参考资料:

 

https://help.aliyun.com/document_detail/27539.html?spm=5176.product27537.4.2.trQsE7