In: Computer Science
Define cloud computing and explain the three key terms in your definition. Then
Describe the differences between mainframe, client-server, and cloud architectures.
Cloud computing is the practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer. Cloud computing is the delivery of different services through the Internet, including data storage, servers, databases, networking, and software.
Three key terms in cloud computing:
1. Software-as-a-service (SaaS):
It comprises of software applications, which are run on distantly located computers that happens to be owned, as well as operated by others.
Example: Google Docs
2. Infrastructure-as-a-service (IaaS):
In this, businesses are provided with several kinds of computing resources, such as servers, storage, networks, and data center spaces. The provider here, charges a certain amount of money based on the resources that are in use.
Example: IBM Cloud, Microsoft Azure
3. Platform-as-a-service (PaaS):
It offers everything that is required to support the building and deployment of cloud-based applications. This is possible without the developer of the application having to purchase hardware, software, management and even hosting.
Example: Salesforce.com, Heroku
Describe the differences between mainframe, client-server, and cloud architectures.
In a mainframe/terminal architecture, a single device (mainframe) stores all the data and services for the network. The mainframe performs all processing functions for the dumb terminals that connect to the mainframe. The dumb terminals performs no processing but serve only as the I/O devices into the mainframe.
In a client/server architecture, hosts are assigned specific roles. Clients request data and services stored on Servers. Data and Services are centrally located one ore more servers. The client connects to that server, and there is an implicit understanding of the type of communication and data transmission that will ensue between the two computers.
In a cloud model, the hardware, topology, division of labor, and even number of actual machines involved is all abstracted behind a single endpoint. The upshot is that, with a single endpoint exposed to provide the functionality of the application, that's all a client consumer of the application ever has to care about, instead of where to get its data, where to call such and such a remote application process, etc.