Re: How to recommend hardware to customers?
by tilly (Archbishop) on Oct 23, 2004 at 01:45 UTC
|
How are you to decide a strategy without knowing what your realistic choices are? Here are a few.
Strategy A:
Figure out how much you'll charge them. Figure hardware as a fixed percentage of that. Decide what the best configuration is that you can buy for that much money. Find a vendor that will give you a kickback for driving business to them.
Recommend that configuration from that vendor.
Above all, do not admit that your application runs just fine on a 2 GHz PC running Linux. If your customer knows that, then they might decide that there can't be much to the application and they'll want to be charged less.
Profit.
Strategy B:
Take the configuration from strategy A. Gold plate it. Recommend that.
Offer as an alternative for a low low hosting fee of X$/month to provide them with a working system that you'll administer and keep in tiptop shape, plus deliver upgrade fees for. Make sure that this fee would cover the goldplated system and then some.
Deliver the cheapest system that you think will actually meet their needs, and replace it periodically. Make sure that one of these "upgrades under your service plan" takes place within the 6 month period leading up to renegotiating your software contract. (You want the benefit of the warm fuzzies.
Profit.
Strategy C:
Be honest.
Go broke. | [reply] |
|
|
I agree - a good response to the original question is to recommend the biggest, fastest computer(s) available on the market today. Realistically, though, this is not feasable, so the question becomes a business one, as in "What hardware do we think the customer will buy?" From a development role, the important thing is to make sure that the software runs acceptable on the system that is recommended (with mod_perl that probably means a lot of RAM). Also it is useful to recommend a configuration that will be easy to support.
Given all of this, it is probably best to take this question from a business/sales standpoint and ask the question "what is the best way to make money off this recommendation?" Spending a lot of time benchmarking can eat into profits without providing a tangible value for the customer, so in general it may be best to test as few configurations as possible.
Also, a good solution might include suggesting lots of horizontal scalability - instead of a single server, why not recommend a horizonatally scalable solution using a load balancer and a couple of less powerful computers rather than one large server? This way, if additional hardware is required to meet performance expectations, additional (less expensive) servers can be added to the configuration. This configuration may also be easier to maintain, as individual servers can be swapped out, upgraded, etc without causing a system outage.
techy
When art critics get together they talk about Form and Structure and Meaning. When artists get together they talk about where you can buy cheap turpentine. -- Pablo Picasso
| [reply] |
|
|
Thanks all.
The horizontal scalability sounds interesting. Do you know where can I find more info about makin my application horizontally scalable, or is it more of a configuration of Apache/MySQL type of issue?
| [reply] |
|
|
Re: How to recommend hardware to customers?
by NetWallah (Canon) on Oct 23, 2004 at 01:36 UTC
|
I don't think hardware recommendations should be tied that closely to the application.
With today's inexpensive computers, the decision should be based on business requirements, and what they can afford. The considerations should be more in the lines of - do you need RAID? Is this app or number of users likely to grow ? Does the customer want a brand name ? How will the hardware be supported ?
Software companies typically specify only a "minimal" config that the app will run on. This "minimal" should be based on currently available hardware - it makes no sense to ask a customer to get anything less than a 1 GHZ PC, or less than 512M RAM or less than 40G disk. If your app runs on that, fine - set that as the minimum - if not, bump up the appropriate numbers.
Earth first! (We'll rob the other planets later)
| [reply] |
|
|
I agree. All you can say to a customer is:
You need at least n MB of RAM.
As for all other components: the best you can do is give a scale-factor for it. That is: A CPU twice as fast will make the access time 1.3 times as short, or something like that.
| [reply] |
Re: How to recommend hardware to customers?
by BUU (Prior) on Oct 22, 2004 at 23:13 UTC
|
First off, let me just say that I've never actually done anything resembling this in the "real world". So take my advice with a grain of salt =]. (Or two.. or three)
If I were in your shoes however, I'd simply test a couple of different hardware configurations. Find the main, generic, thing that your application does, and devise some way to benchmark it. In this particular case it's some sort of webapp, so your "main, generic, thing" is responding to user queries. So something like ab (apache benchmark tool) will probably be very suitable for testing your application.
Next step is to find some hard ware. You probably want several different "levels" of hardware. For example, you might test on a 286 with 32 megs of ram, a 1ghz with 256 megs of ram, a 3ghz with a gig of ram and then something like a quad 3ghz machine with a shit load of ram. Now compile statistics for how fast your app performs on each platform and compare these statistics to what your customer expects.
Perhaps you find that your app can handle 30 hits a second on the 1ghz machine, but the customer wants to handle 40, so you suggest a 1.5ghz machine. Or something along those lines. I've probably over simplified the problem, but this might be a decent approach.
As for which brands, well, unless you want to do some *major* testing, all you can really recommend is what you, and your company, has discovered through actual experience. You might want to combine your experience with "reputable" magazines, for example "we use Foobar's hardware here, and it's very reliable, x,y and z also recomend Bazfoo's hardware, but we've never tried it". | [reply] [d/l] |
|
|
| [reply] |
Re: How to recommend hardware to customers?
by Juerd (Abbot) on Oct 22, 2004 at 21:21 UTC
|
"You need this hardware for the right performance."
Of course, if it is the case, be honest: "But that's just because we haven't bothered to improve things on the software side." ;)
| [reply] |