这一篇我们一起了解一下分布式服务部署方案:
方案2:分布式服务部署
1、部署方式
在投资界,有一句至理名言,“不要把鸡蛋都放在一个篮子里”。说的是投资需要分散风险,以免因孤注一掷的失败造成巨大的损失。在服务器架设方面,一般也需要满足这个原则。方案1由于把所有的服务都放到一个服务器上,带来的风险是巨大的。当这个服务器出现问题,所有的服务都瘫痪了。
针对这个问题,很自然地会想到分布式系统的处理方法,也就是方案2。既然架设在一台服务器上危险的,那么把这3个服务分散至3台不同物理服务器上。
采用分布式模型,会带来很多优点:
- 安全:由于服务都分散至了3台机器,3个服务之间是相互隔离的,并且每台机器可以针对性设置防火墙。当一台机器被攻击的时候,别的服务可以不受影响,不会出现所有服务都崩溃的情况。因此,可以说,在安全性方面,相比简单模型方案1而言,分布式的方案2已经有了明显的改观。
- 可靠性:每个服务不同的可靠性问题,在分布式架构下都可以得到解决。比如http需要的高可用服务,只需要额外加一台备用服务器,当http服务器出现问题的时候,就使用备用服务器。MySQL服务可以采用高可用集群的部署方式,ftp文件存储服务,可以替换为分布式存储服务,或者直接采用云存储作为存储服务。
2、存在的问题
采用分布式架构之后,可以解决安全、可靠性、扩张等等问题。但是,扩展、部署和维护都会直接面对大量的物理服务器,其难度也相应增加。
- 扩展难度: 当用户增加,访问量开始上升的时候,对系统管理员、维护人员来说,又要进行采购设备、配置硬件、安装系统、配置软件等一系列重复而又繁琐的工作。
此外,还存在潜在的浪费。比如对于持续高访问量的网站而言,只需要连续不断地增加服务器,可称之为添油战术。但是有的网站的访问量,在特定的时期会出现爆发式增长。采用添油战术的情况下,平时的低访问量,将造成大量的服务器闲置和浪费。
- 部署难度:部署这么一套分布式系统,实在是比较麻烦的事情。可以想象的是,开发人员的开发环境、测试环境和生产环境都需要不断地重复验证。在此期间,需要经历多少次反复。交付客户之后,还需要保证客户能够维护这样一套复杂的系统。
- 维护难度: 在分布式系统中,当发现某台物理服务器出现故障的时候,补救措施一种是在原机器上进行修复;一种是找一台新的物理服务器,重新安装操作系统和服务软件。在此期间,需要经历漫长的修复过程。
总结:
如果觉得以上这些理论不容易理解,那么还是回到生活中:一个人想开一个超市,采购、运货、卖货、收银都由不同的人去完成。
扩展而言,就是当某个职位的人手比较少的时候,需要找新的人进行相应职位的培训。而且还需要考虑到人员过剩的情况。
部署而言,就是各个岗位需要找齐相应的人,并且进行相应的培训。还要保证这些人员之间可以进行比较好的合作。那么涉及的岗位越多,压力也就越大。
维护而言,就是当某个人身体出现问题的时候,需要等待这个员工恢复健康,或者是另找一个人顶替。
尽管这个方案存在一系列问题,不过已经基本能够满足开一个小超市的需要了。
下一篇我们了解基于虚拟化的服务部署方案…