Sometimes it seems like cloud computing is everywhere but, at the same time, it’s also somehow difficult to say exactly what it is and what it does.Indeed, it’s quite comforting to describe something as vague and floaty as “the cloud” in terms of what you can actually see and touch.
The website of Microsoft Azure, for example, explains cloud computing as “the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet”. This simple definition is useful in many ways, as it sticks with the familiar components of a traditional IT system.
However, this outlook also risks us being blind to some of the things that make cloud computing a genuinely new thing, and it helps if we look at what you do with it rather than what it’s made of. As Amazon describe on their AWS website, “Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing. Instead of buying, owning, and maintaining physical data centres and servers, you can access technology services... on an as-needed basis from a cloud provider like Amazon Web Services.”
It’s exactly this sense of flexibility and responsiveness that better defines what cloud computing is all about — and how it can help businesses achieve their goals.
A Brief history of the cloud.
Amazon Web Services (AWS) was the first of the major cloud providers and was started in 2002 to provide storage and computation over the internet. This was followed in 2006 by the launch of their Elastic Compute Cloud (EC2) commercial service, a product that helped introduce the idea of computation that would expand and contract in relation to demand.
It wasn’t long before competitors started to arrive, and 2009 saw the birth of Cloud Computing Enterprise Application from Google, Azure from Microsoft and offerings from a raft of other companies such as Alibaba, IBM, Oracle and HP. At the same time, some would argue that these were all long preceded by Salesforce in 1999, which was the first piece of software that you would buy by subscription as a service, rather than purchase physically in a one-off transaction.
Who are the cloud providers?
Amazon Web Services (AWS) - As mentioned above, AWS first appeared in the mid-2000s after Amazon had gained some experience in website development but experienced difficulties with various aspects of the process. Their frustration with the with the speed of their software engineering led them to implement various recommendations. These included, as Tom Killalea explains in “Velocity in Software Engineering" (2021),“the maximization of autonomy for engineering teams. and increasing the percentage of the time engineers spent building the software rather than doing other tasks.” This streamlining and functionalist approach helped define the nature of all their cloud service offerings and strongly influenced the evolving competition.
Google Cloud Platform (GCP) - In a comparable way, Google entered the arena in 2008 with a suite of cloud computing services that run on the same infrastructure that Google uses internally for its end-user products, such as the ubiquitous search engine and Gmail services. GCP now provides infrastructure as a service (IaaS), platform as a service (PaaS), and serverless computing environments.
Microsoft Azure - In contrast, the service originally known as Windows Azure was released in 2008 more as a direct strategic response to AWS, from the fear that they might already be losing ground (and market share) to Amazon rather than as a development of internal solutions. Microsoft Azure has now risen to be the second biggest IaaS and PaaS service in the world after AWS.
What do they provide?
As the largest cloud provider, Amazon deliver the widest range of services and we can get a better idea of cloud computing as a whole by looking at their offerings in the four main categories:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Infrastructure as a Service (IaaS)
IaaS is a model that gives customers access to virtualized units of a provider’s physical resources. IaaS customers manage their infrastructure much the way they would local, physical servers. Typically, it includes servers and virtual machines (VMs), storage, networks, and operating systems from a cloud provider on a pay-as-you-go basis. AWS IaaS products include Elastic Cloud Compute (EC2) for virtual machine instances, Elastic Block Store (EBS) for storage volumes, and Elastic Load Balancing.
Platform as a Service (PaaS)
Platform as a Service (PaaS) is an on-demand environment for developing, testing, delivering, and managing software applications. PaaS products simplify the process of building an application by hiding the complexity of the infrastructure that runs it. You’re given an interface through which you define the behaviour and environment you want for your application.This will often include the code that will run your application. AWS PaaS products include Elastic Beanstalk and Elastic Container Service (ECS).
Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers. There are still servers in serverless, but they are abstracted away from app development. A cloud provider handles the routine work of provisioning, maintaining, and scaling the server infrastructure.
Example architecture diagram of a serverless image handler using AWS Cloud services
Software as a Service (SaaS)
Software as a Service (SaaS) products offer services meant to be accessed by end users. An easily recognizable illustration is Google’s Gmail service, which allows users to manage their email by logging in to a browser interface or through an email client (like Microsoft Outlook) that’s running locally. AWS SaaS products arguably include Simple Email Service and Amazon WorkSpaces.
What are the advantages?
So far, we’ve concentrated on what cloud is and where it came from, but how can cloud computing help deliver your business goals? For a new technology to be worthwhile, rather than just being the latest “technical upgrade”, it needs to help you get to where you want to be as a company. Cloud computing has distinct and original advantages in several ways. Amazon identify 6 key benefits of cloud computing:
- Trade fixed expense for variable expense
- Benefit from massive economies of scale
- Stop guessing capacity
- Increase speed and agility
- Stop spending money running and maintaining data centers
- Go global in minutes
We can probably also add another couple of additional benefits to this list:
- Enhanced Compliance
- Enhanced security and reliability
- Enhanced environmental sustainability
What are the disadvantages?
No technology (especially a novel technology) is without its weak points, and the cloud is no exception:
- Server downtime & connectivity issues. No provider can guarantee that there won’t be downtime, and an unreliable internet connection might result in your staff sitting idle.
- Security and Privacy. The risk of hacking is also never completely absent, and the big providers are sometimes a target for attacks.
- Learning curve. Cloud computing is new and complex, and can take time to adapt to in organisational as well as technical ways.
- Talent availability. Suitable engineers with the relevant experience can be hard to find.
- Cost dangers. An unexpected surge in demand or a flaw in the coding could potentially cause an unexpectedly high bill under the pay-as-you-go model.
- Vendor lock-in. Committing to a particular vendor could mean being stuck with their solution and tariffs, but perhaps no more than with any other proprietary technology.
General Bits of Advice for the Cloud Traveller
Whilst the above disadvantages might be points to consider before you make a leap, all of them can be minimised or removed altogether by remembering the following general points:
- Be prepared to rethink your applications. Whilst there are obvious attractions to doing a simple and direct transfer of your existing applications to the cloud environment, there are many advantages to be gained (and problems to be avoided) if you can spend some time considering how they might be re-imagined and re-organised to suit the cloud.
- Good architecture and engineering always help. Good engineering, and good architecture, are central features of a painless transition. If you have a clear idea of what each bit does and why, you should be able to identify how it can be implemented effectively in a different environment and, indeed, which bits can stay exactly as they are.
- It’s not a dichotomy, it’s a transition. It’s not necessarily the case that everything needs to change right at the beginning. You could easily choose the tiniest and most convenient example to see if it works for you, and take it from there. Many small-scale use-cases are covered by the free tier of a service like AWS, so you won’t always have to fork out whilst you get your bearings.
By now, we hope you have a better idea of what cloud computing is. And one final point: if it all seems like a lot to take on board, we can help you with this transition! Yeah, of course we would say that but, seriously, our expertise and experience mean that we can help you to make confident and well-informed decisions.
As a certified AWS and Microsoft partner, the cloud is definitely our thing and we’re in great position to assess your business and explain how exactly your journey should start. Don’t hesitate to contact us and make sure that your business gets the maximum benefit from the cloud.