1、应用系统:简单的移动互联网业务分层大概可以这样搭建:前端代理+ web应用业务层 + 缓存 + db前端代理可以用nginx等如果有图片等等大量磁盘IO的需求,还需要有个图片缓存服务器,以降低对磁盘的读写缓存用来将db内容存储为KV对,例如redis,以减少业务对db的访问以上这些跟OpenSt...
显示全部1、应用系统:
简单的移动互联网业务分层大概可以这样搭建:
前端代理+ web应用业务层 + 缓存 + db
前端代理可以用nginx等
如果有图片等等大量磁盘IO的需求,还需要有个图片缓存服务器,以降低对磁盘的读写
缓存用来将db内容存储为KV对,例如redis,以减少业务对db的访问
以上这些跟OpenStack无关,有个帖子可以参考
http://blog.csdn.net/u011650565/article/details/446202352、云平台
OpenStack是个开源云平台,可以搭建私有云来为公司提供高可用的云主机和高峰期的弹性扩展
当前比较热门开源的云平台有OpenStack和cloudstack两种
实现的功能基本相似,基本上能够满足资源的规划,部署,故障恢复和弹性扩展
所带来的不足是需要提供大量的物理资源,比如一台物理机千兆网卡承载的并发量,换用虚拟化方案,一台物理机可能并行10台vm,这样可能就需要用到万兆网卡才能完整发挥其效率。
3、OpenStack组件
Nova,Cinder,Glance,Keystone,Nuetron,Swift
Nova,计算服务,用来提供服务器虚拟化
Cinder,提供虚拟机的额外块存储,将某个存储设备或者服务器的某个分区,直接挂载到一台vm上,提供存储。
Glance,虚拟机的镜像
Keystone,OpenStack的权限验证模块
Neutron,OpenStack的网络服务,这个可以不用,只用Nova自带的nova-network也可以实现简单的网络管理,而且比较稳定
Swift,分布式对象存储,存放图片,文本,视频等功能
但是swift保证的是高可靠性,如果大并发访问,为了优化体验,还需要在其上搭建缓存服务器,视频还需要专门搭建流媒体相关的计算服务器等(流媒体方面我就不擅长了),这个是云平台目前做不到的
4、监控
目前开源的监控产品很多,zabbix,zenoss,ganglia等等,都可以考虑,目前我们用zabbix,还不错
5、性能
(1)因为有了虚拟化层,所以效率损失是一定的,只能根据虚拟化选型来进行调优
(2)性能的另一个损失是由于物理限制,一台物理机的吞吐量分配给多台vm来使用,每台vm一定会比物理机降低不少,可以通过业务方面的调度,把高CPU、高内存消耗、高磁盘IO和高网络IO的业务交错部署,尽量达到物理资源的使用极限,不浪费资源
6、短板
平台自动化运维,云平台自带HA和LB。但是也有很多组件和服务,实际每个主机上的每个服务随时可能出现问题,基于此种考虑,可以使用puppet或者saltstack等运维工具保证服务的可用和故障恢复。
云平台不能解决的是应用层面的弹性规划,例如应对高峰期的大量并发,需要业务层面支持(云平台弹性调度启动新的vm,业务需要自发现并自动部署,这类功能需要额外开发)
收起