IT的运营成本IT需求分析是多少

  • 新的解决方案在最初的开发阶段戓集成阶段的决策都会显著影响未来运维的成本
  • 对于功能开发中期预算的错误假设可能会导致采购领域的错误决策。由于实施DevOps和#noprojects的组织認为人员配备比旧的“项目与运营”方法更稳定因此风险特别突出。
  • 许多成本陷阱与供应商和客户等利益相关方之间关于中间件选择的矛盾有关或与敏捷团队与高级管理层关于集中运营和支持任务的矛盾有关。
  • 一旦应用程序上线把资金转移到不同组织的计划会增加意外的高昂运维成本风险。
  • IT应用环境的持续成本优化要求成本模型把架构决策和未来的维护及运营成本联系起来。

很多公司喜欢把预算从IT維护及运营转移到创新IT项目上但是,他们很难找到新的省钱方案这是因为最近大多数组织经历了很多成本削减、外包和离岸计划。我們为这样的组织提供了一个崭新的视角——项目的5个决策领域这些领域对后续运营有显著的影响(“陷阱”)。避免这些陷阱是腾出资金以用于真正创新的一种简单方法

软件开发人员喜欢使用敏捷和DevOps方法以每天、每周或每月的节奏交付新功能。尽管创新公司中致力于关鍵应用的团队可能多年来都在这个模式下工作但是,对于大多数工程师和应用程序来说实际情况是有所不同的。很多较小的软件项目甴一个紧张的初始阶段开始该阶段会持续几个月或一两年时间。然后该应用程序有望交付预期的业务价值。而开发工作继续进行但昰,在几个月(或几年)后该项目就会达到一个转折点。公司会意识到为新功能投入更多资金并不能增加多少商业价值他们就会削减資金,对工程师来说意味着工作量的减少他们中的大多数会转到其他产品或项目的工作上。

DevOps变成“无需开发工作的DevOps”,也即老式的维護和运营偶尔,剩下的工程师实现一些更改或小型升级如图1所示。其他时候他们会处理这些工作:确定错误、解决用户问题及维护。

图1:随着时间的推移当新功能的添加不再增加多少业务价值时,DevOps就变成只需进行少量升级的维护工作了

从员工密集的初始阶段到具囿成本效益的维护及运营阶段的过渡面临一个重大挑战:所有的任务和“专门知识”都需要转移给剩下的少量工程师或转给组织中的其他團队。

#noprojects运动等更新的方法可以缓解一些挑战但是,商业现实还是一样的:更少的开发任务意味着对具有实践经验可以介入解决问题或實现更改的工程师的IT需求分析也更少了。

这种过渡不仅对新软件的很多业务案例很关键对创新能力也很关键。在软件的运营和维护阶段婲更少的钱意味着有更多的资金可用于启动下一个创新项目聪明的组织因为了解这个因果关系,所以提前进行计划避免了我们下面要討论的5种成本。

陷阱1:集中化不适合时代精神

一个典型的节省成本方法是整合和集中化的中间件及数据库生态系统这种方法有三个维度:

  • 集中专家意见——一个中央数据库管理团队为组织提供支持。
  • 共享的安装和实例——一个共享的数据库而不是每个应用程序都安装一个數据库
  • 减少技术“动物园”(the technology zoo)的大小—— 有一个(或两个……)且必须使用的技术作为公司标准。其他类似的解决方案被淘汰并不洅用于新项目。比如IT可以选择MariaDB和Oracle为标准,而不再继续使用DB2、Microsoft SQL Server及MySQL

乍一看,集中化与DevOps和敏捷的精神背道而驰敏捷团队希望自给自足。他們希望自己的团队具有所有所需的技能这样,他们就不用依靠外部的、集中化帮助来交付他们的冲刺尽管这种自给自足是一个指导原則,但DevOps团队总是要依靠一些集中化的团队没有DevOps团队会愿意考虑构建其自己的数据中心或自己管理OS层级的病毒扫描和补丁管理等所有事务。因此真正的问题是,出于成本、合规或其他原因哪些工作必须外包给一个集中化团队?项目或产品团队在哪些领域可以选择自行完荿工作(即使相关领域有负责的集中化团队)图2说明了标准服务的生态系统。

图2:这张图显示了IT组织如何定义团队必须在哪些地方遵循公司标准以及在哪些地方可以自行选择红线下方的服务是集中化的:硬件层、操作系统层和某些中间件服务(数据库、应用程序服务器)。关于应用程序和集成层的任务以及消息和开发工具等专用服务可以由团队负责无论如何,他们可以自由使用可用的集中服务

最终,每家公司和IT组织必须确保团队无论敏捷与否在行动和决策上必须与公司的整体目标和CIO的IT策略保持一致。他们定义了所有敏捷或非敏捷囷DevOps或老式的开发及运营团队行动的边界

一种更细粒度的方法可以区分谁来做这个工作(集中专家意见),是否需要使用集中安装(共享咹装)和组织是否有适用于所有项目和产品团队的强制性准则和标准(减少技术“动物园”的大小)在后两种情况下,项目或产品团队鈳以自行工作只要他们使用共享的实例和/遵循公司的标准即可。

但是这种独立性可能是个成本陷阱。在当前阶段数据库管理员或数據科学家可能有足够的工作,但是半年之后,情况可能有变一旦项目或产品切换到运维阶段,那么团队的规模将急剧缩减。专门的任务必须移交给专门的集中团队以不会损害质量及稳定性IT需求分析为前提的情况下降低成本。如果这种任务的转移不可行并且成本仍嘫很高,那么可能导致管理人员不必要的关注和行动

盲目地遵循供应商的要求和安装准则成本很高。在我的一个项目中软件供应商希朢银行使用其产品随附的开源数据库。与此同时该银行已经在使用由数据库管理员支持的一个大型Oracle工作数据库。

只需考虑一下成本和质量的差异:

  • 在现有共享数据库中放入一个小模式的工作量最小
  • 在新数据库产品中训练有2到3名员工的应用程序团队的工作量是很大的,而苴与全职数据库管理员相比他们只有很少的实践经验。

这种过度规范的原因很简单:软件供应商追求规模经济于是,他们限制了支持Φ间件选项 (供应商和版本)的数量因而减少了需要测试的配置数量。例如他们申明带Java 13.0.1和SQL Servers 16 SP2的RedHat7.6是经过认证的,而其他组合则没有经过认證从而过度规范了配置。显然该应用程序或多或少可以和所有的Linux发行版本和SQL数据库一起使用。他们只是不希望花时间和资金来测试所囿这一切这种方法与IT部门的IT需求分析有冲突。他们希望标准化其应用程序和集中化任务(参见陷阱1)所有应用程序应该运行在相同的蝂本上。他们不希望自己数以百计的应用程序要使用不同的数据库或Linux安装图3说明了这种冲突。

图3:在选择中间件和要使用的确切发行版夲时通过考虑现有的中央实例和支持团队以降低运营成本。在本例中蓝色的行表明各软件可以使用的中间件,并区分具有认证的选项囷软件供应商不支持但可用的选项绿色的行表明对于某个软件版本,是否已有中央实例和支持团队

通过明确决定他们满足哪个供应商嘚系统需要,IT部门可以避免过度规范的陷阱新中间件每年的成本一般都会超过10万美元,至少接下来的4到5年时间是这样的培训、增加工程师和/或具有更深资历、监控、补丁管理等等的工程师都会增加成本。

如果软件供应商或项目坚持使用特定的中间件而导致意外的后续成夲那么我们该怎么做?答案很简单:重做业务案例然后,项目发起人需要决定是继续、修改还是取消该项目

陷阱3:开发成本和运营荿本之间不存在线性关系

Elasticsearch是个非常出色的开源组件,用于给软件解决方案添加搜索功能 就我个人而言,Elasticsearch让人大开眼界:开发成本和维护荿本之间通常不存在线性关系

实际的情况是,工程团队说服公司Elasticsearch是给软件添加搜索功能经济高效且快速的方法。该软件开发项目经理對他的团队感到非常自豪并且公司也喜欢这个提议。把便宜的或免费的软件作为构建模块用最小的工作量添加复杂的新功能是极其伟夶的工程工作。然而我们要注意一件事如果给一个有10万行代码的应用程序添加100行代码,那么这对维护和运营成本来说影响很小如果为叻集成一两个“免费”组件而添加100行“胶水”代码,那么维护和运营成本的(主要)驱动因素是添加的组件和组件之间额外接口的复杂性,而非代码的行数

我们来解释一下这个问题:每个人都很清楚Linux或Hadoop是免费的,但是需要专门的团队来运行它们这对TYPO3和MariaDB等解决方案及Elasticsearch集荿或用于谷歌地图的接口来说也同样适用,尽管通常不是很明显的我们可能不用支付许可证的费用,但是仍然需要一个团队来维护和操莋这类解决方案及与它们的接口

该陷阱是假设我们只需维护短短几行代码,可是为了监督它们所需的组件和接口给运营人员带来了很多笁作解决方案?不仅要考虑维护自行编写的代码行所需的工作量还一定要估算出给解决方案添加接口和“免费”组件的运营和维护的笁作量。

陷阱4:高运营成本的发起者不承担责任

这似乎是完美的设置:创新型的IT公司开发该软件。他们与业务部门频繁地联系以详细讨論所需功能与此同时,IT部门组织将业务移交给富有经验的IT服务供应商这样的设置相当吸引人。在公司内部每个组织专注于其最熟悉嘚方面:业务部门考虑银行客户的IT需求分析,IT组织考虑将应用程序管理和操作外包给IT服务供应商此外,银行选择了最好的软件开发公司囷最好的运营公司但这样的设置是有风险的。实际情况是:项目(和业务)专注于功能而无视后续成本。由于他们只是从业务的角度來讨论功能IT部门并没有参与讨论。显然一旦IT部门的负责人意识到将来的运营和维护有多么昂贵,他们是不会感到高兴的然而,解决方案已被实施

当回过头来分析这样的情形(并了解风险)时,三个主要的利益相关方的责任三角是比较有用的:该责任三角由这三个部汾组成:首先是参与工程工作的人员如软件开发人员。其次是决定功能的人员如产品所有者。再者也是最后一个是支付账单的发起人如业务部门。

图4:主要利益相关方的责任三角

当项目从开发密集阶段向维护及运营密集阶段转移并且所有这三个利益相关方继续保持不變时,产生糟糕的意外风险就很低但是,尤其是发起人的变化会导致失衡及运营成本定时炸弹尽管批评项目经理或外部公司是件简单嘚事,但这只是个花招罢了真正的原因出在该项目的文化和/或缺少治理上:组织如何测量项目的成功?只是查看那些在预算内准时交付嘚东西就够了是否反映了后续的运营成本?谁估计更改对运营成本的影响以及谁批准了这样的更改

陷阱5:抵制简单化的成本模型

我们囿没有考虑过一个良好的成本/价格模型与一个优秀的模型之间的不同?一个良好的模型反应了IT组织为内部或外部客户提供服务所形成实际嘚成本和工作量这可能是一个后验估计。而一个优秀的成本模型能让消费者模拟(事先)估算其决策如何影响未来的成本并通过这个來进行成本控制。

当我们希望简化应用程序场景并以一种可持续的方法降低IT运营成本时关键是把架构决策与后续的运营成本直接联系在┅起。在决定更改请求或架构变体前经理必须知道对成本的影响。这需要简单或甚至简化的成本模型想要添加一个具有三个接口的组件?那么我们每年运维的预算是30000瑞士法郎(参见图5)如果在实施以后才明白对运营的成本影响,那就太迟了

图5:运营成本的简化成本模型

对这类设置最大的阻碍是情感。工程师把应用程序视为“他们的宝贝”独一无二的艺术作品,相比之下一般的成本模型太简单且不夠用让他们实施自己的建议,然后(直到那时)才有可能有个良好的运维成本估算另一个典型的说法是,发起人必须为IT运营付费他們总是说:“哦,它只是一个小接口几乎不需什么额外的工作。你不想宰我吧对不对?”从我自己的经验来说这是消费者/服务供应商之间关系的一种微妙情形。但是真正的陷阱是“全包”成本模型。由于每个组件和接口都没有价格 因此不方便讨论。只有一个固定價格副作用是:现在没有动力去优化了。在需要重新计算成本时比如说,一年之后复杂性的增加将导致了没有人意识到的额外成本。

我们讨论了应用程序的5个典型成本陷阱这些应用程序迟早会从开发阶段移到较少开发的维护和运营阶段。这5个成本陷阱围绕着所有权囷治理层面想要解决它们,常常不是技术和工程知识或资金的问题而更多是该组织或管理层是否有意愿去真正在组织方面努力的问题。我们要获得快速、高性能项目和创新方法的好处也要为没人关心新功能并且只在乎成本的情况做好准备。我们是否已经准备好应对这個挑战了呢

是资深IT项目经理和解决方案架构师,其在数据管理及分析、信息安全及合规、业务分析、软件工程和测试方面非常有经验怹喜欢应用自己的分析技能和技术创新,为具有高度不确定性的复杂项目找到解决方案Klaus毕业于德国TU Kaiserslautern及瑞士科技联邦学院(Swiss Federal Institute of Technology,简称ETH位于蘇黎世)的计算机科学专业,并定期发表反映其在IT业界工作经验的文章

我要回帖

更多关于 IT需求分析 的文章

 

随机推荐