What is Cloud Hosting
30 November 2018
In cloud computing, the word "cloud" (also phrased as 'the cloud') is used as a metaphor for 'the Internet', so the phrase cloud computing means a type of Internet-based computing, where different services including servers, storage and applications are delivered through the Internet.
The cloud is generally depicted through the use of a cloud-like shape within network diagrams as an abstraction of the underlying infrastructure.
Cloud servers are similar to a VPS hosting environment. The key difference is that instead of having a VPS on a single physical server, the resources are spread out across a number of different physical machines.
Cloud Computing & Cloud Hosting
There are three main types of cloud computing services:
- Software-as-a-Service (SaaS), The software is subscription based and centrally hosted with users accessing it through a thin client such as a web browser.
- Infrastructure-as-a-Service (IaaS), A form of cloud computing that provides virtualized computing resources over the internet. IaaS hosts the infrastructure components traditionally present in an on-premises data center, including servers, storage and networking hardware.
- Platform-as-a-Service (PaaS), A cloud computing module where a third-party provider delivers both hardware and the software tools needed for application development.
The term cloud or cloud computing can mean different things to different people. To some it means scalability, to others it's about redundancy and resilience in the face of failures. Application design and the architecture you choose allows you to satisfy a variety of requirements.
Cloud computing is shared pools of configurable computer system resources and higher-level services that can be rapidly provisioned with minimal management effort. This means that developing in the cloud can allow developers get their applications to market quickly, it can remove downtime through hardware failure and allow for rapid scalability to meet growing demands for the website or application. At the top end the cloud can self manage its scale so that the site or application is always responsive.
The ability to scale on demand can save organizations the cost of servers and other equipment as it removes the need to run high end servers all year when for example they are only needed for Black Friday once a year. Without the scalability of a cloud the only way to reduce costs would be to transfer the site or application to a smaller server, then transfer it back when higher performance is needed.
How does the cloud achieve this scalability? It requires that you break the application or website into discrete units. That is you may have a single node for running MySQL and two nodes for running the PHP front end. To handle more requests it may be as simple as starting one or more additional PHP front end nodes.
With multiple cloud servers working to provide the front end for the web application, the obvious question is how does the user know which server to use? In practice your users have no idea if there's 1 or 100 servers working for them as while there are various options the most common it to place a load balancer in front of the servers. A load balancer provides a single entry point to your application, it is responsible for handing out requests from your users to the most underutilized servers.
Through the use of cloud based solutions geographic redundancy becomes a reality as it's possible to structure the application so that it's spread across multiple data centers, this not only protects the application from hardware failures but also protects the application from failure at a data center level. With the correct routing it can also allow faster access for users by providing regional access to the web application.
As Cloud computing relies on collections of virtual servers rather than one massive server to deliver the application, it means that it's possible to group servers and then limit the interconnection between the groups. For example backend processing can be performed in a group that has no direct access to or from the internet thus if done properly increasing the security of the application.
Cloud storage is a data storage system in which the data is stored in logical pools which span multiple disks in multiple servers. Cloud storage is manage by the hosting company and generally allows for multiple failures without affecting the application hosted on the cloud servers using the storage and without data loss.
An alternative to traditional block storage is object storage such as AWS S3 and wasabi. Object storage differs from traditional storage by bundling the data itself along with metadata tags and a unique identifier. The customizable meta data allows a lot more identifying for each piece of data. These objects are stored in a flat address space which helps with scalability and can scale to petabytes and beyond.
If you’re primarily working with small files, then file storage wins the performance battle. If you're working with large data items, object storage may be the answer and can scale across regions.
A cloud application or cloud app, where cloud based and local components work together. In this model the application relies on remote server for processing the application that's generally accessed through a web browser and requires an internet connection between the client and the cloud.
Types of Cloud
The cloud infrastructure is provisioned for exclusive use by a single organization. It may be owned, managed, and operated by the organization, a third party, or some combination of the two.
The cloud infrastructure is provisioned for open use by the general public. It is usually owned and managed by the cloud provider.
The cloud infrastructure is a composition of on-premises, private cloud and public cloud with orchestration between the platforms.