- Shopping Bag ( 0 items )
INFORMATION IN THIS CHAPTER:
What Is Cloud Computing?
The Oracle Cloud
Legacy Client/Server Databases and Applications
IT departments at many companies today are maintaining systems that were developed over the past 40 years. Initially, these systems were based on monolithic architectures using languages such as Assembler, COBOL, and C, and a central server was responsible for all data processing activities. Users and clients accessed these servers via unintelligent terminals (a.k.a. dumb terminals). Many of these systems exploited the latest technologies available at the time, but were not able to evolve as technology evolved. Some of these applications are still around today and are accessed via terminal emulators.
With the advent of desktop computers, client/server computing took off in a big way in the late 1980s and early 1990s. Client/server computing helped to offload some data processing activities from central servers to client desktops. The downside of client/server computing was that IT departments had to manage hundreds, and sometimes thousands, of desktop computers to periodically update the applications that clients developed in languages such as Cþþ, PowerBuilder, Visual Basic, and Delphi. These client/server applications were attractive to users because of the rich graphical user interfaces (GUIs) they provided instead of traditional "green screens."
In the late 1990s, the next revolution in computing occurred, and it enabled users to access data and information using Internet browsers on personal computers, smartphones, and other digital devices. No other software was required on these devices to access applications over the Internet. Internet computing also heralded an era of openness and the proliferation of standards allowing seamless access to data and information over the Internet (e.g., SOAP/XML), resulting in development of service-oriented architecture (SOA) standards. Eventually, SOA became overhyped to the point that every software vendor started to claim support for SOA standards in some shape or form, even if their products had nothing to do with SOA.
Increased adoption of client/server and Internet computing architectures resulted in the proliferation of a large number of servers in data centers. Use of packaged business applications such as customer relationship management (CRM) and enterprise resource planning (ERP) also contributed to an increase in the use of siloed systems within data centers, with each application environment depending on a unique configuration of servers, storage, and software.
Over time, IT departments and organizations began to incur huge costs in terms of capital and operational expenditures to maintain these IT systems and infrastructure. They were required to anticipate future growth in demand for IT resources, and they had to plan for and acquire the necessary hardware and software and configure them accordingly. Similarly, every few years they had to plan for hardware and software upgrades to incorporate newer technology into their infrastructures. Even in difficult economic climates in which companies were forced to cut costs, IT departments received increasing pressure to trim their budgets and increase their utilization of these expensive resources. To address these concerns and challenges, in the early 2000s the concept of grid computing began to take shape. With grid computing, groups of inexpensive networked servers functioned as one large server. This meant IT departments no longer had to acquire large and expensive servers to meet existing or anticipated workload requirements. Moreover, capacity could be added to existing infrastructure by simply adding new servers and systems. Grid computing also enabled data-center consolidation via server clustering.
WHAT IS CLOUD COMPUTING?
With grid computing driving data-center consolidation and resource sharing, the need to further cut the cost of operating data centers filled with disparate systems led to an evolution known as cloud computing. Cloud computing is poised to become the next big wave in the IT revolution. The National Institute of Standards and Technology (NIST) defines cloud computing as follows:
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
The basic premise of cloud computing is that users can get access to any IT resource, including storage, CPU resources, memory, and software, over the Internet whenever they want, and can pay for their actual use of the resource rather than incurring capital and operational expenditures in order to own and operate the IT infrastructure. This computing scheme closely mimics the way households pay for utilities such as electricity and gas on metered usage. The NIST cloud computing model is composed of five unique characteristics, three service models, and four deployment models. The five characteristics associated with this model mainly enable easier availability of metered, scalable, elastic computing resources that can be provisioned via self-service and can be accessed from any thin or thick client over the network.
Cloud Computing Service Models
Cloud computing service models indicate the type of service that is being offered (i.e., hardware/software infrastructure, or application development, testing, and deployment platform, or enterprise software ready for use by subscription). The three service models that are essential components of cloud computing standards are:
Software as a Service (SaaS) Applications delivered as a service to end users over the Internet. This model is the earliest model of cloud computing in which software companies started to sell their solutions to businesses based on the number of users with a given set of service-level requirements. The major players in this field are Oracle (with its CRM on Demand solution), Salesforce.com, and Google (with its Google Apps).
Platform as a Service (PaaS) Application development and deployment platform (comprising application servers, databases, etc.) delivered as a service. Amazon Elastic Compute Cloud (EC2) and Savvis are the prominent providers of this model of cloud service.
Infrastructure as a Service (IaaS) Server, storage, and network hardware and associated software delivered as a service. Amazon EC2 is the prominent provider of this model of cloud service.
Key technologies that have enabled cloud computing in general are virtualization and clustering.
Virtualization allows users to overcome the restrictions associated with sharing physical computing resources such as servers, storage, and networks. For example, virtualization of servers allows users to run multiple operating system images on a single server. Virtualization of network infrastructure allows users to share network bandwidth by creating virtual local area networks (VLANs). Virtualization in cloud computing typically involves deploying many operating system images (virtual machines or VMs) on a single server sharing available CPU resources and memory. Being able to deploy many VMs also allows users to pay only for the resources they use instead of paying for all the installed capacity on the servers. This also facilitates monitoring of resource consumption by individual VMs for use by charge-back systems later.
Most of the virtualization software that is available today is based on hypervisor technology. IBM introduced hypervisor technology in the 1960s with a mainframe-based product called CP/CMS, which evolved into a product known as z/VM. Using hypervisor technology for server virtualization is more popular than using hardware partitioning or OS partitioning (host OS based), for the following reasons:
Ease of deployment VMs can be quickly deployed or undeployed with a click of a button.
Isolation Since each VM provides a complete image of the operating environment, including the choice of operating system and applications, it provides excellent isolation capabilities for users sharing the same servers.
Multiplatform support Hypervisor-based virtualization technologies support a wide range of platforms, making them very popular. They can also support different operating systems, unlike traditional server partitioning methods such as hardware partitioning. This is a key requirement for cloud providers because they need to support the most popular operating systems, databases, middleware, and applications.
Two types of hypervisors are available today. The first, which is the most widely used and is known as a "bare-metal" or "native" hypervisor, is directly deployed on a server. Therefore, it interacts directly with the hardware to provide virtualization support. Many software vendors, including Oracle, leverage a bare-metal hypervisor for performance reasons. The most popular virtualization software in this category is Oracle VM, VMware VSphere, Microsoft Hyper-V, and the IBM pSeries PR/SM. The second type of hypervisor, known as a "hosted" hypervisor, is deployed on top of an operating system (hosted) on a server. Products such as Oracle VirtualBox (formerly Sun), VMware Server/Client, and Microsoft Virtual PC fall into this category.
Bare-metal hypervisor-based virtualization offerings primarily differ from one another in terms of the following factors:
Hypervisor used Some vendors, such as VMware, developed their own hypervisors (VMware's is called ESX), whereas others, such as Oracle with its Oracle VM, leverage the open source Xen hypervisor as the foundation for their solution.
Full virtualization Products such as those from VMware support full virtualization; that is, they run a binary image of the OS and emulate real I/O device drivers. Other offerings that support full virtualization are KVM and Xen-HVM.
Paravirtualization Products that support paravirtualization, such as Oracle VM, run OSes that are ported to specific hardware architecture and are hypervisor-aware. As such, they use generic device drivers to perform regular system functions.
Virtualization is essential for cloud providers to be able to provide end users with computing resources at a lower cost. Virtualization also helps cloud providers to maximize utilization of resources and reduce capital expenditures by avoiding implementation of siloed IT infrastructure.
Clustering allows multiple systems to function as one large system by using software and networking technologies such as shared file systems, high-speed interconnects (for servers), and similar technology. This, in turn, helps users to scale out their applications easily by adding more systems to an existing cluster to overcome the limits of physical resources (CPU and memory) in a single server. It also makes the applications highly available by allowing them to run on multiple servers in an active-active fashion to avoid single points of failure. Grid computing, as discussed earlier, was all about clustering commercially available, off-the-shelf hardware technologies to create powerful, scalable computing infrastructure. In some ways, grid computing was an early form of cloud computing in that it ensured availability of applications and masked the servers which executed specific requests in the grid.
Cloud Computing Deployment Models
Cloud deployment models indicate how the cloud services are made available to users. The four deployment models associated with cloud computing are as follows:
Public cloud As the name suggests, this type of cloud deployment model supports all users who want to make use of a computing resource, such as hardware (OS, CPU, memory, storage) or software (application server, database) on a subscription basis. Most common uses of public clouds are for application development and testing, non-mission-critical tasks such as file-sharing, and e-mail service.
Excerpted from Migrating to the Cloud by Tom Laszewski Prakash Nauduri Copyright © 2012 by Elsevier Inc.. Excerpted by permission of SYNGRESS. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
Introduction Chapter 1: Migrating to the Cloud: Client/Server Migrations to the Oracle Cloud Chapter 2: Identifying the Level of Effort and Cost Chapter 3: Methodology and Design Chapter 4: Relational Migration Tools Chapter 5: Database Schema and Data Migration Chapter 6: Database Stored Object Migration Chapter 7: Application Migration/Porting Due to Database Migration Chapter 8: Migrating Applications to the Cloud Chapter 9: Service Enablement of Client/Server Applications Chapter 10: Oracle Database Cloud Infrastructure Planning and Implementation Chapter 11: Sybase Migrations from a Systems Integrator Perspective, and Case Study Chapter 12: Application Migration: Oracle Forms to Oracle Application Development Framework 11g Chapter 13: Application Migration: PowerBuilder to Oracle APEX Chapter 14: Challenges and Emerging Trends