[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SAGE] number of eggs in a basket



Xev Gittler wrote:
> David Parter wrote:
> 
>> We believe very strongly in only one service per server.
> That works on a small scale. However, it can be extraordinarily wasteful 
> in the large scale. Given the size of even the smallest machines, a 
> single service can use a minuscule amount of the CPU. While this won't 
> make much of a difference on one machine, 1000 machines each running at 
> a trivial utilization level, is an expensive waste of resources, 
> regardless of how cheap each piece of hardware is.

In what sort of crazy environment would you need to implement 1000 
different services? Even if you're assuming maximum redundancy and 
throwing 2 servers at each service (which, if their load is 'trivial' 
isn't needed for load balancing) that's still 500 different services!

Normally I see more on the order of 12-20 different services, and I'm 
having a hard time trying to come up with a plausible scenario that 
would use more than 30 truly distinct services.

Even in large enterprises, it's primarily the number of clients that 
scales up, not the number of services being provided, so I don't see 
this as being a valid argument.

> Clearly, you need to balance service requirements vs. criticality vs. 
> stability, etc, but managing services, and running multiple ones on a 
> machine, perhaps migrating them as necessary is a more effective use of 
> resources. I don't want to suggest that you should do this on huge, 
> expensive machines, but there is a sweet spot for this hardware, and it 
> is more capacity than most services require.

I absoultely agree that you need to balance your particular needs when 
setting out the number of baskets, and doubling up on 'lightweight' 
services is of course a more efficient use of your hardware, if that is 
important to your situation. However, having the services separate is 
generally a much for efficient use of -you- (and your time), as others 
have already explained.

In all my places of employment so far, when I came in there were one or 
two servers that were running every service all together.  Over time I 
slowly acquire additional (often smaller) server hardware and separate 
out the services onto dedicated hardware and, as I have done so, 
debugging and maintainance has -always- gotten easier.  As an added 
bonus, doing this properly helps to harden your network against attacks, 
as each box has fewer possible points of entry, and an exploit in a 
particular service will only effect that service.