Cloud computing builds upon concepts from cluster and grid computing. Cluster computing links multiple computers to share workloads, while grid computing dynamically aggregates distributed resources for tasks. Cloud computing provides scalable resources and services over the internet. It extends concepts from grid computing by offering virtualized, dynamically provisioned resources on-demand. Key differences are that cloud computing has loose coupling between providers and consumers, supports scaling, and offers services under a pay-per-use business model. Common cloud services are SaaS, PaaS, and IaaS. Challenges include dynamic scalability, security, and standardization. Cloud computing shows promise for further research in areas like security, interoperability and dynamic pricing models.