Computer scienceSystem administration and DevOpsAmazon Web ServicesCloud Concepts

Introduction to Cloud Computing

8 minutes read

Consider a startup company for an E-Learning platform. Traditionally, the company would need to purchase web, database, and file servers to support this platform. They would also need a network to connect all these components. All this requires a huge upfront investment and risk.

It would take months to procure the necessary hardware, build a data center, and then install and configure everything. How many learners do they expect? If they overestimate the number, they end up with unused capacity. Underestimating would result in performance issues. And who takes care of maintenance and upgrades?

Fortunately, these issues can be easily addressed with cloud computing.

What is cloud computing?

Cloud computing provides access to IT services over the Internet on demand. Instead of managing data centers, organizations can access infrastructure, tools, and applications over the Internet, while only paying for what they use. This consumption-based model leads to increased cost savings with potentially no upfront costs.

With this model, you don't have to worry about purchasing, installing, or maintaining the physical infrastructure that runs your applications. Cloud computing helps servers get up and running fast, and scale up or down as needed. Therefore, there is no need to predict demand.

You can get cloud services from major providers like Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform.

Logos of major cloud computing providers.

Currently, AWS is the largest provider by market share. They have a wide array of services such as virtual machines, storage, virtual networks, databases, business applications, and developer tools.

Cloud computing uses virtualization technologies to maximize resource utilization. This allows multiple customers to use the same underlying physical hardware at a lower cost.

Cloud deployment models

Depending on the use case, there are many ways an organization can deploy cloud services. Let's discuss the models available to choose from.

The private cloud deployment model closely resembles the traditional approach. A single entity uses the cloud and the server is hosted on an on-premises or off-site data center. This provides greater control and security, but it is more costly. It is best suited for sensitive workloads that need to meet strict privacy and compliance requirements.

In the public model, cloud services are provided and managed by a third-party provider and are available for anyone to access and use. The provider is responsible for purchasing and maintaining the hardware, meaning that the organization has no control over the physical infrastructure. This model is widely used for web applications.

We can also connect both private and public cloud environments to create a hybrid model. It provides the security benefits of the private cloud as well as the flexibility of the public cloud. It can also assist during cloud migration and adoption.

An organization can also access services from multiple cloud providers, such as both AWS and Azure. This is known as multi-cloud deployment. It allows an organization to easily switch from one provider to another thus avoiding vendor lock-in. It is most useful when an organization wants to maximize redundancy and leverage specific services from different cloud providers.

Cloud service types

Different organizations have different requirements in terms of the control they need on a public cloud and use cases. The cloud caters to these different requirements by providing various service types. Let's briefly discuss the main ones:

  • Infrastructure as a service (IaaS) — In this model, you can access virtualized servers, storage, and networking over the internet. It is the most flexible in terms of the control it provides over cloud services.

  • Platform as a service (PaaS) — When developers need tools to build, test, and deploy applications. They just want to create an awesome application without the hassle of managing infrastructure or the operating system on which the tools run.

  • Software as a service (SaaS) — When you want to access an application without worrying about local installation or configuration. Consider a subscription-based model. SaaS applications can be accessed over a web browser without local installation or management. Think of your favorite mail provider to get an idea of SaaS.

Cloud computing pros and cons

Cloud computing offers numerous advantages and a few disadvantages. Let's start with the good news:

  • Ability to access resources within minutes;

  • You can easily allocate more resources to meet an increase in demand, like during peak hours. Additionally, you can remove them when they're no longer required;

  • Take advantage of a worldwide system of data centers to launch applications in regions closer to your customers, resulting in low-latency access for end-users;

  • You enjoy significant cost savings as you only pay for what you use. Cloud providers such as AWS can offer IT services at lower costs as many customers share the same resources. This is known as economies of scale;

  • You can deploy resources across multiple regions with the aid of a global infrastructure, ensuring they remain available during disruptions or maintenance in a given region or zone;

  • You can create policies and templates for a consistent deployment of services.

Yet, there are some drawbacks:

  • Overdependence on a single cloud provider can make switching to a different provider challenging. This is referred to as vendor lock-in.

  • You may incur unnecessary expenses. For example, if you forget to stop a virtual machine that isn't in use, you will continue being charged for it.

  • You don't have complete control as the provider controls the physical infrastructure. This raises some potential privacy concerns.

Conclusion

In this topic, we introduced cloud computing, a way for companies to access and use IT services on demand. This could be IT infrastructure, a platform for software development, or ready-made applications that meet our needs. Companies can access as little or as much as they need quickly and at a low cost. They only have to pay for what is used. This is especially important for individuals or small businesses that do not have enough initial capital.

We discussed various cloud deployment models and service types. Using a specific model depends on the company's specific needs, budget, and compliance requirements. Private clouds offer control over physical infrastructure but are more costly. Public clouds are highly scalable and cost-effective but with reduced control. Hybrid and multi-cloud strategies aim to balance these considerations but are more complex to implement.

Cloud computing helps provide highly available and globally distributed services with low-latency access. Organizations can focus more on running their business rather than their infrastructure. There are drawbacks too, but with a proper multi-cloud and cost-management strategy, cloud computing is extremely beneficial.

Now it's time to solve some exercises to cement your understanding of cloud computing.

18 learners liked this piece of theory. 0 didn't like it. What about you?
Report a typo