本文转载自微信公众号「计算机世界」,作者Bob Lewis 。转载本文请联系计算机世界公众号。
选择一个词来描述企业的技术架构,那就是“非常复杂”。
好吧,这是两个词,但大多数技术架构确实非常复杂。要弄清楚如何简化和改进它们?我们需要再重复几次“非常”,就是非常、非常、非常的复杂。
当事情变得复杂或令人费解时,在制定改进计划之前将事情分解是有帮助的。本篇文章就是讲应该如何做,能帮助你去掉一些“复杂的”事情,这样你就可以制定一个切实可行的策略,以确保你公司的技术架构能最好地为业务提供服务。
拆解技术架构
技术架构可以分解为三个组合及其子组合:
- 应用程序:记录系统、接口和集成以及附件应用程序。
- 数据:结构化和非结构化。
- 技术:设施、基础设施和平台。
但是,要从这里开始制定改进技术架构的有效计划,你需要处理每个投资组合和子投资组合中每个组件的配置,比如,它需要如何改变以及实现其配置上的优先级。
具体细节取决于你正在处理的投资组合和子投资组合。在这里,我们将从下往上进行分解讲述。
设备和基础设施
在改进技术架构的过程中,确定优先级始终是你的首要任务。使用流程、框架和标准对每个组件的运行状况进行评分,再根据依赖该组件的应用程序的数量对其重要性进行评分。将运行状况与重要性评分相乘,就可以计算出每个组件的优先级指数。将结果生成一个可视化的热图,其中组件越红,其优先级越高。
接下来是处置工作。对于设备和基础设施而言,你的处置方式包括:
- 停用:虽然不太可能,但你也许会发现未使用的设备或基础设施。关闭它们,停止使用,并取消所有关于他们的租约或支持合同。
- 更新:你可能会发现设备或基础设施的组件已过时、不受支持或需要更新到产品最新版本。请更新它们。
- 替换:你可能会发现一个过时、不受支持的组件,如果你认为,就算有更新的版本,它也不能运行,那就停止使用它,用一个功能等效但更健康的产品替代它。
- 整合:技术架构通常会具有冗余的设备或基础设施组件。特别是在合并或收购之后,多个数据中心或网络通常会提供整合机会。
你现在就清楚了,对于设备和基础设施,最迫切需要关注的是什么以及如何处理这种情况。
平台
确定平台的优先级和部署方式,与确定设备和基础设施的优先级和部署方式不同,因为平台之间具有更多的相互依赖性,而处理这种复杂情况的一个好方法是定义每个堆栈。堆栈是指至少由一个应用程序所使用的平台的组合,其包括服务器操作系统、开发环境(包括库)、DBMS、CMS(内容管理系统)、Web 服务器和提供支持的浏览器(假设应用程序的 UI 是通过浏览器打开),以及运行各种平台的操作系统。
值得注意的是,堆栈是递归的:也就是指平台可以放在其他平台上。同样值得注意的是,某些应用程序也可以是平台。例如,SharePoint 是一个应用程序,但也可以用作构建自定义应用程序的开发环境。
优先级:堆栈的运行状况是其组件运行状况的平均值,可使用流程、框架和取样标准进行评分。
它的优先级是什么?对此没有绝对正确的"最佳实践"。降低复杂性的一种方法是确定如果对不健康的平台进行修复,是否可以最大程度地改善堆栈。为了说明这一点,假设你在技术架构中定义了 60 个堆栈,并且想象一下,在生产环境中最不健康的平台是 Windows Server 2003 ,再假设它的运行状况分数为 -1.5。
在这个假设示例中,如果将其评分提高到 +2,这会使 14 个堆栈的评分从 -1 升至 0,而使另外 6 个堆栈的评分从 0 升至 +1。这说明通过修复 Windows 2003 Server 可以改进 22 个堆栈。那么Windows 2003 Server 的优先级指数就是 60 个堆栈中有 20 个得到改进,即 0.33。
对每个平台组件重复这一操作,你就拥有了一种对平台优先级进行排序的实用方法。
处置——平台处置类似于为设备和基础设施定义的处置:
停用:虽然不太可能,但你也许会识别出未使用的平台。关闭它们,停止使用,并确保取消它们的许可协议和支持合同。
- 更新:你可能会发现平台不受支持或已过时,将它们升级到最新版本。
- 替换:找到一个过时,不受支持的平台,或者你认为就算把这个平台升级到更新的版本仍不可行,都是很常见的情况。把它扔掉,用功能相同但更健康的替代品取而代之。
- 整合:不使用冗余平台的技术架构是罕见的。在服务器操作系统、数据库管理系统、集成开发环境等之中,选出运行状况评级最高的那些作为公司标准,并将其余部分往这些标准迁移,这样可以提供大量简化和改进的机会。
作者:Bob Lewis ,专栏作家
原文网址:http://www.cio.com/article/3640510/the-secret-art-of-technical-architecture-improvement.html