Self Management for Large-Scale Distributed Systems