Topics 1. What is Architecture? 2. Computing Paradigms 3. What is Cloud Computing?
Images courtesy of Majd F. Sakr or from Wikipedia unless otherwise noted.
What is Architecture? architecture(n): the complex or carefully designed structure of something Specifically in computing: the conceptual structure and logical organization of a computer or computer-based system: a client/ server architecture - http://oxforddictionaries.com/
What is System Architecture? System Architecture can refer to: – A conceptual model that defines the structure and behavior of a system, including descriptions of the components of a system and their relationships. – A set of methods to design and build the architecture of a system. – A body of knowledge for “architecting” systems while meeting requirements.
What is a System? • A system consists of the physical plant, hardware, software, and communications channels that make up a computer operating and application environment. • In this class, we’ll study the design of – – – – – –
Space, power, cooling Switches, routers, cabling Servers, load balancers, firewalls Databases, non-database storage Applications User interfaces
• with a goal of understanding the architecture of modern cloud computing systems.
Computing Paradigms Personal Computing
Personal Computing • Computing by an end-user with no intermediary computer operators. • Personal computers can be – Desktops – Laptops – Tablets
• Local operations only – Local hardware and storage – Local maintenance – Very low utilization
Mobile Computing • Computers that are expected to be transported during normal usage. • Features – Intermittent connectivity – Limited bandwidth – Limited processing and storage
Parallel Computing In parallel computing, large problems are divided into smaller parts and computed simultaneously on multiple different processors.
Parallel Computing Parallel computing processors communicate using memory shared between processors.
Distributed Computing A distributed system consists of multiple independent computers that interact with each other in order to solve a single problem.
(a) (b) are distributed systems (c) is a parallel system
Ubiquitous Computing • Computing integrated into everyday objects and activities; there are no objects that are specifically known as computers; people may not be aware they are interacting with computers. • Also known as – Pervasive Computing – Ambient Intelligence
Autonomic Computing • Self-managing computer systems that make decisions and adapt to unpredictable problems based on high level policies set by humans. • Features – Self-Configuring – Self-Healing – Self-Optimization – Self-Protecting
• Inspired by Autonomic Nervous System
Super Computing • Supercomputers are one of a kind computers that are among the fastest computers currently in operation. • Fastest supercomputer since 1993
Cluster Computing • A cluster computer is a group of computers working together in such a way as to appear to function as a single computer system. • Cluster types – High availability clusters – Load-balancing clusters – Compute clusters
Grid Computing • Grid computing refers to the combination of computer resources from multiple administrative domains to reach a common goal. • Features – Loosely coupled – Heterogeneous – Geographically dispersed
Utility Computing Utility Computing is the packaging of computing resources, such as computation, storage and services, as a metered service similar to a traditional public utility like water, gas, or electric.
What is Cloud Computing?
What is Cloud Computing? "The computer industry is the only industry that is more fashion-driven than women's fashion. Maybe I'm an idiot, but I have no idea what anyone is talking about. What is it? It's complete gibberish. It's insane. When is this idiocy going to stop?"
Larry Ellison, CEO Oracle
What is Cloud Computing? "When people talk about cloud computing, they're talking just about taking some stuff, putting it outside the firewall, and perhaps putting it on servers that are also shared or storage systems."
Steve Ballmer, CEO Microsoft
What is Cloud Computing?
What is Cloud Computing? Cloud computing combines aspects of – Autonomic computing – Grid computing – Utility computing
using virtualization and web interfaces to provide – On demand “just in time” computing resources w/ – No upfront cost using a pay as you go model – That is accessible via a web browser or web services API
History of Cloud Computing "If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and important industry." – John McCarthy, MIT Centennial in 1961
Cloud Computing Advantages • • • • •
Zero initial capital expenditure to start Can add a new server in minutes Can decommission server in seconds Can scale capacity upwards as much as needed Don’t pay for unused space, power, hardware – If you maintain servers, you have to have enough for your peak needs – If servers are in the cloud, add servers when needed for peak, but otherwise keep them off
Key Points • System architecture studies the combination of and interactions between of – Computer architecture (hardware) – Application architecture (software) – Network architecture (communications)
• Cloud computing provides – On demand computing resources and requires – No upfront costs as it uses a pay as you go model – That is accessible via the web