Cloud computing provides services as a type of Internet-based computing using data centers that contain servers, storage and networks. For this reason, the cloud computing its great potentials in low cost and on-demand services. In recent years, the end user is highly increased to utilize the services in cloud computing. However, the faulty of infrastructure, software and application are the major problem in cloud computing. Fault tolerance uses techniques that concerned to guarantee availability, reliability of critical services and application execution. This paper discusses the existing fault tolerance techniques and challenges to minimize failure impact on the system and application execution in cloud computing.