Software Performance Engineering In Complex Distributed Systems