您的位置:首页 > 其它

你不能不了解硬件

2015-08-30 10:15 176 查看
作者:卡迈尔·威克拉玛纳亚克(KamalWickramamayake)

对于许多软件架构师,硬件容量规划问题是一个超出其舒适区的主题,但它的确是架构师工作的重要组成部分。软件架构师常常无法正确考虑硬件因素,有多种原因,但大多和缺乏对硬件的了解及需求不清楚脱不了干系。

之所以忽视对硬件的考虑,其首要原因是,架构师把全部精力都花在软件上,所以往往就忽略了硬件上的要求了。除此之外,由于使用高级语言和软件框架,软件架构师和硬件就离得更远了。

需求不清晰也是一个因素,因为需求可能会发生变化,也可能没有被充分透彻地理解。随着架构的演进,对硬件的考虑因素也将随之改变。此外,客户可能也不了解或无法预测用户群规模的使用动态。而且,硬件本身也在不断发展,以前掌握的硬件知识并不适用于今天。

如果没有硬件方面的专业知识。预估待开发系统的硬件配置是非常容易出错的。为了弥补这方面的不足,有些软件架构师会使用较大的安全系数。这种安全系数一般不是基于客观评估,也无法从什么方法学中找到理论依据。在大多数情况下,这将造成基础设施的容量规划过度,即使在请求高峰期都无法充分利用基础设施的能力。最终,客户的钞票被浪费在超出系统实际所需的硬件上了。

对缺乏硬件规划能力最好的防御措施,是和基础设施架构师(infrastructure architect)紧密合作。不同于软件架构师,基础设施架构师是硬件容量规划方面的专家,而且他们也应该是团队的一部分。然而,并不是每一个软件架构师都可以奢侈地配备一名基础设施架构师和他一起工作。这种情况下要进行硬件规划时,软件架构师可以采取一些措施来减少错误的发生。

可以借助自己过去的经验。你己经实现过一些系统,所以肯定己经拥有一些硬件容量规划的知识,哪怕当时是事后才考虑的也没有关系。还可以和客户就这个主题进行讨论,说服他们为硬件容量规划预留资金。比起采购超出实际所需的硬件,为容量规划留出预算是更为经济的。此种情况下,水平伸缩能力(horizontal scalability)是关键,你可以在需要时才添加硬件,而无需一开始就过量采购。为使水平伸缩策略起效,软件架构师需要不断评测系统容量,隔离软件组件,使它们在性能可预知的(performance-predictable)环境下运行。

硬件容量规划是和软件架构同等重要的事情,不管身边是否有基础设施架构师,都在将之安排在第一优先级。架构师既要负责连接业务需求和软件解决方案,也要负责连接硬件和软件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: