You Have to Understand Hardware,Too

?

You Have to Understand Hardware,Too

Kamal Wickramanayake

FoR MAny SoFTWARE ARCHiTECTS, hardware capacity planning is a topic that lies beyond their comfort zone, yet it remains an important part of the architect’s job. There are a number of reasons why software architects often fail to properly consider hardware, but they mostly have to do with a lack of understanding and unclear requirements.

The primary reason we neglect hardware considerations is that we are focused on software and tend to ignore hardware demands. In addition, we are naturally isolated from hardware by high-level languages and software frameworks.

Unclear requirements are also a factor, as they may change or may be poorly understood. As the architecture evolves, hardware considerations will also change. In addition, our clients may not understand or be able to predict the size of their own user base or system usage dynamics. Finally, hardware is constantly evolving. What we knew about hardware in the past does not apply today.

Without hardware expertise, predicting hardware configurations for systems to be developed is highly error prone. To compensate, some software architects use large safety factors. Such safety factors are generally not based on objective assessments or founded in any methodology. In most of the cases, this leads to excessive infrastructure capacities that will not be utilized even in periods of peak demand. As a result, clients’ money is wasted on more hardware than a system will ever need.

The best defense against poor hardware planning is to work closely with an infrastructure architect. Infrastructure architects, unlike software architects,

?

??are specialists in hardware capacity planning, and they should be a part of your team. However, not every software architect has the luxury of working with an infrastructure architect. In such cases there are some things a software architect can do to mitigate errors when planning for hardware.

Drawing on your own past experience can help. You’ve implemented systems in the past, so you have some knowledge of hardware capacity planning—even if it was an afterthought at the time. You can also discuss the topic with your client and convince them to set aside funds for hardware capacity planning. Budgeting for capacity planning can be much more cost effective than buy- ing more hardware than you need. In this case, horizontal scalability is the key—adding hardware as needed rather than overbuying in the beginning. To make a horizontal strategy work, software architects need to constantly measure capacity and isolate software components to execute in performance- predictable environments.

Hardware capacity planning is as important as software architecture, and it needs to be given a first-order priority whether you have an infrastructure architect on hand or not. Just as an architect is responsible for establishing the links between business demands and a software solution, she is responsible for envisioning the links between hardware and software.

Kamal Wickramanayake is an IT and software architect who lives in Sri Lanka. He is TOGAF-certified by The Open Group.

Collective Wisdom from the Experts 137

时间: 2024-09-28 16:52:57

You Have to Understand Hardware,Too的相关文章

PostgreSQL Hardware Performance Tuning

Bruce Momjian POSTGRESQL is an object-relational database developed on the Internet by a group of developers spread across the globe. It is an open-source alternative to commercial databases like Oracle and Informix. POSTGRESQL was originally develop

A Full Hardware Guide to Deep Learning

A Full Hardware Guide to Deep Learning Deep Learning is very computationally intensive, so you will need a fast CPU with many cores, right? Or is it maybe wasteful to buy a fast CPU? One of the worst things you can do when building a deep learning sy

Methods and Systems for Enhancing Hardware Transactions Using Hardware Transactions in Software Slow-Path

Hybrid transaction memory systems and accompanying methods. A transaction to be executed is received, and an initial attempt is made to execute the transaction in a hardware path. Upon a failure to successfully execute the transaction in the hardware

【2014-11-22】《The Hardware/Software Interface》– Section 3

The time required to execute a program depends on: The program The compiler The instruction set architecture(ISA) The hardware implementation The ISA defines: The system's state(e.g. registers, memory, program counter) The instrutions the CPU can exe

PatentTips - Hardware virtualization such as separation kernel hypervisors

BACKGROUND 1. Field Innovations herein pertain to computer virtualization, computer security and/or data isolation, and/or the use of a separation kernel hypervisor (and/or hypervisor), such as to detect and/or prevent malicious code and which may in

Teaching Machines to Understand Us 让机器理解我们 之二 深度学习的历史

Deep history 深度学习的历史 The roots of deep learning reach back further than LeCun's time at Bell Labs. He and a few others who pioneered the technique were actually resuscitating a long-dead idea in artificial intelligence. 深度学习的研究之根是在LeCun在Bell实验室研究之前的.

understand的安装

1.win7 64位下安装 1)下载Understand.4.0.908.x64.rar. 2)解压之,直接运行里面的Understand-4.0.908-Windows-64bit.exe. 3)选择如下 之后,点击"Add Eval or SDL (RegCode)",如下图: 4)出现如下界面 进入破解程序生成code,如下 将生成的code填入即可,可以不用填写email.ok! 2.Linux下安装understand 为了能方便的看代码,想安装 Scientific Too

Understand the Qt containers(有对应表)

Container classes are one of the cornerstones of object-oriented programming, invaluable tools that free us from having to permanently think about memory management. Qt comes with its own set of container classes, closely modeled after those in the S

Error: Selected device is not a touchscreen I understand

selected device is not a touchscreen I understand arm交叉编译工具中的头文件库中的linux/input.h中的EV_VERSION定义为 #define EV_VERSION 0x010000 而linux内核include/linux/input.h中的EV_VERSION定义为 #define EV_VERSION 0x010001 由此可见问题就出现在内核的输入子系统的版本号不匹配的问题 解决办法:     1.将内核源代码里的incl