Assoc. Professor Bela Stantic Cloud computing Assoc. Professor Bela Stantic Slide 1
Cloud computing Cloud computing is the latest evolution of Internet-based computing. The potential benefits of cloud computing are overwhelming. However, attaining these benefits requires that each aspect of the cloud platform support the key design principles of the cloud model. One of the core design principles is dynamic scalability, or the ability to provision and decommission servers on demand. Unfortunately, the majority of today’s database servers are incapable of satisfying this requirement.
Basic Cloud Characteristics “No-need-to-know” : in terms of the underlying details of infrastructure, applications interface with the infrastructure via the APIs. “Flexibility and elasticity:” allows these systems to scale up and down at will utilising the resources of all kinds CPU, storage, server capacity, load balancing, and databases “Pay as much as used and needed:” type of utility computing and the “always on!, anywhere and any place” type of network-based computing. Cloud are transparent to users and applications, they can be built in multiple ways: branded products, proprietary open source, hardware or software, or just off-the-shelf PCs. In general, they are built on clusters of PC servers and off-the-shelf components plus Open Source software combined with in-house applications and/or system software.
Evolving Cloud Database Requirements Cloud database usage patterns are evolving, and business adoption of these technologies accelerates that evolution. Initially, cloud databases serviced consumer applications. These early applications put a priority on read access, because the ratio of reads to writes was very high. Delivering high-performance read access was the primary purchase criteria. However, this is changing. Consumer-centric cloud database applications have been evolving with the adoption of Web 2.0 technologies. User generated content, particularly in the form of social networking, have placed somewhat more emphasis on updates. Reads still outnumber writes in terms of the ratio, but the gap is narrowing. With support for transactional business applications, this gap between database updates and reads is further shrinking. Business applications also demand that the cloud database be ACID compliant: providing Atomicity, Consistency, Isolation and Durability.
The Achilles Heel of Cloud Databases Dynamic scalability—one of the core principles of cloud computing—has proven to be a particular problem for databases. The reason is simple; most databases use a shared-nothing architecture. The shared-nothing architecture relies on splitting (partitioning) the data into separate silos of data, one per server.
Are Replicated Tables the Answer? Since data partitioning and cloud databases are inherently incompatible, Amazon, Facebook and Google have taken another approach to solve the cloud database challenge. They have created a persistence engine—technically not a database—that abandons typical ACID compliance in favor replicated tables of data that store and retrieve information while supporting dynamic or elastic scalability. Facebook offers BigTable, Amazon has SimpleDB and Facebook is working on Cassandra. However, they are not a replacement for a real database, and they do not address corporate cloud computing requirements.
The Shared-Disk Database The Shared-Disk Database Architecture is Ideal for Cloud Databases The database architecture called shared-disk, which eliminates the need to partition data, is ideal for cloud databases. Shared-disk databases allow clusters of low-cost servers to use a single collection of data, typically served up by a Storage Area Network (SAN) or Network Attached Storage (NAS). All of the data is available to all of the servers, there is no partitioning of the data. As a result, if you are using two servers, and your query takes .5 seconds, you can dynamically add another server and the same query might now take .35 seconds. In other words, shared-disk databases support elastic scalability. The shared-disk DBMS architecture has other important advantages—in addition to elastic scalability—that make it very appealing for deployment in the cloud.
Advantages of Cloud Computing Lower computer costs: You do not need a high-powered and high-priced computer to run cloud computing web-based applications. Your desktop PC does not need the processing power or even hard disk as no software programs have to be loaded and no document files need to be saved. Improved performance: Computers in a cloud computing system boot and run faster because they have fewer programs and processes loaded into memory. Reduced software costs: you can get most of what you need for free(?)!, such as the Google Docs suite. Better than paying for similar commercial software(?)
Advantages of Cloud Computing Instant software updates: you are no longer faced with choosing between obsolete software and high upgrade costs. Improved document format compatibility. You do not have to worry about the documents you create on your machine being compatible with other users' applications or OS. Unlimited storage capacity: Cloud computing offers virtually limitless storage.
Advantages of Cloud Computing Increased data reliability: Unlike desktop computing, a computer crashing in the cloud should not affect the storage of your data. Considering that the few individual desktop PC users back up their data on a regular basis, cloud computing is a data-safe computing platform! Universal document access: you do not take your documents with you, they stay in the cloud, and you can access them whenever you have a computer and an Internet connection
Advantages of Cloud Computing Easier group collaboration: Sharing documents leads to better collaboration. Device independence. Changes to computers, applications and documents follow you through the cloud. You can move to a portable device, and your applications and documents are still available.
Disadvantages of Cloud Computing Requires a constant Internet connection: Since you use the Internet to connect to both your applications and documents, if you do not have an Internet connection you cannot access anything, even your own documents. Does not work well with low-speed connections: Web-based applications require a lot of bandwidth to download, as do large documents. Features might be limited: Many web-based applications simply are not as full-featured as their desktop-based applications (Microsoft PowerPoint/Google Presentation's)
Disadvantages of Cloud Computing Can be slow: Even with a fast connection, web-based applications can be slower than desktop PC as everything has to be sent back and forth from your computer to the cloud. Stored data might not be secure: All your data is stored on the cloud. The questions is how secure is the cloud? Stored data can be lost: Theoretically, data stored in the cloud is safe, replicated across multiple machines. But if your data goes missing, you have no physical or local backup.
Disadvantages of Cloud Computing General Concerns: Each cloud systems uses different protocols and different APIs, may not be possible to run applications between different cloud based systems Use of cloud computing means dependence on others and that could possibly limit flexibility and innovation: The biggest Internet companies like Google and IBM, may monopolise the market. Some argue that this use of supercomputers is a return to the time of mainframe computing that the PC was a reaction against. There are also issues relating to policy and access: If your data is stored abroad whose policy do you adhere to? What happens if the remote server goes down or bankrupt, how will you then access files? There have been cases of users being locked out of accounts and losing access to data, etc
Conclusion Whether you are assembling, managing or developing on a cloud computing platform, you need a cloud-compatible database. Shared-nothing databases require data partitioning, which is structurally incompatible with dynamic scalability, a core foundation of cloud computing. The shared-disk database architecture, on the other hand, does support elastic scalability. It also supports other cloud objectives such as lower costs for hardware, maintenance, tuning and support.