You Have to Understand Hardware,Too
来源:互联网 发布:新歌2016网络红歌情歌 编辑:程序博客网 时间:2024/06/08 16:40

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
- You Have to Understand Hardware,Too
- if you want to understand today you have to seaarch yesterday
- whether you have to try
- Too often.things you want have the most is the one thing you can't have
- Do I Have To Cry For You
- “you do not have permissions to run”
- You don't have permission to access
- too few arguments to block call expected 3 have 1
- Too many arguments to function call,expected 0,have *
- Too many arguments to function call, expected 0, have 5
- Too many arguments to function call, expected 0, have 3
- Too many arguments to method call, expected 1, have 2?
- 错误:Too many arguments to function call,expected 0,have *
- Too many arguments to function call, expected 0, have 3
- Too many arguments to function call, expected 0, have 3
- too many arguments to funcation call,expected 0,have 3
- The major.minor version '49.0' is too recent for this tool to understand.
- checkbox_checkedChanged not work you have to add autopostback to true
- 二叉搜索树与双向链表
- TCP连接的状态详解以及故障排查
- Annex B Rules for BER-TLV Data Objects
- 报表引擎API开发入门— EJB程序数据源
- ListView包含Button,导致ListView itemclick无效的问题
- You Have to Understand Hardware,Too
- 进程组ID操作
- 网易校园招聘java面试经历
- iOS快速开发必备
- 格式化I/O和文本行I/O异同
- Shortcuts Now Are Paid Back with Interest Later
- 美化上传控件
- Ubuntu Python 环境配置
- Android手势检测 带你打造支持图片缩放、平移预览(下)