You might often come across terms such as "cloud" or "cloud computing". The cloud is a highly relevant topic in modern networking and data storage. What exactly is the cloud?
We can define the cloud as servers that are accessed over the internet and are actively running software and databases. This is the opposite of storing and accessing software from your computer's hard drive. Instead, dedicated cloud servers located in data centers all over the world are used to run such software.
The cloud does not act as a physical entity; it is a complex and vast network of remote-based servers across the globe that are interlinked. This way, you don't have to access a particular computer to run this software or access them; you simply need to have access to any device with internet access, i.e. the information is easily accessible anytime, anywhere, whenever you need it.
Similarly, when you store information in the cloud, your information is stored on these remote servers as opposed to inside your computer's hard drive.
The cloud was generally formed to help link IT providers with IT consumers, i.e., individuals who need computing capacity. In modern times, large businesses can now focus on strategically implementing software to attain company goals without going through the operational hassle of configuring IT infrastructure.
Software being introduced as "on the cloud" can easily be operated without having to install heavy machinery or dedicated infrastructure. This is simply one of the many benefits the cloud offers. Other important benefits include reduced costs, higher speeds, efficiency and productivity, reliability, and scalability.
Read on to learn more about the cloud, cloud computing, and how the cloud works.
Figure 1. Main Service Models of Cloud Computing
How Does Cloud Computing Work?
The concept of the cloud is generally linked to cloud computing. What is cloud computing?
Cloud computing is a method of delivering computer services (servers, storage, databases, software, intelligence, etc.) via the internet or over the cloud.
Companies that offer these services tend to reach out to data centers that provide servers for rent. These companies will then rent access to these servers so they can use them to either run applications, store data, or perform any activity they like. This way, they do not need to invest in dedicated infrastructure for computing.
Such companies can therefore cut down tremendously on costs that would otherwise have gone into buying heavy infrastructure and maintaining it from time to time. Servers that are rented out are usually paid for using the pay-as-you-go pricing model, i.e., they only pay for what they use, whenever they use it.
But what services can be delivered using cloud computing? Naturally, any service that doesn't require you to be physically close to the computer hardware can be delivered through the cloud. This can include basic data backup and disaster recovery, emails, virtual desktops, software development, and testing, big data analytics, and custom web applications.
Cloud computing does not benefit companies alone; it benefits users as well. For instance, you can now get access to a wide range of technologies via the cloud without having to install a dedicated infrastructure. Moreover, for small businesses, cloud computing-based models are much more flexible. You only pay for what you need, and you can easily scale these resources according to your business capacity at any given time.
What are the Main Service Models of Cloud Computing?
Now that you understand the basic concept of cloud and cloud computing, we move on to discuss the various service models of cloud computing. Cloud computing is offered in 4 basic service models, i.e., Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and Function as a Service (FaaS). Each service model describes what cloud-based service is offered and how it works.
1. Software-as-a-Service (SaaS)
Software as a Service (SaaS) is used to provide a centrally hosted and managed software service to its end users. Such users do not need to install dedicated applications on their devices and can instead access such SaaS-based applications from cloud services through the internet, or more specifically, "over the cloud".
You can think of a SaaS service as a house you rent out. While your landlord maintains it, you get to live in it and, in return, pay a certain amount for it. Similarly, such applications are accessed over the web by end-users and companies but are maintained by the software provider themselves.
As a result, businesses that rely on such software do not need to take out dedicated funds to put into software maintenance, infrastructure purchases and maintenance, network security, and any associated operational costs. Most businesses that fully rely on such applications can benefit from SaaS providers. Their only concern will be how to best use the particular software, not how it is to be maintained regularly.
SaaS billing is consequently done according to what your business utilizes, over a period of time. This can be the number of users on the software, the amount of data stored, or the number of transactions processed. They are also available as subscription-based services renewed on a monthly basis.
Some common examples of software delivered via the cloud include Microsoft OneDrive, Dropbox, WordPress, Amazon Kindle, CRM from Salesforce, etc. SaaS is one of the main components of cloud computing and also one of the largest public cloud services market segments, expected to reach $176.6 billion in end-user spending by 2022 (according to Gartner).
2. Platform-as-a-Service (PaaS)
Platform as a Service is another major component of cloud computing. It is a sort of cross between Infrastructure as a Service and Software as a Service. A Platform as a Service (PaaS) is a cloud computing model wherein a third party offers you the complete development and deployment environment needed to deliver cloud-based applications.
This can range from simple cloud-based apps to more sophisticated enterprise-level applications, all made possible through PaaS. Essentially, it acts as a cloud-based environment where you can build certain applications without having to install or work with dedicated IDEs. IDEs, or Integrated Development Environments, are a type of software used for building applications. Such software, however, can be quite expensive and far more complicated to work with.
Comparatively, with PaaS, you can customize the features you need to build your application and only pay for those specific features. As a result, you can significantly reduce costs. Moreover, companies can choose the type of PaaS they hope to work with according to their unique needs.
PaaS generally includes infrastructure such as servers and storage, middleware, development tools, BI (business intelligence) services, operating systems, database management systems, etc. These are some of the core services you can expect from a PaaS vendor.
With PaaS, you need only focus on the successful management and deployment of your application. You won't have to worry about resources needed to manage your application, capacity planning, software maintenance, etc. Once you develop a piece of code or an application, it is then the responsibility of the PaaS provider to deploy and run it. The deployer also manages the environment in which your application runs.
Some common examples of PaaS include Microsoft Azure, Heroku, and Google App Engine.
3. Infrastructure-as-a-Service (IaaS)
Infrastructure as a Service is a type of cloud computing service where a server will offer computing, storage, and networking resources via the cloud. Such services are usually offered on a pay-as-you-go basis.
Some common resources that IaaS providers offer their users include servers, network connections, storage, content delivery networks, load balancing, log access, security, etc.
IaaS is primarily used by businesses that do not have the necessary infrastructure needed to run their day-to-day operations, so they instead invest in remote cloud-based IaaS. This not only saves the need for investing in heavy infrastructure but also residences costs on infrastructure maintenance.
Moreover, IaaS is easily scalable, it will increase or decrease in capacity according to your business needs. When demands go up, you can simply pay for more or vice versa, therefore, reducing capital expenditure. Moreover, they are a great resource when you need to provision quick resources. Whenever needed you can deliver IT resources to your employees anywhere across the world so they may run necessary applications.
Another major benefit of IaaS is that you no longer need to worry about upgrading your software or hardware or solving equipment problems. Your service provider will ensure that your infrastructure is kept well maintained and up to date at all times. However, you do need to manage everything else i.e, your applications, your data, your OS, etc.
Some common IaaS examples include Amazon Web Services (AWS), Google Cloud Platform, and OpenStack.
4. Function-as-a-Service (FaaS)
Up until a few years ago, SaaS, PaaS, and IaaS were the three main service models of cloud computing that were in use. However, in recent years we have seen the development of a new service model i.e Function as a Service.
A function as a service is a type of cloud computing service that allows you to execute pieces of code in response to events without having to buy or maintain complex infrastructure. This will allow software developers to easily deploy applications in the cloud without having to manage servers hosting them.
The small, modular pieces of code that are to be executed are referred to as "functions". The software developer working on these functions will use his time to focus on writing application logic as opposed to application development or managing servers.
Traditionally code would be written in the monolithic format i..e large units of code would be used to create one large application. However, with the FaaS approach, the application is broken down into smaller "microservices" or smaller pieces of code that they can modify when needed and implement into their codebases. Comparatively, making changes to a monolithic application would be much more complicated.
As a result, software developers that need to deploy pieces of code on demand can easily contact FaaS service providers to make this work. The service provider will then provide them with a server and execute the function. Unlike other cloud computing-based models, these servers are not dedicated to continuing to run these functions. Instead, once the function is executed, the server is shut down and the computing resources are ready to be used elsewhere.
This type of model works best for small, repetitive functions such as those needed for routine tasks or jobs, processing queue messages or web requests, etc.
Some common examples of FaaS include IBM Cloud Functions and Amazon Lambda.
What are The Different Types of Cloud Deployments?
A cloud deployment model will describe the type of cloud environment based on its scale, its access, its nature and purpose, and its ownership. They will help identify who holds the servers and who has access to them. You can also understand what components of your cloud infrastructure you can change, what your service provider will manage, and what you will be responsible for.
By understanding the type of cloud deployment models, you can make a much more informed decision and choose the model that best suits your needs.
There are four general types of cloud deployment models i.e. the private cloud, the public cloud, the hybrid cloud, and the multi-cloud. We'll be going over each one in detail.
1. Private Cloud
A private cloud, also known as an internal or "corporate" model, is held exclusively by a single business or organization. You do not share any segment of this cloud with the external public. The entirety of the infrastructure and services are deployed and run on a private network.
In this case, the cloud platform is implemented in a cloud-based secure environment usually handled by an organization's IT team. The platform is fully protected by powerful firewalls monitoring all incoming and outgoing network traffic. However, it can be hosted externally or on the premises of the owner company if needed. Their physical location however does not change their nature, they are still meant to remain limited to a private network, and are intended for use by the owner company.
With the private cloud basic deployment, you have much more control over cloud resources as you are the sole owner of the property. Moreover, if you wish to share your corporate information with only authorized staff members then you might wish to opt for a private cloud. With a public cloud deployment, companies can also tailor the specifications of their deployment to meet their needs.
Over the past few years, we have seen a powerful surge in cybercrime and security breaches particularly among businesses. In light of these security breaches, more and more organizations have now decided to shift to a private cloud model deployment. These models are far more secure and give access to only a limited pool of users, minimizing security vulnerabilities.
However, private cloud deployment models are usually much more expensive as you must invest in the appropriate hardware and software. Moreover, you must have a skilled team to run the applications. This is also why the private cloud may not be the best choice for smaller companies.
Some examples of private cloud providers include HPE, Dell, IBM, Microsoft, and Ubuntu.
2. Public Cloud
Public cloud deployments are the exact opposite of private cloud deployments. With public cloud deployments, anyone can access the system or services as needed. These cloud deployments are also not as secure as private clouds as they are open to the public.
In these deployments, the cloud infrastructure services are meant to be provided to the general public and end-users. Whoever is delivering the cloud service will own the infrastructure in this model. They will also be responsible for maintaining their infrastructure. The users need only access the system and services for use.
These types of deployments usually offer services on a pay-per-use model, making them perfect for enterprises that need access to immediate resources but do not have the means to purchase the hefty infrastructure needed to support them. There are no real setup or maintenance costs since the cloud service provider manages the entire infrastructure, your provider will also ensure that your servers are constantly available for reduced downtime. Moreover, such resources are easily scalable and can be accessed on-demand whenever needed.
While such deployments are advantageous, they also have their drawbacks. For instance, any mishap or collapse from the cloud service provider's end can mean downtime for your company. Moreover, with public access, it is far more vulnerable and prone to cyber attacks.
Some examples of public clouds include Microsoft Azure, Google Cloud Platform, and Dropbox.
3. Hybrid Cloud
A hybrid cloud can be thought of as a link between public cloud and private cloud deployments, so you can get the best of both worlds. With a hybrid cloud, a company can choose the best features from a public and private cloud that best suit their requirements to form a hybrid cloud.
For example, a company might wish to store their mission-critical procedures on a more secure private cloud but leave the less sensitive procedures to the public cloud. In this way, you can keep your sensitive assets in a controlled, safe, and cost-effective manner.
With this type of deployment, you can get a much more flexible and scalable model, improved security and privacy, and much more reasonable pricing. This is because not all companies wish to be completely private or public. They might need to keep some data private and keep their non-sensitive data public. A hybrid cloud deployment would suit the needs of a company that needs more flexibility or more security for its sensitive assets. Moreover, the costs will usually be cheaper than a completely private cloud-based model (but more expensive than a public model).
As a part of the hybrid model, both internal and external providers from the public and private clouds can offer resources. All a company needs is to be able to segment the data it needs to store in the private cloud and public cloud accordingly.
The only drawback to this cloud is its complexity, some might find it increasingly difficult to integrate and set up two or more cloud architectures.
Some examples of hybrid clouds include AWS Outpost, Azure Stack, and Google Anthos.
Multi-cloud is the final cloud deployment type. This type of cloud deployment is usually carried out by multiple cloud providers at the same time. It is quite similar to the hybrid cloud deployment approach, which uses a combination of both public and private clouds. However, the multi-cloud deployment model only relies on a combination of public clouds.
With multi-cloud, you don't need to rely on one cloud vendor and, therefore, do not need to give in to unnecessary costs and performance problems. Instead, you can choose cloud services from different cloud providers by taking a look at their pricing, their security, their compliance requirements, etc. In this way, you can take the best from each cloud service to form an elite multi-cloud model deployment for your company. Alternatively, you can choose the most affordable service from different vendors if you're looking to save on potential costs and still meet all your infrastructure needs.
Moreover, when you reduce your reliance on a single provider, you also reduce the chances of outages or unplanned downtime. Even if one cloud service fails to shut down, it won't impact the services you are utilizing from the second cloud service provider.
Multi-cloud deployment can look like a set of IaaS (Infrastructure as a service) vendors, or it could be a mix of IaaS, PaaS (Platform as a service), and SaaS (Software as a service). Such models are incredibly flexible to meet your unique needs.
However, such models are much more complicated to manage. Each vendor may use a different set of technologies and processes, making it incredibly complicated. Moreover, if the services you employ from different public clouds are interdependent and they need to communicate to function, this may lead to increased latency.
All models have their advantages and disadvantages. You should study each model carefully before choosing a model for your organization. By acting smart, you can save costs, and have a more secure network and more reliable operations.