成功的虚拟化系统的设计

一个项目的成功归功于很多因素。可若想毁掉一个项目,一个失败的设计就足够了。

好的系统设计像一部好的小说。整体布局,细节,关联,一个都不能少!

团队中架构师的作用就显得很重要。架构师不仅需要眼观六路,耳听八方,对一些技术细节有相当程度的了解。而且要对项目进行中各个阶段的重点,以及对设计决定所产生的影响有充分的认识。你准备好了么?

咱们从传统项目过程中的不同阶段来说说吧。本文以虚拟化设计为案例。

我设计了一个图来帮助分析部署系统的几个阶段。

一    需求分析阶段

客户需求

在需求分析阶段,需要挖掘出客户真正在乎的需求,最好对需求进行分优先级,不能眉毛胡子一把抓。而且需求并不是一成不变,项目过程中增减需求是平常的事,但由此造成的影响要评估并更新文档。有时项目组需要和客户协商撤销或者推后某些需求。可能的原因有:造成整个方案成本大幅上升;与其它关键需求冲突;可能造成项目延迟等等。

环境的限制

这点尤其重要,却常常容易被忽略。在分析阶段尽可能挖掘限制条件,会避免后面阶段很多的问题。比如客户已经在使用NFS,并且现有维护人员有能力维护该系统。你在推荐SAN的时候就要考虑带来的影响;若客户与某大供应商有协议,你是否可以考虑其它厂商?若客户有较严格的安全性策略,设计共享时要考虑哪些部分是不可以共享的,是否需要虚拟层的防火墙等等。

假设的条件

有时在项目执行中会因为某些需要客户或第三方完成的事情不具备,而造成项目延迟。这就需要在合同中就对这些假设特别说明/,以避免后面的责任不清。比如假设客户网络环境是可以支持你的设计的,可实施时才发现上行网络的防火墙的带宽或端口限制会大大影响你的方案的性能。 比如假设你需要使用客户已有的数据库,却发现版本和你的方案不兼容。

时间: 2024-10-14 13:04:41

成功的虚拟化系统的设计的相关文章

成功的虚拟化系统的实施及运维

如果把虚拟化系统比作一座房子,好的设计就使建筑框架图,实施就要一砖一瓦的把房子搭起来.缺工减料,延误工期的后果不言自明.而运维就是对房子的维护,改建和保养了. 本文设计篇我们讲了设计对于一个成功虚拟化系统的重要性,这只是一个好的开头.行百里路者半九十,实施及运维也要给力才成. 一   实施 架构师们,如果你真的在意你精心设计的方案,那么在实施过程中也不能松懈啊.我曾经也作过项目经理,这段经历对我在架构设计中帮助很大.架构师是项目经理的军师,你要帮助设计高效合理项目计划,并且能预计并控制风险.比如

一个典型PHP支付系统的设计与实现

  由于公司业务需要,花两周时间实现了一个小型的支付系统,麻雀虽小五脏俱全,各种必须的模块如账户加锁,事务性保证,流水对帐等都是有完整实现的,整个开发过程中有很多经验积累,再加上在网上搜索了一下,大部分都是些研究性的论文,对实际使用价值不大,所以这次特意拿出来和大家分享一下. 这个系统可以用作小型支付系统,也可以用做第三方应用接入开放平台时的支付流水系统. 原来的需求比较负责,我简化一点说: 对每个应用,对外需要提供 获取余额,支付设备,充值 等接口 后台有程序,每月一号进行清算 账户可以被冻结

基于Redis的限流系统的设计

基于Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计:在实现方面,算法使用的是令牌桶算法来,访问Redis使用lua脚本. 1.概念 限流是对系统的出入流量进行控制,防止大流量出入,导致资源不足,系统不稳定. 限流系统是对资源访问的控制组件,控制主要的两个功能:限流策略和熔断策略,对于熔断策略,不同的系统有不同的熔断策略诉求,有的系统希望直接拒绝.有的系统希望排队等待.有的系统希望服务降级.有的系统会定制自己的熔断策略,很难一一列举,所以本文只针对限流策略这个功能做详细的设

云端海量任务调度系统数据库设计 - 阿里云RDS PostgreSQL案例

标签 PostgreSQL , 任务调度系统 , 数据库设计 , schemaless 背景 任务调度系统中的任务状态管理,通常会用到数据库来存储任务调度的过程状态,控制任务的锁等. <advisory lock 实现高并发非堵塞式 业务锁> 如果是小量任务,是挺好实现的,但是每小时处理几十亿或者几亿的任务,如何设计这样的任务状态管理数据库呢? 挑战 对于一个面向多个用户的任务调度平台(例如云端的任务调度平台,将面向所有租户使用). 较大的挑战是任务数据的写入(海量),另一个是任务状态的更新(

大型网站技术架构之秒杀系统架构设计

秒杀活动的技术挑战 1. 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必须会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪. 2. 高并发下的应用.数据库负载 用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器.连接数据库,会对应用服务器和数据库服务器造成极大的负载压力. 3. 突然增加的网络及服务器带宽 假设商品页面大小200K(主要是商品图片大小

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息,包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题.因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux下软

PHP+MySQL投票系统的设计和实现分享_php实例

系统不大,完成这个系统的过程我分了三个步骤 •数据库设计 •系统框架设计 •前端美化 数据库的设计 设计三张表:投票结果统计表(count_voting),投票人记录表(ip_votes),用户表(user) 投票结果统计表用于统计最后的投票记录,我给它弄了4个字段:被投票项的名称(SelectName),被投票项标签名(LabelName)(起到分类的作用),票数(CountVotes). 投票人记录表用于登记投票人的ip(IP),地理位置(Location),投票时间(VoteTime),被

基于云计算的分布式校园视频监控系统的设计

基于云计算的分布式校园视频监控系统的设计 朱琳 针对传统校园视频监控系统存在的因数据传输量过大而造成的带宽资源不足 数据存储量有限 系统计算能力不足等问题提出基于云计算的分布式校园视频监控系统 通过分布式计算将海量视频数据拆分处理应用虚拟化资源替代有限的物理资源实现存储的的完全虚拟化提供更强的存储和共享功能 并将校园监控系统的有线网络与无线网络融合在一起最合理化的使用系统资源 实验证明应用云计算架构的校园视频监控系统视频图像清晰流畅信息处理能力大大提高拥有海量存储能力具有安全稳定高性能和高可扩展

基于云计算的自组织可伸缩网络服务集群系统的设计与实现

基于云计算的自组织可伸缩网络服务集群系统的设计与实现 北京邮电大学  邓学刚 本文阐述了一种基于企业自身的需求,而部署的一种IaaS(基础设施即服务)的私有云平台.首先介绍了云计算在国内外的研究现状和研究成果,以及一些与云计算相关的技术背景,包括体系结构.私有云.服务层次等内容:其次论述了所部署的云平台的需求分析.详细设计和实现的全部过程,同时,基于该云平台之上,设计和实现了一种自组织可伸缩网络服务的集群系统:然后,针对整个云系统的各部分进行详细的测试和分析:最后,对系统开发的成果以及作者开发过