Cloud computing is the delivery of computing resources over the internet. It offers cost savings, scalability, high performance, economies of scale, and more. For many companies, a cloud migration is directly related to data and IT modernization.
When the phrase “the cloud” first began popping up in the early 2000s, it had an esoteric ring. The idea of accessing computing resources from somewhere other than an on-premise IT infrastructure (the sky?) sounded like science fiction. The reality was much more profound and forever changed technology and how we conduct business.
Cloud computing is the delivery of computing resources — including storage, processing power, databases, networking, analytics, artificial intelligence, and software applications — over the internet (the cloud). By outsourcing these resources, companies can access the computational assets they need, when they need them, without needing to purchase and maintain a physical, on-premise IT infrastructure. This provides flexible resources, faster innovation, and economies of scale. For many companies, a cloud migration is directly related to data and IT modernization.
Before cloud computing, organizations purchased and maintained an on-premise IT infrastructure. Though cost-savings drove much of the initial shift to the cloud, many organizations find that public, private, or a hybrid cloud infrastructure offers a host of benefits.
For agile and DevOps teams, cloud computing provides the ability to simplify and accelerate the development process.
The following is a list of characteristics that define cloud computing.
On-demand self service
Cloud computing providers offer APIs that users access to requisition new resources or scale existing resources whenever needed. Teams can automate their infrastructure provisioning in a simple way with infrastructure as code tools from the likes of Terraform and Ansible.
Broad network access
Physical hardware location is a significant concern when delivering the optimal end-user experience. Cloud computing provides a huge boon by offering globally-distributed physical hardware, which allows organizations to strategically provision location-targeted hardware.
Computing resources in a cloud infrastructure platform are dynamically divided and allocated on demand. Since a cloud host’s physical machines are dynamically provisioned and shared between multiple tenants, cloud hardware is thoroughly optimized for maximum usage.
Cloud infrastructures can grow and shrink dynamically, allowing users to request that their computational resources auto-scale with traffic demands. Elasticity can happen on a per-machine basis, where an allocation of resources grows to maximize the available machine resources, or multi-machine basis, in which an application automatically scales to multi-networked machines.
Cloud infrastructure providers give detailed usage metrics that are used to communicate usage costs. For example, Amazon Web Services (AWS) provides usage for each service category in hourly or daily line items. Cloud service providers generally take a utility style pay-as-you-go billing model that is measured and delivered, so customers are charged for the exact amount of computing resources used.