Fault Tolerance and Resilience in Cloud Computing Environments