Cloud Computing is the practice of using a network of remote servers (or services), either via the internet or through a privately established WAN connection in order to satisfy one or more computing need. Cloud providers offer a large (and ever growing) array of services to meet a variety of generalist and specialist needs, such as compute, network and storage through to artificial intelligence, big data, analytics and more. Cloud providers create the illusion of “infinite scale”, by constantly adding capacity to meet customer demand. They remove the need to concern yourself with the maintenance or purchase of the hardware or platform as well as the physical security (and some of the logical security) of the services you leverage.
The major cloud providers
The three major cloud providers are Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure.
There are a lot of similarities between the three, and each provide core offerings of scalable compute, storage and network infrastructure. Their main differentiators are in their service offerings and appeal. AWS has the biggest market share and is generally considered the most forward thinking with the largest breadth of services. Azure often appeals to Enterprises, particularly where they are already leveraging Microsoft’s software products. GCP can appeal to developers, particularly those who are developing cloud-native applications and may want to leverage Google’s advanced technologies in things like AI.
Cost optimisation and the ability to scale
Regardless of the cloud provider you choose, there’s generally a strong potential for cost savings vs traditional IT that might have required a company to build or contract a data center of fixed compute. Leveraged correctly, cloud computing can ensure you pay for what you need, but doing so requires careful implementation. Lift-and-shift approaches in order to migrate to the cloud can risk costs increasing if there isn’t a longer term plan to re-architecture to take advantage of the cloud’s core features.
The best way to optimise cost is to ensure you leverage the right service/s to meet your needs. It’s generally going to be cheaper to use a specific service over running your application on a Virtual Machine (VM). You also want to ensure you leverage the ability of your cloud providers resources to scale (ideally automatically) to meet demand. Previously a company would have to purchase a large amount of compute to meet their highest expected peak of demand, even if that only happened for a few weeks a year (such as during holiday sales). With cloud computing your resources can be scaled up to meet this demand when it occurs and scaled back down afterwards to reduce cost, and this scaling can occur automatically. Cloud providers also allow you to make reservations when you know you’re going to need a fixed amount of resource for a long period of time (such as over 1, 3 or 5 years) and by doing so you gain access to price discounts. Alternatively if you have a task that doesn’t need to always be completed immediately (or that you’re happy to be interrupted) you can use spot pricing to only leverage compute when its price has hit a level you’re happy to accept.
Easily experiment and respond quickly to a changing market
One of the greatest benefits of using the cloud is the ability to experiment more easily. Businesses are having to compete harder than ever for customers and the best way to stay ahead of the competition is by being able to respond quickly to changes in your market. By using the cloud there’s no longer any lead time in accessing new IT resources that you might need in order to try something new. By leveraging automation as part of your cloud deployments you can add or change features of your product quickly and easily, and then use metrics exposed by those services to determine whether the changes are having a positive impact on your business.
Build applications with high availability and resiliency
By making good design decisions, you can build applications in the cloud that are highly available and fault tolerant. When building an application for the cloud you can use various design patterns such as (for example) circuit breakers to ensure part of the system isn’t overwhelmed when a failure occurs, queues to level load between different parts of the system, caching to reduce latency and serve customers more quickly and centralised configuration to ease management and control. Cloud providers have dedicated services to enable easy implementation of these kind of design patterns while removing the traditional overhead of installing, managing or having to scale the underlying platforms of the services you need.
We hope you’ve found this brief introduction to Cloud Computing useful. MPFE have experience developing infrastructure solutions and automation in both AWS and Azure. If you are considering a cloud migration or deployment, or if you have resources in the cloud that you need assistance managing or improving we would love to help. Please get in touch.