Services like Amazon.com, Netflix, Google Search, and even the local bakery website, all reside in the cloud. Cloud Technology simply refers to the underlying infrastructure that enables services such as those listed above to be delivered to you. As a software developer, I have used cloud services to host my personal and commercial applications. But before getting to the details of how to set up servers and networks in the cloud. Let's look at the options available to us.
Some of the most common cloud providers include:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure
- IBM Cloud
- Oracle Cloud
All the cloud providers above offer various services and their products differ in ease of use as well as pricing. Differences aside, they do provide standard services such as:
Infrastructure as a Service (IaaS): This is the most barebones service and the closest to the physical hardware that you get. You get to configure servers and Virtual Machines (VMs), Storage, networks, the operating system(s) of choice, and security rules.
Platform as a Service (PaaS): With this service, most of the underlying infrastructure is taken care of for you. As a developer with little to no networking and server experience, this is the simplest service to go for. This service makes it easy for you to deploy your apps without worrying about server configuration, etc. Heroku is a good example of a PaaS.
Software as a Service (SaaS): If you've used a subscription service before, then you have interacted with SaaS. Netflix, for example, delivers high-quality movies to you as a service, and you pay for that service monthly / yearly. One of the ways a developer can generate revenue is by building a SaaS application and using PaaS to deploy the SaaS application globally.
Serverless Computing (Functions as a Service, FaaS): Relatively new to the cloud computing space, this service enables developers to define functions that could be executed based on triggers/events. For example, you have a website with a contact form. You could set up a serverless function that sends you an email, every time a user submits the form. Event-based logic has primarily been used in Software Development, and having it as a Cloud Service adds to the list of tools that'll make developing your applications that much easier.
The cloud offers many benefits such as:
Infinite Scalability: You have access to multiple computers/servers all over the world kept in Datacenters, ensuring your content is served fast no matter the location of the end-user.
Embedded Intelligence: Many cloud services have inbuilt intelligent models that aid the developers in optimizing their applications and infrastructure.
Low Cost: Setting up and maintaining your servers is much more expensive as compared to setting up your infrastructure in the cloud.
Reliability: Cloud Technology makes data backups, disaster recovery, and resource provision painless. This ensures that your technical needs are not only met, but also safeguarded from malicious actors.
In the next article, we'll go through setting up an account and building our server on AWS!