随着现在互联网的高速发展,用户对企业互联网产品的体验性尤为重要,其中包括用户对网站速度,产品
内容,可用性,方便使用性及安全性等多方面。要想提供给客户比较满意的互联网产品服务,首先需要我
们从对互联网平台的基础架构开始有规划,有前瞻性地设计并实施。构建一个比较完善的互联网平台体系架构广义上可以归纳为:高可用性,高扩展性,高性能性,高安全性。
以下会从这四个方面入手解释具体的思路。
一. 高可用性:宏观分类为硬件高可用和软件高可用
硬件高可用:服务器,网络设备等都应该避免单点问题,
1) 服务器电源应选择双电源,服务器网卡尽量使用双网卡绑定,服务器应预留一定数量的备机。服务器
磁盘配置RAID
2) 核心网络设备如防火墙,核心层交换机都应做主备冗余。现在主流网络设备都能通过HSRP 或VRRP
来做到心跳检测,一旦一台设备出现问题,备机会自动接管当前服务。
3) 存储的使用:可以有效解决大数据存储及数据冗余完整
软件高可用:软件应用的APP,如WEB,都应去除单点,同时也可解决负载均衡的问题。
1) 可通过硬件负载均衡设备如F5
2) 软件七层反向代理如现在比较流行的NGINX,四层LVS,HA软件keepalive,heartbeat等
3) 源代码的高可用:应采用版本管理控制系统来控制代码的开发及发布,代码有重大BUG可随时回滚
4) 企业核心的资源来源于数据库,所以数据库必须消除单点,以 mysql为例,可以做mysql主从复制,
一主多从或者双主多从或者是集群。
伦理片 http://www.dotdy.com/
二. 高扩展性
1) 在设计架构时必须考虑到公司业务规模发展扩大后架构的整体扩展性。应尽量易于横向扩展
三. 高性能性
1) 合理规划网络架构及网络性能优化
2) 操作系统优化:内核优化,文件系统优化等
3) 应用程序优化:nginx,php,tomcat等应用的性能优化
4) 代码优化
5) 数据库优化:确定数据库的读写比例,选择相应的存储引擎,SQL优化,性能参数优化,数据库的拆分
6) 缓存机制:如CDN缓存静态页面或者图片,memcache,redis,mongodb等nosql可用于缓存数据库的热数据。也可选择将热数据缓存到读写速度比较快的SSD硬盘或闪存卡,提升IOPS性能
7) 页面静态化
8)对于图片较多的网站,也可将图片服务器实行多域名加载
四:高安全
1) 网络安全:ACL,VLAN,QOS,防攻击,账号安全管理
2) 系统安全: iptables, tcpwrapper,账户安全管理,密钥,RSA加密认证
3) 应用程序及代码安全:数据加密
4) 数据库安全:访问数据库IP权限管理,账号管理,增删改查权限管理
除以上四大方面外还应做好监控机制的保障,监控网络流量,应用服务状态以便及时得知线上所有设备和应用的健康状况。为提高工作效率,应构建自动化运维平台。为降低服务器,机柜整体采购成本,整合资源应用环境隔离,充分利用服务器资源可以实施虚拟化技术,目前开源的虚拟化软件有KVM,xen等。