The cloud infrastructure itself has its own set of challenges. Failures are inevitable. Network, storage, or computing resources can and will fail. Cloud applications need to be self-healing and able to recover from failures when they happen. To achieve this, applications must detect failures and respond to them, as well as log and monitor failures, to give operational insight.
Cloud resources cost money. An essential benefit of the cloud is flexible scaling. Applications must scale out to respond to an increased load, and scale in when the load decreases to reduce the hosting cost. Besides computing, storage, and networking resources, cloud platforms also provide an impressive list of managed services such as databases, messaging platforms, and container platforms.