Basics of Cloud Computing for a TechNewbie
Tags: cloud, beginners, codenewbie
Published: 2021-10-27 15:42:45

#### *Background and Definition*
Cloud computing is one of the hottest buzzwords in the IT world today. It has revolutionized our internet experience as users and the way organizations conduct their businesses. Cloud-based technologies are used for services such as email (e.g. Gmail), [social networking](https://en.wikipedia.org/wiki/Social_networking_service), file storage (e.g. Dropbox), [big data](https://en.wikipedia.org/wiki/Big_data) analytics, software testing and development, [CRM](https://en.wikipedia.org/wiki/Customer_relationship_management) (e.g. Salesforce), etc. Regardless of your tech background (whether you're an IT professional or a financial analyst), having a basic understanding of cloud computing is an invaluable skill.

The term `cloud computing` simply refers to the provision of computer system resources  (like storage, software, servers or databases) over the internet (i.e. **the cloud**), without the need for internal infrastructure or direct active management by the user. It is often represented as a fluffy blue (or white) cloud graphic ☁☁️. Benefits of cloud computing include: It offers the best in terms of scalability, flexibility, reliability, geographical independence and cost effectiveness. Furthermore, it enables users to access the latest technologies and guarantees data protection.<br><br>

## Forms of Cloud Services
- **Infrastructure as a Service (IaaS)**: This form of cloud computing offers the delivery of virtual infrastructure that replaces physical hardware to businesses seeking cost-effective IT solution. It delivers the necessary resources that enable high-performance computing and it also facilitate data storage, backup, and recovery services to users. Infrastructure as a service provides the following resources: compute (i.e, resources like virtual servers which are provided on-demand); block storage (like data storage drives which is used for providing blocks for storing information); and networks which are all the resources required for providing users with networking capabilities.<br><br>

- **Platform as a Service (PaaS)**: In addition to the provision of fundamental infrastructure of virtual servers, data storage drives and network, this type of cloud services adds operating systems and software to the range of services delivered to users. It also provides run-time environment which provide all the functionality necessary for an application or program to run. PaaS allows developers to focus on their apps and avoid tasks like acquisition and resource planning.<br><br>

- **Software as a Service (SaaS)**: This is the largest (and most popular) of the three forms of cloud computing as it involves the deployment of software or apps over the internet. It operates a subscription model (either yearly or monthly) that requires an internet connection for users to access its services. Examples of areas covered by software as a service include: application monitoring, content, finance, communication tools/apps, collaboration technology and services.<br><br>

## Cloud Deployment Models
<p>There are several types of cloud deployment models, depending on where the infrastructure resides and who has control over it. Below are four main models associated with cloud computing:</p>

1. [**Public clouds**](https://en.wikipedia.org/wiki/Cloud_computing#Public_cloud): are the most common cloud deployment model, they are operated by third-party companies which are also known as cloud providers (such as [Amazon Web Services](https://aws.amazon.com/) (AWS), [Microsoft Azure](https://azure.microsoft.com/), and [Google Cloud](https://cloud.google.com/)) and made available to the general public or a large industry group on a pay-as-you-use basis. With public clouds, users can access computing resources [like hardware (operating system, storage) or software (application server, database)] at a relatively low cost as there are no capital expenditures required. Typical uses of public clouds are for: application development and testing, file sharing and storage, and email service.

2. [**Private cloud**](https://en.wikipedia.org/wiki/Cloud_computing#Private_cloud): is a cloud environment in which all computing resources are controlled and managed exclusively for a single organization either by the organization itself or a third party service provider. Private clouds are often hosted within a company's own data center, although they can also be built on the infrastructure of an independent cloud provider or on rented infrastructure in an offsite data center. They are usually more costly than public clouds due to the huge capital investments involved in their maintenance, installation and acquisition. However, private clouds offer businesses increased security and privacy as well as the added benefits of scalability, flexibility, and full control over software and hardware choices.

3. [**Hybrid clouds**](https://en.wikipedia.org/wiki/Cloud_computing#Hybrid_cloud): integrate the best features of public and private clouds. Both types of cloud infrastructure are combined into a single one; organisations can choose to store sensitive information privately on their on-premises infrastructure while using their public cloud data center for any additional platform, storage, or computing resources they may require. This model is typically used when companies need to scale up their IT infrastructure very quickly as it gives a business greater flexibility and more application deployment options. <br></br>
Note that hybrid clouds are not to be confused with the [multi-cloud](https://en.wikipedia.org/wiki/Multicloud) infrastructure, which is a cloud service environment consisting of more than one public clouds and private clouds. Multi-cloud, which aims to eliminate reliance on any single cloud provider, differs from hybrid cloud in that it refers to *multiple cloud services* rather than *multiple deployment models*.

4. [**Community cloud**](https://en.wikipedia.org/wiki/Community_cloud): is especially useful for organizations that have similar goals and interests, such as schools and companies merging. It is a deployment model in which cloud infrastructure, whether managed internally or by a third party and hosted internally or externally, is shared between several organizations from a specific community with common concerns. Community cloud is a centralized cloud infrastructure that alllows companies to collaborate on applications and projects belonging to the community. Benefits offered by this deployment model include: security and sharing infrastructure, cost effectiveness, flexibility and scalability, etc.<br><br>

## Characteristics of Cloud Computing
a. **Resource Pooling**: means that the cloud services provider's computing infrastructure is pooled together to serve several businesses. In cloud computing, resource usage can grow or shrink as the client's needs changes therefore, providers serve customers with scalable and provisional services to suit their needs.

b. **Scalability and Rapid Elasticity**: scalability is the ability to contract or expand computing infrastructure as a response to clients' changing requests while rapid elasticity refers to the fast allocation of resources to meet the needs of consumers. It is essential that cloud providers can efficiently allocate resources and be able to do it quickly as their resources are seen as one large pool that can be divided up among clients as needed.

c. **On-demand Self-Service**: means that customers can automate their requests based on their computing needs, without having to contact their cloud providers. This characteristic of cloud computing allows clients to access additional resources at anytime without enquiring with the service provider. 

d. **Broad Network Access**: this means that computing resources can be easily accessible from any location (such as the office or home) and with various operating systems (like Windows, mobile, or Linux). Broad network access is one of fundamental hallmarks of cloud computing.<br><br> 

### Conclusion
Now that we have covered the most basic concepts of cloud computing, we will be delving into cloud networking and storage in another article. To know more on cloud computing, consider checking out the following resources:

- What is Cloud Computing? - [Amazon AWS](https://aws.amazon.com/what-is-cloud-computing/)<br><br>

- Microsoft [Azure](https://azure.microsoft.com/en-us/overview/what-is-cloud-computing/) - A Beginner's Guide<br><br>

- IBM | [Cloud Computing Fundamentals](https://www.ibm.com/cloud/learn/cloud-computing)<br><br>

- Lastly, this 👉 [Forbes article](https://www.forbes.com/sites/bernardmarr/2021/10/25/the-5-biggest-cloud-computing-trends-in-2022/?sh=34d0c3492267) explore the five biggest cloud computing trends in 2022<br><br>

*Hey, thanks for reading!* 👋 👋