The Definition
Cloud computing is the on-demand availability of computer system resources without direct active management by the user. Large cloud systems often have functions distributed over multiple locations, each of which is a data center. Cloud computing relies on sharing of resources to achieve coherence and typically uses a “pay as you go” model, which can help in reducing capital expenses.
Before delving into the world of Cloud Computing, we will take a detour to understand the fundamental functions of a computer comparing it to the brain function.
1. The Basic Functions of Computing
Computers are very closely aligned to the most complex processing unit there has ever been, namely the human brain. Going back to the basics for a moment — any information processing system consists of five main components — input, output, storage, processing, and program. Parallels can be drawn between the brain and computers for each of these elements.
1.1 Input: Inputs are stimuli, data and objects that act as the basis for action.
- In the machine world, inputs come through input devices like keyboards, mouse, scanner, camera, microphone etc. They come in different formats like images, text, and structured data.
For the human brain, input is provided through internal and external stimuli. Input ‘devices’ for brain would include sensory cells (those associated with seeing, hearing, touching, tasting) and motor/muscle cells. These cells pick up the stimulus provided and take it in for further processing.
1.2 Output: Output is the information or action that comes as a result of processing the input.
- Output actions in the case of machines could be things like printing something, adding numbers, projecting an image, solving a complex problem based on an algorithm, identifying patterns etc.
- The output from processing that occurs in a human brain is very sophisticated and includes activities like controlling internal and external muscles, sensory perception, managing internal bodily functions (like blood pressure, heart rate, temperature), decision making, problem solving, emotions, social behavior, etc.
1.3 Storage: This is the place where things like input, output and programs are held.
- Computers have two types of storage. A short-term storage, called RAM (Random Access Memory), that stores limited amounts of information (data or programs) required by the computer to perform an immediate task. Long-term storage with much greater capacity in the form of Hard Disk Drives, Optical Disks, Tapes etc.
- Very similar to this construct is the memory system of the human brain. The brain’s short-term storage is called ‘Working Memory’which uses the brain’s memory and attention capabilities in short bursts of time to perform the immediate task at hand (e.g., remembering what the teacher is saying when taking notes in class). Long term storage for humans is through their ‘Long Term Memory’ or LTM function which enables them to store vast amounts of information for an indefinite period of time. It includes memory (or storage) of things like specific events, factual information and experiences.
1.4 Processor:It is the central processing circuitry that carries out instructions.
- In a computer, this is managed by its CPU (Central Processing Unit), whereas for humans it is the Central Nervous System comprised of the brain and spinal cord and their internal circuitry.
1.5 Program: Or ‘code,’ in computer language.
- This refers to the intricate set of instructions that lay out what requires to be done with the input in order to arrive at an output, bringing together a set of functions that have to be performed, in a defined order, within defined parameters.
- In humans, this code is executed via the neurons present in the brain. The neurons make connections with each other through which they pass on signals which are processed to achieve desired action, the entire process is controlled by the central nervous system. The signal or information exchange happens through very critical nervous system structures called Synapses.
- Computer programs run via machine code, which are patterns of bits (i.e., binary units of information like ‘1’ and ‘0’). Similarly, a human brain runs its ‘code’ via patterns of chemical or electrical signals which are passed from one neuron to the next forming a neural network.
The Evolution of Modern Computing
In short, computers can be divided in two broad categories:
- Personal Computers (PCs)
Personal Computers (PCs) that could be further categorized as Desktops and Laptops. PCs are mainly used by individuals for personal work or to manage small businesses.
2.2 Client/Server Model
Business Computers that run enterprise-wide businesses such as Walmart, Government Services, Airlines booking systems etc. run on complex computers termed as servers. These Servers can provide service to multiple devices referred as clients thus the term client/server. These computers have continued to evolve over a century, becoming more and more complex with powerful computing capabilities. These machines are housed in environmentally controlled rooms that are referred to as on-premise data centers (DCs). Large businesses have their own DCs to run business applications staffed by IT teams.Computing services are rendered to the enterprise departments such as Finance, Procurement, Engineering, Manufacturing etc.
Client/Server architecture analogy can be compared to the Client and Server in a restaurant. You as a client order food from a server. Now that server has a team behind the scene (team size and structure depends on the restaurant capacity – it could be two or hundreds) that participate in preparing the meats, salads, dishes, desserts etc. Similarly in computing, a user interfaces using terminals, tablets, phones etc. with servers (there are multiple types of servers e.g., application, database, web etc.) that perform work behind the scene and present requested output to the client A server has multiple components (e.g., CPU,memory, storage, I/O devices etc.) to perform its tasks. Keep in mind that a server does not come physically to the client to take the order like a restaurant server, but the communication happens virtually via network with the clients. Likewise, as a restaurant client has to pay their server for food, a computer client has to pay to purchase and configure a server or hire computing servers from a third-party supplier. Multiple clients interact with a single or multiple servers connected over a network.
Since 2005, Client/Serve model started to evolve into Cloud Computing. The underlying principles are the same as client/server , the main difference is that these machines are typically not managed by the enterprise, but they are managed by the cloud service providers. Below is the brief history of cloud computing evolution and associated
service providers:
- 2008: Google App Engine
- 2010: Microsoft Azure
- 2011: IBM SmartCloud
- 2012: Oracle Cloud
- 2013: Google Cloud
Over the years, many more cloud service providers have joined the fray.
3. Understanding Cloud Computing
Cloud computing is named as such because the information being accessed remotely resides at the cloud service providers data centers in different countries throughout the word. Information between the machines and users is virtual, so it is termed as Cloud architecture. Companies that provide cloud services enable users to store files and applications on remote servers and then access all the data via the Internet. This means the user is not required to be in a specific place to gain access to it, allowing the user to work remotely.
Cloud computing takes all the heavy lifting involved in crunching and processing data away from the device you carry around or sit and work at. It also moves all of that work to huge computer clusters far away in cyberspace. The Internet becomes the cloud, and voilà—your data, work, and applications are available from any device with which you can connect to the Internet, anywhere in the world.
3.1 Examples and Advantage of Cloud Services Here are some of the examples of cloud services:
- Email (e.g., Outlook, Gmail)
- Storage, backup, and data retrieval (e.g., OneDrive, Dropbox, Google Drive)
- Applications (e.g., Facebook, Twitter, Office 365)
- Data Analytics (e.g., Data Lake, HDInsight, Kinesis Data Streams
- Audio and video streaming (e.g., Spotify, Amazon Video, Alexa)
- Delivering software on demand
Cloud-based software offers companies from all sectors a number of benefits, including the ability to use software from any device either via a native app or a browser. As a result, users can carry their files and settings over to other devices in a completely seamless manner.
Cloud computing services also make it possible for users to back up their music, files, and photos, ensuring those files are immediately available in the event of a hard drive crash.
It also offers big businesses cost-saving potential. Before the cloud became a viable alternative, companies were required to purchase, construct, and maintain costly information management technology and infrastructure. Companies can swap costly server centers and IT departments for fast Internet connections, where employees interact with the cloud online to complete their tasks.
3.2 Major Components of Cloud Computing Here are the basic components for managing for day-to-day applications:
- Compute Engines (computers that crunch numbers and run business logic)
- Storage (devices that hold data for the businesses and users)
- Networking (devices that facilitate communication with internet and all connected devices)
- Data Bases (an organized collection of structured information, or data, typically stored electronically in a computer system)
- Identity and Access Management (ensure only authorized users have access to the systems)
- Security (ensures data integrity and levels of authorized access to data)
- Billing and Account Management
- Monitoring and Alerting (devices and application that constantly monitor and warn system administrators of components malfunctioning, illegal access, cyber-attacks etc.)
- Backup and restore services (data and applications are consistently backed and can be retrieved on demand)
Advanced Functions: Artificial intelligence, Internet of Things (IoT) , Cloud Formation etc.
Cloud Computing Architecture
3.3 Deployment Models
Below are the three common cloud deployment models:
- Public Cloud: public cloud provider owns and administers the data centerswhere customers’ workloads run. In its simplest form, the public cloud model is the computing version of the “utility” model we all use when consuming electricity or water in our homes. Public cloud architectures are multi-tenant environments—users share a pool of virtual resources that are automatically provisioned for and allocated to individual tenants through a self-service interface.
- Private Cloud: computing in which service provider does not make all resources public over the internet. It only supports connectivity over the private network. It has only authentic users and single-occupant architecture. Single Tenancy i.e., data of a single enterprise is stored.
- Hybrid Cloud: As the name implies, a combination of both public and private services. This type of model allows the user more flexibility and helps optimize the user’s infrastructure and security.
3.5 Types of Cloud Computing
Cloud computing is not a single piece of technology like a microchip or a cellphone. Rather, it’s a system primarily comprised of these types of services: software-as-a-service (SaaS), infrastructure-as-a-service (IaaS), and platform-as-a-service (PaaS). More discussion of these services is beyond the scope of this article.
3.6 Cloud Service Data Centers
Cloud service data centers typically reside in geographically dispersed data centers called Availability Zones and Regions. These data centers are massive in size, up to 200,000 sq. feet.
Availability Zones (AZs)
Data Centers located within specific regions in which public cloud services originate and operate. Cloud computing businesses typically have multiple worldwide availability zones. This helps ensure cloud customers have a stable connection to a cloud service in the geographic zone that’s closest to them.
An availability zone consists of multiple data centers, which are all equipped with independent power, cooling and networking infrastructure all housed in separate facilities. A region can have multiple availability zones, but no availability zones are shared with different regions. Participating data centers in an availability zone connect to each other over a redundant, high-speed, low-latency private network link, and all zones in a region connect through the same sort of network links.
Differences between regions and zones
Availability zones are multiple, isolated locations within a region, and a region is a geographical location with multiple availability zones mapped within it. Every region is isolated and independent from every other region. Regions are spread out all over the world, so cloud providers can reach customers on multiple continents. Cloud providers typically have two or more availability zones within each region.
AWS, Azure, and Google Cloud availability zones
The big three public cloud providers — Amazon Web Services (AWS), Microsoft Azure and Google Cloud — use both regions and availability zones. The availability zones each cloud provider offers are also independent, so a failure or outage within one availability zone won’t affect other zones; the other zones will pick up the slack from the region that went down. This ensures that an organization’s disaster recovery plan isn’t compromised.
All of the major cloud providers have Availability zones in various continents dispersed in multiple countries.