what is cloud computing?

Cloud computing is a metaphor to describe the way shared services are accessed over the internet.

From the user perspective, the specifics of each component of a service are not visible as if obscured by a cloud.

cloud computing metaphor cloud computing metaphor

 

The term however has origins in the 1960s where the server you performed work on would be remote from your terminal and you shared the resources and time with other users. The first multi user systems.

A leap to the 1990s, when computer owners were used to storing their information on their own computer, starting on floppy disks and then later hard drives.

By the time we get to 2000s, the internet has become the network to link all the things, which gives global choices to share central resources again. Amazon launched EC2 (Elastic Compute Cloud) in 2006 which allowed access to powerful hardware to anyone with a credit card.

Gartner defines cloud computing as a style of computing in which scalable and elastic IT-enabled capabilities are delivered as a service using Internet technologies.

Wikipedia breaks this down into the following capabilities:

  • Agile - provide user flexibility with re-provisioning, adding or expanding infrastructure resources
  • Cost - public cloud model converts capital expenditure (on off and up front) to operational expenditure. This lowers barrier to entry as well as allowing an on-demand billing model.
  • Device and location independence - As the infrastructure is off-site and access via the Internet, users can connect to it from anywhere.
  • Maintenance - Cloud computing applications are centrally maintained.
  • Multitenancy - Enables sharing of resources among multiple clients, further sharing costs.
  • Performance - monitoring by IT experts and using the model of loosely coupled architecture can improve workload balance and performance to the user.
  • Reliability - Multiple redundant sites give the choice without the cost, suitable for business continuity and disaster recovery.
  • Scalability and elasticity - on demand workloads without needing to order parts and waiting for engineers to fit them.
  • Security - can improve due to centralisation of data, but concerns can persist about loss of control over sensitive data. Private clouds can overcome this.

In the cloud computing space, 5 service models have appeared.

  • Infrastructure as a Service (IaaS) - providing virtual machines and the infrastructure required such as disk-image libraries, block storage, firewalls, load balancers and networks.
  • Platform as a Service (PaaS) - These provide further abstraction from the servers themselves and often allow deployment of specific applications, allowing you to focus on application delivery without the maintenance of servers and other infrastructure.
  • Software as a Service (SaaS) - Top level of abstraction where as a user you gain access to an application. SaaS is sometime referred to as "on-demand software" and is usually priced on a pay-per-use basis.
  • Mobile "backend" as a service (MBaaS) - Specific services and platforms useful for mobile application developers. Provides application programming interfaces (APIs) where services include user management, push notifications and integration with social network services.
  • Serverless computing or Function as a Service - an execution only model for code. This despite the name, does have servers, however the provider looks after the maintenance, starting and stopping to enable requests to be served. Billing is usually based on number and time for each request.

Many enterprise organisations are adopting public cloud services, however due to migration and/or security are running a 'hybrid' cloud, where some of the services are hosting publicly and some are hosted On premise, Internal or even Private Cloud.

What is right for your business depends very much on where you are and what you want to achieve. Should you want to discuss further, please contact us or join us on Slack