Tuesday, April 05, 2005
Sizing for Dummies
Sizing Portal applications during Pre-sales activities
More and more customers have been asking for sizing inputs during RFP phase itself. Sizing depends on many factors and hence it is not a trivial exercise to arrive at sizing information at this stage. Some of the inputs that are required for sizing are:
- Page views per second
- Hits per second
- Hit to cache ratio
- Think time of users
- Service time
- Concurrent sessions
- Ratio of static and dynamic pages
- Usage of SSL
- Usage of clusters
The above is only a partial listing. During the pre-sales stage, some customers might be able to give an idea of expected hits per second. However, if one were to ask a customer about number of portlets on a page to arrive at possible caching, most customers will be lost for ideas. Hence it is important to educate the customer that sizing at this stage can only be indicative and a correct figure can only be arrived at after a detailed analysis.
Approaches for Sizing
There are essentially three approaches for arriving at sizing recommendations:
1. Sizing based on some algorithm and formulae
2. Sizing based on Proof-of concept
3. Sizing based on benchmarked applications
The first approach (Sizing based on some algorithm and formulae) is probably more scientific and logical than others. However, portal applications are a completely new breed of applications and are evolving at a rapid pace. Hence there is not enough historical data to arrive at an algorithm to predict accurate sizing. Secondly, any algorithm or formulae will require inputs that will be difficult to obtain during pre-sales stage.
The second approach (Sizing based on Proof-of concept) will possibly give most accurate results. However, it is time and resource consuming and can not be carried out during the pre-sales stage.
The last approach (Sizing based on benchmarked applications) provides an optimal method to arrive at sizing recommendations. It is based on a set of assumptions and is based on a set of benchmarked applications. In this approach, the customer application is compared with a benchmark application using same or similar technologies. The results are extrapolated to arrive at approximate sizing figures.
I have a working example of this approach. Mail me if you need one.
Updated: 20th May, 2005
PJ has posted a nice one on sizing here
Also remember, this is not exact sizing. This is only a baseline to be considered during pre-sales stage.
Dude, the guy from IBM would certainly like to disagree with you on that one !!
Also, even if its pre-sales, these figures are used by the top guys who sign the checks to do budgetary estimates. You cant afford to be off by too much.
Am I missing something here?
Also, in this stage the assumption is that you donot even know how many portlets, haw many database queries etc are there. In such a scenario, I donot think that baseline numbers for BEA would be drastically different from those of IBM.
Have you ever seen an application that uses 2 machines with BEA and 10 with IBM?? Usually the difference is not much
The performance stats for a complete product stack does considerably vary.
Also, what about the hardware stack? The sample application may be benchmarked using HP. What if your stack is Sun or IBM (or even Dell for that matter)?
Add another assumption to your already long list.
Where are we headed ?
BTW, these vendors will give you benchmarks on all kinds of hardware. I have results for the same application on Intel and Solaris from one vendor.
I would go for using empirical data of perf reqts and use standard formulae for TPS, THS and required response time. As pointed by you in your first option,
I feel that is more optimal than the last one. Finally its left to one's own experience and judgement on which method to follow.
I will repeat however that what i've written about is for a scenario when you donot have any of this information or the client does not want to share this information. You can obviously say NO to the client or make assumptions and give him something. If you work in an Indian company (like I do), I am sure you will understand what i mean. Frequently, we have to give "reccos" to clients without knowing anything and that is when this approach has proven useful for me.
<< Home