CCTP-607 “Big Ideas” in Technology (and What They Mean): AI to the Cloud
Professor: Dr. Martin Irvine
Georgetown University, Spring 2018
By: Linda Bardha
These days, if you try to google the word “cloud” you’re more likely to get articles referencing “cloud computing” than you are finding a reference to the weather. It turns out that the Cloud isn’t even a new concept, but media embraced this terminology and is using it excessively. So, what exactly is the Cloud? How did we start using it and what are the design principles that lead to the concept of Cloud computing? Cloud computing has been one of those buzz words in both consumer and enterprise technology, especially over the last few years. Companies seem to use this term to attract more customers and to show that they are “in” with the latest technology that there is. But how much of it is real and how much is just a lot of hype? The cloud is an example of a buzzword taking over the concepts that were established and used since the 1960s. We will take a look at the history of cloud computing, it’s architecture and design principles, how it is changing the ways that we access, compute and store information using the Internet and what are some of the implications of using a cloud-based system?
Think about different activities that you did today that required you to use the Internet. Did you catch up with your emails? Did you check Facebook or Twitter and interact with your friends? Or did you just watch a movie on Netflix, or listen to some music on Spotify? If you did any of these activities (or all) you have used the benefits of Cloud computing. When we’re referring to the Cloud, in a way, we’re referring to the Internet. In a broad sense, the internet is a worldwide network of billions of devices that communicate with each-other. As Irvine suggests, the design principles for Cloud computing systems extend the major principles of massively distributed, Web-deliverable computing services, databases, data analytics, and, now, AI/ML modules. The term “Cloud” began as an intentional, “black box” metaphor in network engineering for the distributed network connections for the Internet and Ethernet (1960s-70s). The term was a way of removing the complexity of connections and operations (which can be any number of configured TCP/IP connection in routers and subnetworks) between end-to-end data links. Now the term applies to the many complex layers, levels, and modules designed into online data systems mostly at the server side. The whole “server side” is “virtualized” across hundred and thousands of fiber-optic linked physical computers, memory components, and software modules, all of which are designed to create an end product (what is delivered and viewed on screens and heard through audio outputs) that seems like a whole, unified package to “end users.”
2. History of the Cloud and how it all started
How did the idea of Cloud computing develop?
To start from the beginning, we have to go all the way back to the 1950’s with the invention of mainframe computing. Mainframe computing is the concept of having a central computer, accessed by numerous user devices (Ebbers, Mike; O’Brien, W.; Ogden, B., 2006). The central computer, which had all the compute capabilities, was called the mainframe computer. All the user devices, which sent requests up to the mainframe computer, were called dumb terminals.
In schools and companies, we’ve seen that we have computers at every desk, fully independent from the ones around it. Back in the 50’s, however, mainframe computers were extremely expensive to buy, and maintain. So, instead of placing one at every seat, organizations would buy one mainframe computer, and allow the dumb terminals to share its computing resources. In the 70’s, the concept of virtual machines emerged.
Virtual machines are multiple complete operating systems that live in a single piece of hardware (Ebbers, Mike; O’Brien, W.; Ogden, B., 2006). For example, you can have multiple Windows Virtual Machines living in your single laptop. Suddenly, one single mainframe computer could have multiple operating systems running at the same time, to do many different things. This was the beginning of the modern concept of cloud computing.
To make this a reality, developers created a software called a hypervisor, that could be installed onto multiple pieces of hardware, such as servers. They could then link all these hardware and use the combined computational and storage powers as one giant resource. Take a moment to imagine all the amount of storage and computing power that was created by adding up all the memory and hard drive space for every computer in your office.
As Sridhar suggests, benefits of virtualization in a cloud-computing environment are:
- Elasticity and scalability: Firing up and shutting down VMs involves less effort as opposed to bringing servers up or down.
- Workload migration: Through facilities such as live VM migration, you can carry out workload migration with much less effort as compared to workload migration across physical servers at different locations.
- Resiliency: You can isolate physical-server failure from user services through migration of VMs.
Programs would run faster, and you can store a lot of files. This is what cloud computing allows people to do, in an extremely large scale, using the Internet to connect end users to huge computational hardware.
2.1 What was used before “the Cloud”?
We were used to storing files on a flash drive, and I remember many occasions when I would forget the USB and not have access to those files that I needed. Cloud computing allows you to access your data as long as you have an internet connection.
Hiroko Nishimura, a cloud computing instructor for Lynda explains the process of storing and having access to information for an organization, before the idea of the cloud:
“In the traditional way, you would have to go through the procurement process at your work to find an appropriate server with all the necessary bells and whistles. You would then have to make sure the capacity you’re purchasing isn’t too much, or too little. Then you have to get the quote from the manufacturer and then wrestle with the finance department to get the budget approved and device purchased. If the demands from the applications are much higher or lower than expected, you have to go back and go through the procurement process again to get a more appropriate server. Your department or company needs to have the funds to then purchase the equipment outright.
Cloud computing allows you to pay to use only as much server space and capacity as you need at that moment. When you need more or less, you can adjust the rented capacity and your monthly bill will adjust along with it. Instead of a large overhead bill on purchasing a piece of hardware that may or may not even match your needs, you get a monthly statement billing you only for as much as you used last month. It allows for increased flexibility and affordability because you are charged only for what you consume, when you consume. This allows what used to only be possible with big corporate IT budgets to almost anyone with internet access and a few dollars.”
3. What exactly is Cloud computing?
As Rountree and Castrillo explain, there has been a lot of debate about what the cloud is. Many people think of the cloud as a collection of technologies. It’s true that there is a set of common technologies that typically make up a cloud environment, but these technologies are not the essence of the cloud. The cloud is actually a service or group of services. This is partially the reason that the cloud has been so hard to define. The National Institute of Standards and Technology (NIST) shares the technical definition as: “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (for example, networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
Cloud computing is a paradigm that allows on-demand network access to shared computer resources. It is a way for managing, storing and processing data online via the Internet. (Rountree and Castrillo, 2014). Through cloud computing services you have instantaneous access to computational, storage and software using the Internet.
Arun Chandrasekaran, research manager at Frost & Sullivan says that, “There is a growing awareness among consumers and enterprises to access their information technology (IT) resources extensively through a “utility” model, a development broadly called “Cloud Computing.” Cloud represents the next wave in the computing industry, as it strives to eliminate inherent inefficiencies in the existing IT architecture and deliver “IT as a service” to the end-users.”
3.1 Design Principles of Cloud Computing
In order to understand the Cloud, we need to take a look at the design principles of “Cloud Computing”. That is essential in trying to “de-blackbox” this concept. Irvine explains that many of the computing systems that we use every day are now integrated on platforms (a systems architecture for data, communications, services, and transactions) designed for convergence (using combinatorial principles for making different systems and technologies interoperable) able to exchange and make use for data, information, and AI/ML data analytics.
For organizations and business on the supply-side of information and commercial services, subscribing to a Cloud Service provides one bundle or suite of Web-deliverable services that can be custom-configured for any kind of software, database, or industry-standard platform (e.g., the IBM, Amazon AWS, and Google Cloud services).
Internet-based computing continues to scale and extend to many kinds of online and interactive services. Many services we use every day are now managed in Cloud systems with an extensible “stack” architecture (levels/layers) all abstracted out of the way from “end users” (customers, consumers) — email, consumer accounts and transactions (e.g., Amazon, eBay, Apple and Google Clouds for data and apps), media services (e.g., Netflix, YouTube, Spotify), and all kinds of file storage (Google app files) and platforms for Websites, blogs, and news and information.
Sridhar, in his article published in the Internet Protocol Journal explains some of the characteristics of a cloud-computing environment. As he mentions, not all characteristics may be present in a specific cloud solution.
Cloud computing characteristics include:
- Elasticity and scalability: Cloud computing gives you the ability to expand and reduce resources according to your specific service requirement. For example, you may need a large number of server resources for the duration of a specific task. You can then release these server resources after you complete your task.
- Pay-per-use: You pay for cloud services only when you use them, either for the short term (for example, for CPU time) or for a longer duration (for example, for cloud-based storage or vault services).
- On demand: Because you invoke cloud services only when you need them, they are not permanent parts of your IT infrastructure—a significant advantage for cloud use as opposed to internal IT services. With cloud services there is no need to have dedicated resources waiting to be used, as is the case with internal services.
- Resiliency: The resiliency of a cloud service offering can completely isolate the failure of server and storage resources from cloud users. Work is migrated to a different physical resource in the cloud with or without user awareness and intervention.
- Multitenancy: Public cloud services providers often can host the cloud services for multiple users within the same infrastructure. Server and storage isolation may be physical or virtual—depending upon the specific user requirements.
- Workload movement: This characteristic is related to resiliency and cost considerations. Here, cloud-computing providers can migrate workloads across servers—both inside the data center and across data centers (even in a different geographic area). This migration might be necessitated by cost (less expensive to run a workload in a data center in another country based on time of day or power requirements) or efficiency considerations (for example, network bandwidth). A third reason could be regulatory considerations for certain types of workloads.
3.2 The Cloud Architecture
In order to better understand Cloud computing, we will look at the four Cloud Deployment Models:
- Public – All the systems and resources that provide the service are housed at an external service provider
- Private – The systems and resources that provide the service are located
internal to the company or organization that uses them
- Community – Community clouds are semi-public clouds that are shared between members of a select group of organizations.
- Hybrid – A hybrid cloud model is a combination of two or more other cloud models
Cloud computing provides different services based on three delivery configurations. When they are arranged in a pyramid structure, they are in the order of SaaS, PaaS, and IaaS.
- SaaS or Software-as-a-Service — This is the layer the end-users face and it provides the functionality these users demand: social media communication, collaboration on documents, catching a taxi or booking a room for a night. This layer offers a limited set of functionalities and literally no control over the computing resources. Nevertheless, the end users get what they came for — functionality.
- PaaS or Platform-as-a-Service — an underlying level of APIs and engines allowing the developers to run their apps. This is a layer where the AWS or Azure users leverage the platform functions (like the latest batch of tech AWS introduced during their re:Invent week 2017). This level of the cloud pyramid allows the developers configure the resources needed to run their apps within the limits set by the cloud platform. This level demands to have some understanding of the processes and structure of your cloud, at least to be able to tick the appropriate boxes in the dashboard of said cloud service provider (CSP).
- IaaS or Infrastructure-as-a-Service — the lowest level of the cloud services, where the DevOps engineers work with the tools like Terraform, Docker, and Kubernetes to provision the servers and configure the infrastructures, processes, and environments, enabling the developers to deploy their software, APIs, and services. This layer might work with the hardware provided by cloud service providers like AWS or GCP or with on-prem bare metal Kubernetes clusters running in private or hybrid clouds. This level provides the most capabilities (like load balancing, backups, versioning and restoration of an immutable infrastructure) yet requires the most skills to be operated correctly.
Now that we have a better understanding of Cloud Computing, let’s look at some companies that offer Cloud Computing services:
iCloud – Cloud from Apple is for Apple products. You can backup and store everything from multimedia to documents online. The content is then smoothly integrated onto your devices.
Amazon’s AWS – When you talk about companies using cloud computing, Amazon Web Services leads the pack. It offers IaaS and PaaS to all their customers.
Google Cloud – This cloud platform is universal for Google’s enormous ecosystem and for other products such as Microsoft Office. It provides storage of data and collaboration along with other services that are included in their cloud computing suite.
Microsoft Azure – Offered by Microsoft, it provides SaaS, PaaS, and IaaS for its software and developer tools. If you have used Office 365, then you have used SaaS.
IBM Smart Cloud – This offers private, public, and hybrid distribution platforms providing a full range of SaaS, PaaS, and IaaS cloud computing services for businesses. The pay as you go platform generates profits for IBM.
3.3 Advantages of cloud computing
There are six major advantages of cloud computing:
- You can trade capital expenses for variable expenses,
- Benefit from massive economies of scale,
- Stop guessing about capacity,
- Increase speed and agility,
- Stop spending money running data centers, and
- You can go global in minutes.
You no longer have to worry about buying too little or too much of something, and you only pay as you go based on the serviced that you need.
3.4 Implications on cloud-based systems
Cloud-computing technology is still evolving. Even though Cloud computing changed the way that we access, compute and store information using the Internet, there are some major concerns that need to be considered and kept in mind when using cloud-based services from different platform that over this system. Some of the major concerns that Sridhar explains are:
- Security: Security is a significant concern for enterprise IT managers when they consider using a cloud service provider. Physical security through isolation is a critical requirement for private clouds, but not all cloud users need this level of investment. For those users, the cloud provider must guarantee data isolation and application security (and availability) through isolation across multiple tenants. In addition, authentication and authorization of cloud users and encryption of the “network pipe” from the cloud user to the service provider application are other factors to be considered.
- Privacy: If a client can log in from any location to access data and applications, it’s possible the client’s privacy could be compromised. Cloud computing companies will need to find ways to protect client privacy. One way is to use authentication techniques such as user names and passwords. Another is to employ an authorization format — each user can access only the data and applications relevant to his or her job.
- Cloud-to-cloud and Federation concerns: Consider a case where an enterprise uses two separate cloud service providers. Compute and storage resource sharing along with common authentication (or migration of authentication information) are some of the problems with having the clouds “interoperate.” For virtualized cloud services, virtual machine migration is another factor to be considered in federation.
- Legal and regulatory concerns: These factors become important especially in those cases involving storing data in the cloud. It could be that the laws governing the data are not the laws of the jurisdiction where the company is located. Does the user or company subscribing to the cloud computing service own the data? Does the cloud computing system, which provides the actual storage space, own it? Is it possible for a cloud computing company to deny a client access to that client’s data?
Because of the nature of these services and the implications that come with that, companies, law firms, businesses and universities are debating these and other concerns about the nature of cloud computing and what should be done to address these concerns.
Cloud computing is present in many aspects of our daily lives as we utilize internet for work, school, and personal life. We check emails, post on social media, share documents via online file sharing services, stream hours and hours of videos, and use cloud-based car navigation apps. Even though the media uses the Cloud as a buzzword, referring to a new technology, we need to keep in mind that the concept of cloud computing was firstly used in the 1960s, with the development of mainframe computers, accessed by dump terminals.
With the developments of virtualization we changed the way that computers and devices communicated with each-other, pulling together multiple servers, and using all of their compute and storage resources together as if we’re using one extremely large server. While in the past, the amount of resources you could link was limited by what was in your physical data center, with cloud computing, you have the ability to access as much resources as the service provider can give you.
With the internet, there is so much potential computing power. It’s almost as though we’re back in the 60s, with our laptops serving as the dump terminals and our cloud computing service providers hosting the mainframe computers. Instead of connecting to the mainframe computer in the data center on the same floor, we use the internet to connect to the countless servers linked by hypervisors through big service providers, like Amazon Web Services, Microsoft Azure, and Google Cloud. Cloud computing changed the way that we access, compute and store information via Internet. Cloud computing as a technology is still evolving and there are some major concerns in terms of privacy and security, but cloud computing adds a lot of value as a solution for several IT requirements.
Bruin, D. Boudewijn & Luciano Floridi, “The Ethics of Cloud Computing,” Science and Engineering Ethics 23, no. 1. February 1, 2017: 21–39.
Chandrasekaran, Arun “Cloud computing and market insight” Frog and Sullivan. 2010 Available at http://www.frost.com/prod/servlet/market-insight-print.pag?docid=207327187
Ebbers, Mike; O’Brien, W.; Ogden, B. . “Introduction to the New Mainframe: z/OS Basics” (PDF). 2006. IBM International Technical Support Organization.
How Cloud buzz has conquered media. 2019. Available at https://royal.pingdom.com/how-cloud-buzz-has-conquered-media/
Irvine, Martin. What is Cloud Computing? AI/ML Applications Now Part of Cloud Services?
Nishimura, Hiroko. “Design principles of cloud computing”. Lynda Available at https://www.lynda.com/Amazon-Web-Services-tutorials/Design-principles-cloud-computing/808676/5036857-4.html
NIST Working Definition of Cloud Computing, http://csrc.nist.gov/groups/SNS/cloud-computing/index.html
Roundtree, Derrick & Ileana Castrillo. The Basics of Cloud Computing: Understanding the Fundamentals of Cloud Computing in Theory and Practice. Amsterdam; Boston: Syngress / Elsevier, 2014.
Ruparelia B. Nayan. Cloud Computing Cambridge, MA: MIT Press, 2016
Sridhar, T. Cloud Computing – A Primer – The Internet Protocol Journal, Volume 12, No.3. 2016 Available at https://www.cisco.com/c/en/us/about/press/internet-protocol-journal/back-issues/table-contents-45/123-cloud1.html
Strickland, J. How Cloud Computing Works. 2018. Available at https://computer.howstuffworks.com/cloud-computing/cloud-computing3.htm
Vladimir Fedak. The Medium, What is the Cloud Computing Pyramid: The layers of DevOps Services – https://medium.com/@FedakV/what-is-the-cloud-pyramid-the-layers-of-devops-services-730ac137e8b8
The Cloud Architecture: The Cloud Computing reference model (2017) Available at https://cloudman.fr/2017/10/31/the-cloud-computing-reference-model/