随着数据中心投资转向现代基础架构,如虚拟化、云与DevOps等,也许是时候关注一下相互交叉的横切(Cross-cut)关注点。
在我看来,这是系统IT下一步改进将出现的领域。自系统相互交织、分布式等让人担忧开始,横切就是计算领域的一个长期存在的概念。
横切通常被看作是消极的,为不能清晰分离的事物打上标签,而诸如安全、数据完整性、交易管理与日志都是清晰可见的。对有些人来说,横切是无可避免的。我们不喜欢其杂乱无序、四处分散的本质,但又不知道该如何解决。
不过可以从另一种方法看待这些担忧:它们可以一下子提升多个领域。只要做得正确,横切就成为统一的、多功能的工具,可以减少不同技能与产品的数量,降低我们消耗的精力。在现代数据中心中可以看到横切的机遇,并可以一直获得成功。
横切超越了标准化。如今的数据中心使用系统虚拟化、时间点存储快照与软件版本控制系统。在过去十年,它们从原始理念跳出来,改变了应用与服务开发、交付、部署与管理的方式。这是一件非常有益的事情。
比如我最近的一个项目,使用的是Mercurial分布式版本控制系统。除了其主要的标签作用(保存对应用代码的修订),Mercurial帮助团队部署新生产服务器、克隆开发、测试服务器并复制主要数据库。它辅助内部与外部的备份,并恢复生产数据,还能进行变更管理、性能扩展、可用性故障切换、系统与应用配置管理,以及安全审计。
虽然这些功能有所重叠,仍然能很不错的进行范围较广的操作任务,尤其对于开发工具来说。它还可进行增量备份与数据复制,可作为一款流行的受好评的工具。
寻找横切关注点
在如今互连的IT世界里,从一个领域(比如存储重复数据删除)成为可靠解决方案,在另一个领域(如虚拟机扩散)成为问题,所以这中间就存在着技术机遇。同样,虚拟化、整合、云与共享服务架构模式都打破了IT信息孤岛。IT不同板块之间现在都拥有协作的积极性。
不要去寻找问题,而是采用专门的工具解决问题,目光放得更高更远,采用通用工具解决类似的情形与问题。然后专注在通用工具上,可以学习,还可以投资获得有益结果。
为什么要采用不同的管理工具去管理每个独立的事物?为什么要在计算、存储、网络与其他功能上采用不同的硬件?会增加价值还是仅仅增添复杂度?为什么要用一个应用支持多个不同的、为平台定制的图形用户界面工具集?而且每一个有自己专门平台的开发工具?在丰富的互联网应用领域,一个Web应用不够么?
云供应商正在改变这些状况。他们正在加紧设计新的核心服务,如谷歌的BigTable,横跨很多应用关注点。而Rails与Django上的RubyWeb框架也是如此。现在也该重新整理很多其他IT基础设施与运维问题了。
从不同活动中查找连通需求很关键,其实也不难发现这些需求。比如采用虚拟服务器通常是想节省资金,其实发现子公司使用虚拟服务器还有更多益处。如果还想挖掘更多优点,那就开放的心态去接受并使用虚拟服务器。如果想得到立竿见影的效果,就去找横切。祝大家寻宝之路愉快!