Introduction to Cloud Computing
Cloud computing is the present and future of software utilization, development, and hosting. Let me introduce you to its basics.
Early Evolution of Cloud Computing
###Datacentres in the Past Until recently, maybe 10 to 15 years in the past, each company had its own data centers with servers for a different purpose, maybe running on different hardware, and even with a different operating system.
Each of these servers has its own CPU, hard drive, and RAM memory and every one of them needs enough resources for utilization at peak time.
It also means, that on average, most servers were really underutilized, and organizations were spending a ton of money on hardware that most of the time was not even used at 10% of its capability.
Virtualization
Then, we started to implement virtualization, which allows us to run multiple virtual machines at a single virtual host (physical server). So, we were able to get more usage out of hardware, cut down space cooling and of course, the costs.
However, even with virtualization, we still had a few disadvantages, such as high upfront cost. So, we needed to buy powerful virtual hosts, which we would then kept for five years for the amortization of cost.
We still had to pay for space in the datacentre, as well as electricity and utility costs for cooling and other server’s needs. Furthermore, hardware maintenance is still required as this can breakdown, network cards can go bad, and so on.
Virtualization is more cost-efficient than dedicated hardware, but there still was space for improvement. This is where Cloud Computing came in.
Cloud Computing
Cloud Computing enables companies to consume a compute resource such as a virtual machine, storage, or an application, as a utility — just like electricity — rather than having to build and maintain computing infrastructures in house. Source.
n the cloud environment, you have the cloud provider which owns their datacentre and manages all their hardware, networking and, of course, virtualization. Cloud is fully built on the principle of virtualization. No client has direct access to the hardware. Simply, its virtualized environment.
All resources are pulled together and then shared to multiple clients that all consume that shared hardware. Such clients do not need to know what server they are run on or on how many servers their environment is running. They simply consume a service and the cloud provider is the one making sure there are enough shared resources to handle requirements.
Users select only the services they want to use. Each service has its own definition of utilization. Once you can be billed per user, once it can be per minute. Cloud infrastructure should be self-serviced by the user and provisioning should be fully automated by the cloud provider and delivered at almost instant fashion.
Fundamental Division of Cloud Services
Each cloud provider has its own list of services to offer, but these services can be always divided into two basic ones.
Compute Power
Compute power is how much processing computer can do. For example, when you are buying new home computer, you may choose a computer with 8 GB of RAM and the latest processor to run today’s software. But, as a load of computer grows, you will find that it slows down.
With Cloud Computing you can add or remove compute power as you need. This can save your costs, since you are paying only for the resources you use.
Storage
Storage is a volume of data you can store on your computer. Traditional computer has a limited hard drive for space. With cloud computing you can request more storage as you need.
Furthermore, we can divide cloud services more by its user’s needs into three categories.
Infrastructure as Service(IaaS)
IaaS aims to provide control over hardware directly to the customer. This does not mean control over the physical machines. This means full control over hardware threw online interfaces. Customer will gain control over virtual machines, storages, or operating systems.
Common usage:
- Load migration.
- Storages.
- Backups and recovers.
Platform as Service(PaaS)
PaaS is providing an environment for development, testing and deploying of software applications. Target is to create application quickly without infrastructure concerns.
Common usage:
- Development framework(Software resources such as Azure Fabric Service).
- Analytics and Bussiness intelligence.
Software as Service(SaaS)
SaaS is supplying companies without software focus business. So we are talking about software like Office365 or Skype.
Table of Responsibility
- IaaS — Requires the most of user’s management over all of cloud services.
- PaaS — Requires less of user’s management. Cloud is providing operation system and user is responsible for applications and data.
- SaaS — All of responsibility relies on cloud provider.
Benefits of Cloud Computing
- Cost-efficient — Azure Pay-As-You-Go or consumption-based subscriptions.
- Scalability — You can increase or decrease the resources and services used based on the demand or workload at any given time.
- Elasticity — As your workload changes due to a spike or drop in demand, a cloud computing system can compensate by automatically adding or removing resources.
- Current — Removing responsibility over software updates and other management tasks.
- Reliable — When you’re running a business, you want to be confident your data is always going to be there.
- Global — Microsoft Azure have datacentres all around the world.
- Secure — Who can access the building, who can operate the server racks, and so on. This is physical security. Who can connect to your systems and data over the network. This is digital security.
Microsofts Azure datacentres around the world — Source
Sources
- Pluralsight course by Vlad Catrinescu.
- Microsoft Learn Platform.