Cloud computing involves delivering computing services like servers, databases, storage, software, analytics, and more over the Internet. Companies providing these cloud computing services are called cloud providers and charge users like how utilities charge for water and power. The key aspects of cloud computing are allocating computing resources across many distributed computers rather than local or remote servers, allowing users to access computing power and storage based on needs. A microservices architecture designs applications as a set of loosely coupled services that implement business functions, enabling continuous deployment, independent development and scaling of services, and continuous refactoring of each service's architecture.