This document discusses cloud computing and its key concepts. It defines cloud computing as both the software applications delivered over the internet and the hardware/software in data centers that provide those services. Cloud computing allows developers to avoid over-provisioning and under-provisioning of resources. Public clouds are available to the general public, while private clouds are for internal data centers not available publicly. Cloud computing provides computing resources on demand in a pay-as-you-go model.