Key Technologies of Cloud Computing
- (Geneva Lake, Switzerland - Alvin Wei-Cheng Wong)
- Overview
Cloud systems and technologies refer to the broad range of services and infrastructure that enable computing resources to be accessed and utilized over the internet, rather than on local devices or servers. This includes things like storage, processing power, databases, and applications, all delivered as a service.
When the Internet was in its infancy the word 'cloud' was used as a metaphor to describe how the complex telephone networks connected. Cloud is a model of computing where servers, networks, storage, development tools, and even applications (apps) are enabled through the Internet.
Service-Oriented Architecture (SOA) and cloud virtualization are two key technologies at the heart of cloud computing. SOA enables modularity and reusability of software components, while virtualization allows multiple virtual machines to run on a single physical server, maximizing efficiency.
- Service-Oriented Architecture (SOA): SOA is a design pattern that structures applications as a collection of reusable services. Each service performs a specific task and can be combined with other services to create new applications or automate business processes. SOA is a foundational element in cloud computing, enabling the development of scalable and flexible cloud-based applications.
- Cloud Virtualization: Virtualization allows multiple virtual machines (VMs) to run on a single physical server, sharing its resources. A hypervisor acts as a layer between the physical hardware and the VMs, managing their access to resources. Virtualization is crucial for cloud computing, enabling the delivery of on-demand computing resources (like servers, storage, and networking) as a service, notes an article on cloud computing.
- Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA) enables reusable and interoperable software components through standardized service interfaces. This approach allows for rapid integration of services into new applications, eliminating the need for developers to recreate or adapt existing functionality. By using common interface standards and architectural patterns, SOA promotes efficiency and flexibility in software development.
Benefits:
- Reduced Redundancy: SOA avoids redundant development efforts by allowing different applications to utilize the same services.
- Simplified Integration: Common interface standards and architectural patterns facilitate the integration of services into new applications, simplifying the development process.
- Enhanced Interoperability: SOA promotes interoperability between different systems and applications by enabling them to communicate through standardized service interfaces.
- Increased Flexibility and Adaptability: SOA's modular approach allows for easier updates and modifications to individual services without impacting other parts of the system.
- Faster Development Cycles: By leveraging reusable services, developers can accelerate the application development process.
- Improved Maintainability: SOA's modular structure makes it easier to maintain and troubleshoot individual services, reducing the overall impact on the system.
- Virtualization
Virtualization is the foundational technology enabling cloud computing. It involves software that manipulates hardware, creating virtualized resources like servers, storage, and networks. Cloud computing, on the other hand, refers to the services delivered using these virtualized resources over the internet. Without virtualization, cloud computing, as we know it, would not be possible.
A company might use virtualization to consolidate multiple physical servers into fewer virtual servers, improving resource utilization. This same virtualization technology is then used by a cloud provider to offer virtual machines as a service to their customers.
While virtualization focuses on creating virtualized environments from physical hardware, cloud computing is about delivering services (like computing power, storage, and applications) using those virtualized environments. Cloud computing relies on virtualization to achieve its scalability, flexibility, and cost-effectiveness.
Benefits:
- Virtualization as a Building Block: Virtualization allows a single physical server to host multiple virtual machines (VMs), each acting like a separate server with its own operating system and applications. This is achieved through software called a hypervisor, which manages the resources of the physical machine and allocates them to the VMs.
- Cloud Computing as the Service Delivery Model: Cloud computing leverages virtualization to offer on-demand, scalable, and cost-effective computing resources and services over the internet. Instead of users purchasing and managing their own hardware, they can access these resources as a service from a cloud provider.
- The Relationship: Virtualization provides the underlying infrastructure for cloud computing. It's like the engine of a car, while cloud computing is the service of transportation that the engine powers. Cloud providers use virtualization to create the virtualized environments (like VMs) that form the basis of their cloud services.
[More to come ...]