好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

【架构★我的系统架构】我的系统架构<前言>

【架构★我的系统架构】我的系统架构<前言>

前言  

  之前在微博上看到网友说了这样一句话:“ 好的系统架构不是设计出来的,而是在实际应用过程中不断完善得来的 ” 。我也觉得很有道理,但是我仍然认为在系统构建之前必须要有一套合理的基础架构,否则日后的“完善”将会苦不堪言。

  一套系统架构不可能做到 通用 ,但是我想一些基础理念必然相同,或者说存在一套 通用的可扩展的基础架构 。后面我会写几篇博文,来描述一下“ 我的架构 ”。

  此处附上一篇转载的博文: 百万级访问量网站的技术准备工作   。此文从全局概括一套“大”系统的架构需要做好哪些准备工作,所以以此文作为本系列的 前言 ,我想是再合适不过了。

场景

  本人现在供职的公司是一家以 O2O 为核心业务的家装行业的 电商公司 。即从线上召集用户到线下消费,线下用户看到实物后可到线上商城下单购买。

   前台业务 主要包括:O2O活动召集、线上商城、资讯门户、家装公司、案例分享、线上团购、智能手机客户端、家装论坛、会员中心、数字化装修、全站全文检索、装修问答、以及设计师、项目招标、推广联盟等一些周边的功能频道。

   后台业务 主要包括:网站平台管理系统、站内统计系统、报表系统、库存物流系统

   访问量 :目前网站访问量日IP十万左右,PV大概是IP的5-10倍左右,即50-100万左右。

   现状 :  ①由于历史原因,现在公司开发平台为VS2003+SQL2000【够老吧】,所以升级开发工具和运行平台势在必行。

       ②当前整套系统几乎处于无架构的状态(最主要的问题在于分站模式不合理;扩展性被限制在一套CMS系统上,导致整套系统无法扩展或者说很难扩展;无缓存设计等等等等这里就不详细说明了)

       ③当前系统的 性能出现瓶颈 (我觉得主要原因在与 系统无缓存设计,导致在大量复杂的存储过程中多表联查;数据库设计不合理,比如没有合理的冗余设计;没有报表系统,很多统计功能都是实时统计;细节没做好,比如很多查询都是内存分页甚至没做分页;以及DBMS版本比较老等等。)

        ④公司完成首轮融资,所以业务将会有较快的发展,要求也会更高。所以对当前系统的升级改造已经迫在眉睫。

目标

  “ 没有最好的架构,只有最合适的架构 。 ”这也是为什么要做上面场景的描述。本系列博文的目的并不是说我的架构有多好,这套架构是有针对性的对与我们来说最合适的架构。但是可以轻松的向“最好架构”的方向扩展也是其基础要求之一。

   整体目标 :在保证系统的 安全性 和 稳定性 的基础上,无障碍承压日 IP50万 ,日IP接近50万时,可轻松扩展至承压日 IP100万 。并保证较低的开发、维护成本。

合理的基础服务器架构是整个应用系统 稳定、高效、安全 运行的保障,需对其进行合理的规划。以下从 网段划分、服务器规划、服务器安全 三个方面进行详细的规划说明: 

网段划分

我们根据 功能 和 业务 对服务器内网划分为十大网段,并可以在不同的场景下对各网段间的访问 权限 进行控制。



10.1.1.*:数据库服务器网段(供核心数据库、论坛数据库等数据库服务器使用)
10.1.2.*:核心应用网段(供会员中心、通行证、中心服务、全局缓存等核心应用服务器使用)
10.1.3.*:商城相关网段(供商城、每日抢购、订单系统、支付系统等商城相关服务器使用)
10.1.4.*:周边应用网段(供团购活动、装修公司、家装案例、装修问答、全站检索等周边应用服务器使用)
10.1.5.*:第三方应用网段(供论坛等第三方应用服务器使用)
10.1.6.*:管理系统网段(供网站管理系统、财务系统、报表系统、仓储物流系统等内部应用服务器使用)
10.1.7.*:文件服务器网段(供图片、论坛附件、静态文件、文件上传服务等文件服务器使用)
10.1.8.*:作业服务器网段(供数据同步、定时队列、系统监控等循环或定时执行的脚本服务器使用)
10.1.9.*:备份服务器网段(供数据库、文件等备份服务器使用)
10.1.10.*:网络设备网段(供F5、防火墙、路由等网络设备使用)

服务器规划 

 

1. 数据库服务器n台:n视数据库服务器压力逐步增加,可按需将各个模块的数据库分别部署到不同的数据库服务器。现阶段建议3台:主数据库服务器、副数据库服务器、论坛数据库服务器。数据库服务器应选用配置较高的机器,并需要做硬盘Raid等安全措施,最大限度的保证数据的安全。

2. WEB服务器n台:n视Web服务器压力和模块独立性合理配置,可将各个模块和系统部署到不同的WEB服务器。现阶段建议5台:主站Web服务器(主要用于资讯类模块)、商城服务器、其他应用服务器(含Job Server)、论坛服务器、ERP服务器。

3. 缓存服务器1台:提供Memcached分布式缓存服务。应选用内存较大的服务器。

4. 文件服务器n台:提供文件上传、分发服务;并用于文件存储。n视文件服务器压力逐步增加。先阶段建议1台(IIS中分多个网站提供文件访问服务),并使用CDN全网加速。

5. 备份服务器一台:用于数据库、程序、文件等的增量备份。

6. 监控服务器1台:用于监控所有服务器、服务、进程、端口、应用程序的运行状态以及宽带流量。

7. Job服务器:用于运行同步服务、异步服务、功能服务、运维脚本等Job。

8. 其他服务器:如邮件服务器等

9. 其他设备:如F5、防火墙、路由器、VPN等设备,按需进行配置。

服务器安全

服务器安全方面主要还需要技术运维的同事来进行详细的控制,这里我只做简单的描述:

1. 通过防火墙、IPSEC、VPN等方式以白名单的形式限制各网段、IP、端口的访问权限。
2. 每台服务器以白名单的方式开放端口,并控制端口的出、入权限。
3. 提供监控服务,监控服务器、服务、进程、端口、应用程序的运行状态以及宽带流量等,并在出现异常的时候及时进行短信、邮件的通知。

目录 

  下面我将分多篇博文,分别从《服务器架构》《数据库架构》《应用系统架构》《程序结构》等几个主要方面以及《分布式存储》《异步队列》《统计报表》《站内统计》等多个详细系统和细节上分别进行讲解。

  

   【架构★我的系统架构】我的系统架构<前言>

   【架构★我的系统架构】我的系统架构<服务器架构>

   【架构★我的系统架构】我的系统架构<数据库架构>

  【架构★我的系统架构】我的系统架构<应用系统架构>

  【架构★我的系统架构】我的系统架构<程序结构>

  【架构★我的系统架构】我的系统架构<分布式存储>

  【架构★我的系统架构】我的系统架构<异步队列>

  【架构★我的系统架构】我的系统架构<统计报表系统>

  【架构★我的系统架构】我的系统架构<站内统计系统>

  ... ...http://HdhCmsTestcnblogs测试数据/fmp/archive/2013/01/31/MyFramework_Start.html

作者: Leo_wl

    

出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于【架构★我的系统架构】我的系统架构<前言>的详细内容...

  阅读:38次