Autonomic approach for fault tolerance using scaling, replication and monitoring of servers in cloud computing