Skip to content

Cloud Computing

The cloud is essentially the service of providing what is composing a server on demand.

What is Cloud Computing?

Cloud Computing is the on-demand availability of computer system resources split into 3 main categories:

  • Compute
  • Networking
  • Storage

Main benefits are low cost, ease of adoption, and almost unlimited resources. It is the combination of computing resources together to provision smaller or larger pieces.

IT Stack (on-premises)

  • Data
  • Application
  • Frameworks and runtime
  • Patches and hotfixes
  • Operating system
  • Hardware
  • Power, cooling, internet
  • Physical space

The priorities of most businesses are Data and Application. Cloud computing is the delivery of any computing resources from the IT stack as a service, by a Cloud Service Provider.

Virtualization is the foundation for the Cloud

Virtualization is what powers the cloud. The 3 elementary pieces of a computer system are:

  • processor,
  • memory
  • hard disk.

Virtualization allows you to create software copies of these elementary pieces. You get a virtual processor, virtual memory, and virtual hard disk. These virtual pieces function identical to the real pieces.

The advantage of these virtual pieces is that you can provision them over the internet. This is what makes the delivery of cloud resources possible for Cloud Service Providers.

Key Characteristics of Cloud Computing

  • On-demand Self-service: Users can provision computing resources such as processing power and storage without requiring human interaction with the service provider.
  • Broad Network Access: Services are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms.
  • Resource Pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand.
  • Rapid Elasticity: Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand.
  • Measured Service: Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service.

Cloud Computing advantages

  • Fault tolerant
  • High availability
  • Scalability
  • Elasticity

The main benefit of Cloud Computing is that it operates on a pay-as-you-go pricing model, i.e., you only pay for what you need at any given moment with no up-front cost. It operates on an operational expense model.

Different Cloud Computing Service Models

  • Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet. Users have control over operating systems, storage, and deployed applications, and possibly limited control of select networking components. Ideal for businesses that need a higher degree of control and flexibility.
  • Platform as a Service (PaaS): Offers the runtime environment for applications, development and deployment tools. Users manage the applications and services they develop, and the cloud provider manages everything else. Ideal for businesses that want to focus on developing and deploying applications.
  • Software as a Service (SaaS): Delivers software applications over the internet, on a subscription basis. Users do not manage or control the underlying cloud infrastructure but may have user-specific application configuration settings. Ideal for businesses that need to access applications quickly and easily.
  • Function-as-a-Service (FaaS)

These service models are available on Cloud Service Providers such as Azure, AWS, and GCP.

Cloud Deployment Models

  • Public Cloud: The cloud resources are owned and operated by a third-party cloud service provider and delivered over the internet. Provides high reliability, flexible pricing, and ease of management.
  • Private Cloud: The cloud infrastructure is used exclusively by a single organization. Offers more control over resources, customized features, and higher security.
  • Hybrid Cloud: This model combines public and private clouds, allowing data and applications to be shared between them. Provides flexibility to choose the right cloud model for different needs.
  • Community Cloud: Shared infrastructure for organizations with similar needs, increasing opportunities for collaboration and reducing costs.

Comparing On-Premises to Cloud Computing

  • Cost Model: On-premises infrastructure requires significant upfront investment (CapEx) in hardware and software. Cloud computing operates on a pay-as-you-go model (OpEx), reducing upfront costs.
  • Scalability: Cloud computing offers scalable resources according to demand. On-premises solutions require physical hardware adjustments and can be limited by fixed capacity.
  • Maintenance and Upgrades: On-premises environments necessitate ongoing manual upgrades and maintenance by the organization's IT staff. In contrast, cloud providers handle these tasks.
  • Accessibility: Cloud services are widely accessible over the internet. On-premises systems may have limitations on remote access due to network bottlenecks or constraints.
  • Control and Security: On-premises solutions offer complete control over infrastructure and data, avoiding vendor lock-in. Cloud computing involves trusting a third-party provider and adhering to their security models (shared responsibility).

Cloud Computing Roles

  • Solutions Architect
  • Cloud Engineer
  • Cloud Operations Engineer
  • Sales Engineer
  • DevOps Engineer
  • Cloud Support

The Language of Cloud Computing

Essential terms that describe the resilience and instant adaptability of Cloud Computing:

  • High Availability: In traditional settings, you own the hardware and have physical access but cannot easily add new servers. With Cloud, you don't own the hardware, can easily add more servers with a click, and if hardware fails, you can replace it instantly. High availability depends on a number of virtual machines.
  • Reliability
  • Scalability
  • Predictability
  • Security
  • Governance
  • Manageability