Definition

Cloud is a coherent, large-scale, publicly accessible collection of computing, storage, and networking resources available via Web service calls through the Internet. It provides short- or long-term access on a pay-per-use basis.

The cloud computing is provided by virtualization. Without virtualization, software and hardware are no longer strongly related. The virtualization allows the consolidation of servers and the cloud computing.

Server consolidation

Definition

Server consolidation is the process of combining multiple physical servers into a smaller number of virtual servers. This allows for better utilization of hardware resources and reduces the overall number of physical servers required.

In the context of cloud computing, server consolidation is an important technique that enables efficient resource allocation and costs can achieve higher hardware utilization, reduce management costs, and improve scalability and flexibility in their cloud infrastructure. The main benefits of server consolidation include:

  • Migration from physical to virtual machines: This process allows organizations to move their applications from physical servers to virtual machines without interrupting the applications running inside them. This enables better resource utilization and flexibility in managing workloads.
  • Scalability: Server consolidation enables organizations to automatically balance workloads according to set limits and guarantees. This helps in optimizing resource allocation and improving performance.
  • High availability: By consolidating servers, organizations can protect their applications against component and system failures. This ensures that critical services remain available and accessible to users.

Consolidation allows to run different operating systems on the same hardware, achieve higher hardware utilization by reducing the number of physical servers needed (and so the acquisition and management costs) and continue to use legacy software. Applications become independent from the hardware, which increases flexibility and scalability.

Cloud computing

Definition

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources, like

that can be rapidly provisioned and released with minimal management effort or service provider interaction.

In the recent years, cloud computing has become a popular model for delivering IT services and resources over the internet. Cloud computing provides a variety of services, such as Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS), which can be accessed through web portals and are available on a pay-per-use basis.

AbbreviationService
AaaSArchitecture as a Service
BaaSBusiness as a Service
CaaSCommunication as a Service
CRMaaSCRM as a Service
DaaSData as a Service
DBaaSDatabase as a Service
EaaSEthernet as a Service
FaaSFrameworks/Function as a Service
GaaSGlobalization or Governance as a Service
HaaSHardware as a Service
IaaSInfrastructure or Integration as a Service
IDaaSIdentity as a Service
ITaaSIT as a Service
LaaSLending as a Service
MaaSMashups as a Service
OaaSOrganization or Operations as a Service
SaaSSoftware as a Service
StaaSStorage as a Service
PaaSPlatform as a Service
TaaSTechnology or Testing as a Service
VaaSVoice as a Service

The main services related to cloud computing are organized in layers:

  1. Cloud Application: Represents the top layer, where the end-users interact with software applications delivered over the cloud. Cloud applications can be accessed through web portals and may require payment for usage and developed on cloud software environments or infrastructure components.
    • Software as a Service (SaaS): This layer provides ready-to-use applications accessible via the internet. Examples include Gmail, Microsoft 365, and Salesforce.
  2. Cloud Software Environment: Sits below the application layer. The main user of this layer is the application developer: in fact, providers supply developers with a programming-language-level environment with a well-defined API to facilitate interaction between the environment and apps, accelerate deployment, and support scalability.
    • Platform as a Service (PaaS): A development environment where developers can build, deploy, and manage applications without worrying about infrastructure details.
  3. Cloud Software Infrastructure: Provides resources to the higher-level layers, including:
    • Infrastructure as a Service (IaaS): Provides virtualized computing resources (servers, storage, networking) on-demand. Users can manage and configure these resources. The main benefits of IaaS include flexibility and root access to VMs for customization. However, performance interference and SLA guarantees can be challenging. Examples include Amazon EC2, Microsoft Azure, and Google Compute Engine.
    • Data as a Service (DaaS): Allows users to store and access data remotely from any location. It also facilitates cloud applications to scale beyond their limited servers’ requirements. This guarantees high dependability (availability, reliability, performance), replication, and data consistency. Examples include Dropbox, iCloud, and Google Drive.
    • Communications as a Service (CaaS): Provides communication tools like VoIP, video conferencing, and messaging.
  4. Software Kernel: Represents the core software components that enable cloud services. It includes operating systems, middleware, and runtime environments.
  5. Firmware / Hardware (HaaS): Refers to the physical infrastructure, including servers, switches, routers, and storage devices.

Deciding what kind of service your organization wants to provide, it’s crucial to choose the right type of cloud infrastructure. While on-premises IT infrastructure provides total control over every aspect of the infrastructure, cloud computing offers ways to scale and optimize resources more efficiently, by let managing the infrastructure to a third-party provider.

Types of Clouds

We can classify clouds into four main types:

  1. Public Clouds: Public clouds are cloud computing services that are available to the general public over the internet. These clouds are owned and operated by third-party service providers, who make their computing resources, such as servers and storage, accessible to anyone who wants to use them. Public clouds are highly scalable and offer a pay-per-use pricing model, making them suitable for small businesses and individuals who need flexible and cost-effective computing resources.
  2. Private Clouds: Private clouds, on the other hand, are cloud computing services that are dedicated to a single organization. These clouds are built and managed by the organization itself, either on-premises or in a data center. Private clouds offer greater control and security compared to public clouds, as they are not shared with other organizations. They are ideal for organizations that have strict data privacy and security requirements or need to comply with industry regulations.
  3. Community Clouds: Community clouds are cloud computing services that are shared by multiple organizations with similar interests or requirements. These clouds are designed to meet the specific needs of a particular community, such as government agencies, healthcare providers, or educational institutions. Community clouds offer a balance between the control and security of private clouds and the cost savings of public clouds. They allow organizations within the community to share resources and collaborate while maintaining data privacy and security.
  4. Hybrid Clouds: Hybrid clouds combine the features of public and private clouds, allowing organizations to leverage the benefits of both. In a hybrid cloud environment, organizations can run some of their applications and store some of their data in a private cloud, while using public cloud services for other applications and data. This flexibility enables organizations to optimize their IT infrastructure, taking advantage of the scalability and cost-effectiveness of public clouds for non-sensitive workloads, while keeping critical data and applications in a private cloud for enhanced security and control.