• Post Reply Bookmark Topic Watch Topic
  • New Topic

Making quick decisions on capacity planning and performance - how to deal with this?  RSS feed

 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

Lets say you're faced with this situation. You recently presented your client the design document for a web application you will be creating for them. The exchange goes like this:

Client: Ok, the app design looks fine. By the way, we are planning to deploy the application you will build in a new server. Basically, the new server we are looking is this Power Series AIX server with the ff. specs... blah blah blah....
We plan to install just your application in the server and just a new maintenance and security software. Do you think this server with this specs would be able to handle your new application? and its anticipated growth of users in the next 5 years?

You: Well....I think we need to do some POC with load and stress testing to profile its performance characteristics with your normal and extreme production loads.

Client: Can't you make a quick assessment that now? we are about to purchase the server. All we are waiting is your approval. Besides, we don't want to have additional costs and hours for your POC and stress testing, and we want to begin with the app construction as soon as possible as we are already way behind schedule for this project.


What is the best way to answer this question? I am just new into the architect role and I've been in this situation about two times now and I was kinda loss for words on what to say on both ocassions. I mean, do we really need to be familiar with server hardware and how your applications would perform in it?



 
Deepak Rao
Ranch Hand
Posts: 36
Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Andres,

This is a tough one.
If we are dealing with established products or frameworks, we might have certain benchmarks available which can be used to make an indicative guess.
But there is more to that. Especially for a new application, we would need some benchmarks to finalize the total capacity. Atleast some basic tests to identify the applications scalability pattern and its service time.

-Deepak
 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
We best thing to do is consult the server vendor on benchmarks? so we could skip our own POC and stress testing?

whats hard is, you almost have to construct the 'most important' use case of the application in order to do a POC on how much load it consumes. An architectural prototype. That's essentially already creating the "heart" of the application. That takes a lot of additional hours which the client doesn't want. That is why we are exploring the quickest possible way to do this and support for the server that will be purchased.
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Andres Delrotti wrote:
Client: Can't you make a quick assessment that now? we are about to purchase the server. All we are waiting is your approval. Besides, we don't want to have additional costs and hours for your POC and stress testing, and we want to begin with the app construction as soon as possible as we are already way behind schedule for this project.

I would suggest you redirect your client to ask this question to the hardware vendor. They would be the correct people to provide benchmark data.
 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If the hardware vendor provided us with a benchmark data, what particular data do we need to particularly look at in order to see if the server can handle our application and increase of users in our application in the next 5 years?

or should it be the other way around? we will tell the hardware vendor what our application does and they will decide if their server's hardware specs can handle it?
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would say the latter. You should provide your app stats to the hardware vendor and ask them to certify the server can deliver what the customer wants.
 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So there's no way to get around it? it cannot be decided until we create an architectural prototype and load test it in a production like environment? no short cuts?

Is it like a standard thing to do before building a web app?
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The way I look at things you/your company is being asked to vouch for someone else's product. Do you really want to do it?

Client: Can't you make a quick assessment that now? we are about to purchase the server. All we are waiting is your approval. Besides, we don't want to have additional costs and hours for your POC and stress testing, and we want to begin with the app construction as soon as possible as we are already way behind schedule for this project.

Well who is responsible if things go wrong?
 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wait, who should be first anyway? should developers say, we need to know the server hardware first to come up with a design for optimum performance. Or should the hardware vendor say "no we need to know what application will be deployed in the server first, before we recommend a server hardware spec". both development and hardware purchasing takes time so one side's gotta give, to prevent waiting time dependency. The problem is, both sides are clueless.

The server guys could blame developers too if something goes wrong like saying its the app's fault because it was poorly designed.

So you're saying its like an unwritten rule that the server hardware guys should go first? or is there a way for both sides to meet halfway?




 
Jayesh A Lalwani
Rancher
Posts: 2762
32
Eclipse IDE Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Usually, if you have been building a similar kind of systems for a while, it's not difficult to come up with a very rough estimate of the hardware requirements. If you have built 5 web applications that use Oracle as their back end, you can use the hardware configuration of those applications as a baseline. Yes, every application is going to be different but in the beginning, but you have a rough idea whether the new app will be require more data, or more user load, or more CPU, and you can use this to adjust your specs

In fact, a lot of companies will ask this kind of question to see how mature a software vendor is. You are not mature, you are going to say exactly what you said "I need to do a POC". If you are mature, you will say "I built a similar system for XXX client and they are running on AAA kind of load with BBB gigs of data with NNN number of servers. Now, I think you will need more storage/CPU/RAM than them, so maybe you need more/disks/memory/RAM". Heck if your client is mature, they don't need to ask you this question, but they will ask anyways. They probably have an estimate of their own based on other systems that are running. They will ask you for your estimate just to get a measure of how sophisticated you are.

 
Andres Delrotti
Ranch Hand
Posts: 178
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
^^ Point taken.

We could look into that too but what I wanna know is that besides relying on historical data, is there like some kind of "formula" or standards steps to do to asses if a server with a specific hardware specs can handle your application and its growth in say 5 years.

What Maneesh suggested was describe the application to the server vendors and let them decide if their server's hardware can handle it. Could we all agree that that is the best thing to do? but isn't that complicated? I mean if you're gonna do a load test POC, you should do it in a server with the same hardware specs as the server to be purchased by the client. 95% CPU utilization on your test server on a certain load doesn't necessarily equate to the same in another server with another specs. I'm not sure if extrapolation could work in this kind of situation.

 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!