Demystifying cloud computing: A journey into the cloud.
Tags: cloudcomputing, cloudinfrastructure, learning, cloud
Published: 2023-11-05 22:20:21

Hello and welcome to my very first article! This article is the first part in a series dedicated to sharing the knowledge I gain through my cloud computing journey! I recently started a cloud computing course and I’m excited to share the knowledge and insights I've gained so far.
Here is a list of things we will be looking at in this part:

- What is cloud computing?
- Characteristics of cloud computing.
- History of cloud computing.
- Cloud service models.
Now for the fun part let’s begin!

**What is cloud computing?**
The National Institute of Standards and Technology (NIST) Defines cloud computing as a model for enabling convenient, on demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Cloud computing is the on-demand delivery of IT resources over the internet on a pay as you go pricing model. It is the delivery of computing services such as servers, storage, databases, software, analytics, and intelligence over the internet. 

_Let's take a closer look at some key words in the definition:_

**Convenient Access**: Imagine you are a small business owner who needs to host a website. With cloud computing, you can easily access and set up web servers without the hassle of purchasing and configuring physical hardware. This convenience is a fundamental feature of cloud computing.
On-Demand Provisioning: Suppose you are a startup that experiences a sudden surge in website traffic due to a viral campaign. Cloud computing allows you to quickly scale up your server resources to meet the increased demand. Once the campaign ends, you can scale down to save costs.

**Minimal Management Effort**: If you are a software developer, you can leverage cloud services like AWS Lambda or Azure Functions. These serverless computing platforms automatically handle server management, so you can focus on writing code instead of managing infrastructure.
Now that we understand what cloud computing is, lets look at some key characteristics of cloud computing.

**Characteristics of cloud computing**
The National Institute of Standards and Technology (NIST) lists five (5) essential characteristics of cloud computing which are: 

- On demand self-service.
- Broad network access.
- Resource pooling.
- Rapid elasticity.
- Measured service.

**On demand self-service**: The cloud empowers users to provision and manage resources as needed without any need for physical service provider help or interaction. With cloud computing users can access services as needed and at any time of the day except in cases where provider services are down. Think of it as ordering takeout – you get to decide what you want, how much you want, and when you want it. For example, a data scientist can effortlessly spin up a cluster of virtual machines to run complex data analytics tasks using a cloud platform's self-service portal, without needing assistance from IT personnel.

**Broad network access**: Cloud computing offers accessibility from a wide array of devices with internet connectivity. This characteristic makes the cloud readily available and accessible to users, it can be likened to having your music playlist available on your smartphone, tablet, and laptop, ensuring that you can enjoy your favourite tunes from anywhere. An example use case is the ability to access cloud-based email services like Gmail or cloud storage platforms such as Dropbox, seamlessly from different devices with an internet connection. 

**Resource pooling**: Resource pooling describes a cost-effective feature of the cloud; multiple customers share physical and virtual resources using a multi-tenancy model. In the cloud, physical and virtual resources are pooled and dynamically allocated to users based on demand. An example is a public cloud provider like AWS or Azure efficiently managing and optimizing server resources across thousands of users, ensuring that each user gets the resources they need without overprovisioning.

**Rapid elasticity**: In the cloud, services can be provisioned or decommissioned quickly, depending on fluctuations in demand. An example use case is a video streaming service, the cloud allows it to dynamically scale its server infrastructure during peak hours to handle a surge in viewers, and then scale back down during off-peak times to save costs. Another good example use case is an e-commerce website, the cloud allows it to scale up its infrastructure during high peak periods like during the holidays or sales and scale back down during the remission period that follows. 

**Measured service**: The cloud uses a pay-as-you-go model, it is comparable to how you pay for electricity bills you consume at home. In the cloud, you're billed based on your actual resource usage. This means that an e-commerce website operator only pays for the server resources they've utilized during a busy holiday season, without the burden of maintaining excess capacity year-round.
 
**Some other cloud computing characteristics**: 
While NIST focuses on these five core characteristics, it's essential to recognize other attributes that benefit users, they include:

- **Resiliency and availability**: This describes the ability of a service to recover quickly from any disruption. Cloud services create a copy of stored data which helps to serve as a back-up, if one server for any reason loses data, the copy version from the other server restores the data. A key benefit of cloud services is its availability, cloud services can be accessed from any where so there are no geographic restrictions.
- **Flexibility**: The cloud provides customers with the flexibility to grow their businesses. Businesses can grow with more freedom and can choose from several payment options to avoid overspending on resources they won’t need.

**Brief History of Cloud Computing**
Understanding the history of cloud computing provides us with valuable insights into its evolution. The concept of cloud computing has roots dating back to the 1950s when large-scale mainframes with considerable processing power became available. During this time, the practice of time-sharing and resource pooling emerged, allowing multiple users to utilize the substantial computing power of
these mainframes. This was a precursor to the shared resource model that cloud computing would later adopt.
In 1970, the advent of virtual machines (VMs) marked a significant milestone in the evolution of cloud computing. VM technology allowed multiple virtual machines to run on a single physical node, effectively sharing the same hardware. This breakthrough laid the foundation for the creation of cloud infrastructures where resources could be rapidly provisioned and scaled up or down based on demand.
**Cloud service models**
In the realm of cloud computing, several service models have emerged, catering to various needs and preferences. Let's explore the three most popular ones.
The following are the three (3) most popular cloud services offered: 
- IAAS – Infrastructure as a service
- PAAS – Platform as a service
- SAAS – Software as a service.

**Infrastructure as a service (IAAS)**: Infrastructure as a service is a service that provides customers with access to cloud-hosted physical and virtual servers, storage, and networking services. In this model, the provider manages the physical resource, data centres, cooling, power, network, and security. IAAS customers can choose between VMs hosted and shared on physical hardware or bare metal servers on dedicated (unshared) physical hardware.
Benefits of Infrastructure as a service:

- Costs saving by eliminating the need for companies to purchase and maintain on premise data centres.
- Enhanced Security.
- High availability.
- Low latency which ensures improved performance.

_Real Life Example_: Consider a software development company that requires a scalable environment for hosting their web applications. By leveraging IaaS from a provider like AWS, they can easily launch virtual servers to accommodate user traffic spikes during product launches. This scalability ensures optimal performance without the need for major upfront investments in hardware.

**Platform as a service (PAAS)**: PaaS provides users with a platform for developing, running, and managing applications. In addition to computing resources, the cloud provider manages the platform infrastructure, which includes the operating system, storage, networking, databases, middleware, runtimes, frameworks, and business analytics.
Benefits of Platform as a service (PAAS)
Platform as a service offers users a lot of benefits including:
Scalability.
- Faster time to market.
- Less to manage.
- Low to no risk testing and adoption of new technologies.

_Real Life Example_: Imagine a startup building a mobile app. By utilizing PaaS offered by platforms like Heroku or Google App Engine, the development team can focus on writing code and designing features without worrying about server administration. This accelerates the app's time-to-market and allows the team to allocate resources efficiently.


**Software as a service (SAAS):** software as a service sometimes called cloud application is a cloud offering that provides users access to a service provider’s software. Users pay on a monthly or annual basis to use a complete application. In this model the service provider is also in charge of managing the software application. 
Benefits of Software as a service (SAAS)
Software as a service offers users a lot of benefits including the following:

- Minimal risk.
- Anytime anywhere productivity.
- Easy scalability
- Lower cost

_Real Life Example_: Take email services like Gmail or office suites like Microsoft 365. These services provide users with the ability to access their email and office applications from any device with an internet connection. Users pay a subscription fee, ensuring that they always have access to the latest software updates and support.

In this article we have been a able to take a close look at cloud computing, history of cloud computing, characteristics of cloud computing and the three (3) most popular cloud service models, If you have questions, or would like to take a deeper dive into the world of cloud computing then you can take a look at some of the materials below, Thank you for reading up to this point and , like I mentioned earlier this is the first part of my series on cloud computing, I will be dropping the next one in 2 weeks so be on the lookout and see you soon!.