What is Cloud Computing?
In the past couple of years, the popularity of cloud computing in business has grown and continues to grow. Hence it has become a term that we hear and perhaps also use increasingly more frequently but may not quite understand.
The fact that there is no general definition for Cloud Computing and that it is a complex term that comprises several different systems and services can make it a bit confusing.
But don’t worry, we’re here to help! In the next section you’ll find a simple definition and example that will help you understand what cloud computing is about.
Definition & Characteristics
The definition used by the ENISA (European Network and Information Security Agency) and by most experts is the definition of the US-American NIST (National Institute of Standards and Technology):
“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computer resources (e.g. networks, servers, storage systems, applications and services) that can be provisioned rapidly and released with minimum management effort or service provider interaction.”
According to the NIST, a cloud service is characterised by the following five characteristics:
- On-Demand Self-Service: A consumer can unilaterally provision computing capabilities, such as server time and network storage
- Broad Network Access: Capabilities are available with standard mechanisms over the network through multiple clients and devices.
- Resource Pooling: The provider’s computing resources are pooled to serve numerous consumers using a multi-tenant model. The users do not know where the resources are, but can agree to the storage location, such as region, country or computer centre by contract.
- Rapid Elasticity: Users can add or reduce capacity through software. The services can be provided rapidly and elastically.
- Measured Services: Automatic control and optimization of resources detailing who is using what and how much.
In addition to that, according to the Cloud Security Alliance (CSA), cloud computing has also the following characteristics:
- Service-oriented architecture (SOA): The cloud services are usually offered via a so-called REST-API.
- Multi-client capacity: Many users share the jointly used resources.
Types of Services
Infrastructure as a service (IaaS)
IaaS offers essential services such as computing power, data storage, and networking resources on demand, on a pay-as-you-go basis. Which means that these resources are each offered as a separate service component, and you only have to pay for a particular resource for as long as you need it.
Here, the cloud computing service provider manages the infrastructure, while the client purchases, installs, configures, and manages their own software, which includes operating systems, middleware, and applications.
A cloud customer can purchase these services in order to build their own services for internal or external purposes. For example, a cloud user could rent computing power, memory and data storage devices and run an operating system with applications of their choice on it.
- Reducing maintenance of on-premises data centers
- Lower hardware costs
- Gain real-time business insights
- Flexibility to scale your IT resources up and down
- Increased the reliability of the underlying infrastructure
- Square: online payment processing
- Google Apps: Google Drive, Google Calendar
- Slack: Allows chats and collaboration between users
Platform as a service (PaaS)
PaaS is a platform for creating software that is delivered via the Internet from a cloud service provider on a pay-as-you-go basis. It delivers a framework that enables customers to create applications or run business services on a standardised platform. It provides resources that allow the delivery of simple cloud-based apps as well as more sophisticated, cloud-enabled applications.
In addition to the infrastructure (e.g. servers, storage, and networking) it also includes middleware, development tools, business intelligence (BI) services, database management systems, and more.
With PaaS, the user manages the applications and services they develop, and the cloud provider hosts everything else (e.g. servers, networks, storage, operating system software, middleware, databases) at their data center. It allows developers to run, build, test, deploy, maintain, update, and scale applications.
- Cost is lower than maintaining a platform on premises
- Avoid the expenses of resources such as:
- Buying and managing software licenses
- The underlying application infrastructure and middleware
- Container orchestrators such as Kubernetes
- Development tools
- Google Cloud Engine
- AWS Elastic Beanstalk
- Apache Stratos
Software as a service (SaaS)
SaaS is also known as cloud-based software or cloud applications. It is application software that’s hosted in the cloud and can be accessed over the internet usually via a web browser. It can be purchased on a ‘pay-as-you-go’ basis, but also as a monthly or annual subscription fee.
With SaaS you can have an application with minimal upfront costs, since the service provider manages the hardware and software and stores the underlying infrastructure, the middleware, and app data in their data center.
Today, most of the commercial software uses SaaS as their primary delivery method. You can find hundreds of thousands of SaaS solutions available, there are no limits to the range of offers as they go from simple applications to complex enterprise software databases and AI (artificial intelligence) software.
- Cloud benefits
- Cost saving
- Automatic upgrades
- Protection from data loss
- Google Apps
FaaS: Function as a service
FaaS is often confused with serverless computing when, in fact, it is a way of implementing serverless computing. Faas is a type of cloud computing service, meaning everything besides the code is provisioned by the cloud service provider in real-time. This allows developers to focus only on individual functions in the application code, and execute it without having to maintain their own infrastructure.
FaaS is an event-driven execution model, which means developers execute portions of application code (also known as functions) in response to events and it doesn’t require any server processes to be running constantly in the background. It runs in stateless containers and those functions manage server-side logic and state through the use of services from a FaaS provider.
With Faas you only pay only when an action occurs meaning, billing starts when execution starts and stops when execution stops,
- Saves time and increases developer productivity
- Provider takes care of server management
- Easily scalable
- Cost-effective: pay only for resources you used
- Supports almost every programming language
- IBM Cloud Functions
- Amazon’s AWS Lambda
- Google Cloud Functions
- Microsoft Azure Functions (open source)
- OpenFaaS (open source)
Types of Cloud
Is an IT model where third-party providers such as Amazon Web Services (AWS), Google Cloud Platform or Microsoft Azure, offer infrastructure and services to the general public over the internet.
Some of the cloud-based services include infrastructure as a service (IaaS), platform as a service (PaaS), or software as a service (Saas) and these are billed based on the actual usage of the CPU, memory, storage, or network bandwidth consumed.
The user has the advantage of not having to host these services on site in their own data center, saving maintenance costs.
Private cloud could be managed internally or by a third party, and hosted either in company managed DC or externally in a collocated fashion. It is not a publicly available Cloud platform.
Private clouds usually have more specific security controls than a public cloud and are thought for businesses and organizations that manage sensitive data (e.g. medical offices, banking institutions) and therefore need their data to be more secure and in some cases also meet their regulatory compliance requirements.
One of the main advantages of private cloud is having all the benefits of cloud computing (e.g. elasticity, scalability, ease of service delivery) without having to compromise security. Other advantages include the access control and freedom to customize software and hardware.
Hybrid Cloud combines two or more different types of clouds such as public cloud, private cloud and on-premises infrastructure. This offers the benefits of multiple deployment models and allows a greater elasticity, yet adds complexity.
This model makes it possible to have one unified distributed computing environment that is flexible and allows organizations to optimize the productivity of developers and the cost of the IT-infrastructure..
Combines different clouds of the same type, typically from different providers. For instance, an enterprise running applications on platform-as-a-service (PaaS) or infrastructure-as-a-service (IaaS) from multiple cloud service providers, such as Amazon Web Services (AWS), Google Cloud Platform or Microsoft Azure.
Multicloud solutions are usually built on open-source, cloud-native technologies that are supported by all public cloud providers (e.g. Kubernetes).
This model makes it possible to have one unified distributed computing environment that is flexible and allows organizations to optimize performance, control costs, and leverage the best cloud technologies available.
Are you new to the Cloud and want to learn more about it? Check out our Cloud Basics page now to improve your Cloud knowledge!