What is a private cloud ? A simple Google search could yield you with a lot of answers for this simple question, but in order to build a foundation for this article, we need to start with the basics on private cloud computing.
A private cloud is a cloud computing network inside a private network. The cloud computing network will only be used inside the private network and no part of the network will be shared to public outside the network. And the private cloud network will be deployed, managed, and maintained by your IT guys itself. Most of your physical computing devices on your current infrastructure can be re-used as a part of the private cloud thereby saving money and nature by reduce the infrastructure used. A private cloud can be setup in your current infrastructure using any of the private cloud softwares, some of which are open source and some of which are not.

The most commonly used open source private cloud softwares are

  • OpenQRM
  • OpenNebula
  • Openstack
  • Eucalyptus/UEC

And the most common examples of paid/non-open source softwares/services for setting up a private cloud are

  • Microsoft Azure
  • Vmware Vcloud

And here we will be explaining the basic details about “OpenQRM”, its architecture and details on how to create a private cloud network using OpenQRM

To read more on Private clouds, Private cloud softwares like Open Nebula, Azure, Openstack, Public clouds etc, please read the posts on those topics at “sparkMycloud”

Applogic

CA-Applogic is a cloud enablement technology which can be of use for datacentres to become a cloud service provider and enterprises who wants to enable their own private cloud. It is a cloud computing platform for composing, running and scaling distributed applications. It uses advanced virtualization technologies to be completely compatible with existing operating systems, middleware and web applications. As a result, AppLogic makes it easy to move existing web applications into the cloud without modifications. AppLogic runs distributed transactional applications on arrays of commodity servers. It does not require a SAN or other expensive shared storage, and is open and vendor-neutral. It supports Linux, Windows and Solaris, and all popular open-source middleware, such as Apache, MySQL, JBoss and Ruby on Rails. A typical grid consists of 4-32 commodity servers connected in two networks: the public network for accessing the Internet and a private network. The system will look like a number of dedicated servers in a rack, and having a private Gigabit Ethernet switch between the servers. AppLogic makes it possible to run and scale web applications without the enormous expense of owning and operating scalable IT infrastructure. With AppLogic, you can host any web application on commodity servers rented on a month-to-month basis from your favorite hosting provider.

Applogic Grid Controller Interfaces

Once installed, an AppLogic grid provides two control interfaces: a Web-based management tool and a command-line interface. The AppLogic dashboard is the primary interface to a grid. It displays the hardware configuration and the current status of the grid, shows how many applications are currently running and how much resources are allocated to them, displays the list of currently installed applications and allows you to create, configure and manage applications. A typical dashboard looks like the following.

The Dashboard tab displays the grid status, high availability status, the number of currently running applications, amounts of resources reserved for them etc. In addition, this tab displays system maintenance messages and the network settings for the grid, including available IP addresses that can be used for applications running on this grid. The Applications tab shows you the list of installed applications on your grid, so you can select the application you would like to edit. This screen also allows you to manipulate those applications.

Disposable Infrastructure Manager

AppLogic replaces the expensive and difficult to integrate IT infrastructure including firewalls, load balancers, servers and SANs with disposable virtual infrastructure that is instantiated on demand and deployed on the grid as part of the application. In AppLogic, all infrastructure required to deploy and scale a web application is assembled visually from a catalog of pre-integrated and pre-tested virtual appliances. Each appliance runs in its own virtual environment that boots it's own Linux OS and appears as a separate physical server to the software that runs inside the appliance. AppLogic's catalog appliances are built using leading open-source infrastructure including Fedora Linux, Apache, MySQL, JBoss and many other packages. Users can modify catalog appliances or build their own appliances from scratch.

We can use infrastructrue editor in web interface to create and modify the disposable infrastructure for your applications. The same editor is used to create new application and edit an existing application. The disposable infrastructure manager handles the infrastructure for each Applogic application which includes virtual appliances, catalogs etc.

An AppLogic component is called a virtual appliance. Unlike any other component model in existence, each instance of a virtual appliance executes in a completely virtualized environment, boots its own operating system, application services and other software. An AppLogic catalog is a set of disposable infrastructure appliances, such as gateways, firewalls, load balancers, web servers, application servers, database servers, file servers, mail servers and so on. The main assembly of an application ties them together into a logical structure capable of running the application. This includes all information required to configure each appliance and tie them together .

AppLogic Infrastructure Editor

The Web interface lets you drag and drop components such as databases, and input and output interfaces, and then connect component outputs to inputs. You also define the parameters of your application (input and output IP address, mail server name and whatever other parameters are defined), the maximum and minimum number of servers the application is to run on, as well as the maximum and minimum processors, amount of RAM and bandwidth.

Key Features

Applogic has got certain unique features that make it special. As mentioned earlier AppLogic replaces expensive and difficult to integrate IT infrastructure such as firewalls, load balancers, servers and SANs with pre-integrated and pre-tested virtual appliances. The infrastructure is essentially disposable; it's instantiated on the grid when the application is run, maintained while needed, and disposed of when the application exits. AppLogic packages all code, data and infrastructure required to run a scalable web application into a single logical entity that can be started, stopped, managed, copied or even exported to another grid without modifications. AppLogic aggregates commodity servers into a scalable grid that is managed as a single system using a browser or secure shell. You can add or remove servers on the fly, as the gird is running, monitor the hardware, manage user credentials, reboot servers, install software, build virtual appliances, backup the system, repair damaged storage volumes, inspect logs and perform all other management tasks from a single point of control, all while the system is running. AppLogic applications are fully virtualized and can be scaled easily from a fraction of a server to many servers. CA 3Tera AppLogic implements many features that improve availability of the system and the applications that run on it. These range from storage mirroring across multiple servers which ensures that a server failure never results in data loss, to the ability to recover from a failure of the grid controller, to high-availability features built into the catalog appliances.

AppLogic has a built-in system for metering the resources used by each application. The system tracks and reports all significant events in the application lifecycle at which hardware resource use can increase or decrease, and the exact amount of memory, CPU and bandwidth assigned to the application on each of those events. AppLogic includes a sophisticated monitoring system that provides unprecedented visibility into the operation of the web applications running on the grid. The system combines runtime information from the hardware, the virtual infrastructure and the applications themselves and makes this data available to the operator through an intuitive visual interface.

Provisioning, running and managing enterprise scale application infrastructure under AppLogic is amazingly straightforward. With AppLogic enterprises can increases efficiency by removing the intensive process of application configuration, thus enabling application developers to quickly develop, test, and deliver new IT services to the enterprise. This is definitely a product to watch.

OPENSTACK

Openstack is a stack of feature rich cloud computing technologies. Within a short period of its launch Openstack has attained a significant status in the field of cloud computing. Openstack have series of technical projects to leverage the growth of various parts of cloud infrastructure. Even though Openstack was found by Rackspace and NASA, global open source community have a large contribution to the present Openstack which is massively scalable and have a stack of standard cloud technologies. Openstack falls under Apache.2.0 licence, that means it have all the benefits of an opensource product. So you won’t be under the arms of any proprietary vendors and you can extend the code for your business needs. An open source cloud solution that is hardware agnostic like Openstack can save you money, energy and time.

  • Openstack currently have three core projects:
  • Openstack compute (Nova)
  • Openstack object storage (Swift)
  • Openstack image service (Glance).

Openstack COMPUTE

Nova consists of seven main components. The Cloud Controller component will interact with all other components. API Server provides the Web services front end for the cloud controller. Compute Controller provides compute server resources, and the Object Store component provides storage services. Auth Manager provides authentication and authorization services. Volume Controller provides fast and permanent block-level storage for the compute servers. Network Controller provides virtual networks to enable compute servers to interact with each other and with the public network. Scheduler selects the most suitable compute controller to host an instance.

Features

  • Django based web control panel is available along with Openstack Compute which can be used as a customer facing control panel. Effective Virtualization of server resources like CPU, memory, disk space and Network interfaces which ensures improved utilization and automation of resources for greater cost efficiencies.
  • It supports almost all popular Hypervisors as the back-end core virtualization technology such as Xen/XenServer KVM Hyper-V VMWare/ESX Linux Containers (LXC) QEMU UML
  • Manage LAN, DHCP, VLAN, provisioning of IPs. Virtual machines can be grouped with VLAN and can be isolated when the security is a factor.
  • Highly scalable and reliable ensuring increased system uptime.
  • Improved VM image management. Store, import, share and create images.
  • Security Groups control access to VM instances by creating separation between resource pools and also ensure security by user, role and project
  • Virtual machines CLI can be accessed through web using VNC proxy.
  • Advanced Scheduler for VM provisioning.
  • Allocate, track and limit resources.
  • Live VM management (Instance). Run, reboot, suspend, resize, and terminate instances standard API s for connecting Compute with custom applications.
  • EC2 APIs allows end user continue to use legacy EC2 APIs to manage their setup.
  • Number of Block Storage options are available for add-on storages (non bootable) like AoE(ATA over Ethernet, IET iSCSI, LVM volume RBD, SheepDog, HP SAN
  • Openstack comes under OSI Apache 2 licence. It’s fully opensource and there isn’t any viral licencing for Openstack.

Openstack Object Storage(Swift)

Openstack object storage is openstack software for creating scalable, redundant and reliable storage using standard hardwares. By clustering hardwares, storage can be made to petabyte size. It’s not a file system like storage or realtime data storage but can be used as long term storage for huge static data like virtual images, photo libraries email storage and backup archiving. Swift doesn’t have any central control, it uses a distributed architecture which provides more stability scalability and redundancy.

A storage cluster can be made with Object storage with multiple hardwares. Cluster can be elaborated by adding nodes horizontally or vertically. Data can be written to multiple hardwares, and object storage software ensures the data replication and integrity across the cluster. Object storage can make the data ‘Highly available’ across the node failures. If a node fails object storage will replicate the highly available data stored on other node.

Features

  • File storage and management can be done through APIs, which can be customized to suit end user environment.
  • Data control through private and public containers.
  • Highly scalable read/write access .Content can be directly served from storage.
  • Built in replication and high availability. Data object are stored on multiple hardwares for redundancy.
  • Easily scalable storage architecture. Multi-dimensional storage scalability. Scale storage vertically and horizontally.
  • Works along with standard hardwares. Lower cost per GB.
  • Allow efficient random read/write even without RAID.
  • Built-in management utilities like Acct. Management: Create, add, verify, delete users, Container Management: upload, download, verify Monitoring: Capacity, Host, Network, Log trawling, cluster health
  • Easy CLI administration through VNC proxy.

Openstack Image Service (Glance)

The function of glance is to store, retrieve, register and deliver services for virtual images. Glance API server and Glance Registry server are the main components in glance architecture. API server have a standard REST interface for querying details and metadata of the virtual images stored in different types backend storages. The backend stores that Glance can work with are Openstack storage service (Swift), File system, Amazon’s S3 service and HTTP(images that are available via HTTP somewhere on the Internet).With Image service ,users can register new virtual disk images , fetch the details of publicly available virtual disk images and use image library for listing the virtual image disks. Image metadata made available through Glance can be stored in image registries. A registry server is any service that publishes image metadata that belongs to the Glance Registry.

Openstack supports large variety of virtual disks like.

Features

  • Raw Machine (kernel/ramdisk outside of image,(AMI)
  • VHD (Hyper-V)
  • VDI (VirtualBox)
  • qcow2 (Qemu/KVM)
  • VMDK (VMWare)
  • OVF (VMWare, others)

It also has built in management utilities like

  • Account management: Used to Create, add, verify, and delete users
  • Container Management: Used to upload, download, verify
  • Monitoring: used for monitoring Capacity, Host, Network, Log trawling, cluster health.

AZURE

The Windows Azure Platform is a Microsoft cloud platform used to build, host and scale web applications through Microsoft data centers. Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud computing strategy, along with their software as a service offering, Microsoft Online Services. The platform consists of various on-demand services hosted in Microsoft data centers and commoditized through three product brands. These are Windows Azure (an operating system providing scalable compute and storage facilities), SQL Azure (a cloud-based, scale-out version of SQL Server) and Windows Azure AppFabric (a collection of services supporting applications both in the cloud and on premise). Operating system called Windows Azure serves as a runtime for the applications and provides a set of services that allows development, management and hosting of applications off-premises.

Windows Azure

Windows Azure has three core components: Compute, Storage and Fabric.

As the names suggest, Compute provides a computation environment with Web Role, Worker Role, and VM Role while Storage focuses on providing scalable storage (Blobs, non-relational Tables, and Queues) for large-scale needs. Relational Database functionality is offered through SQL Azure, which is a scalable version of SQL Server that runs on the Azure platform.

Fabric (Windows Azure Fabric) makes up the physical underpinnings of the Windows Azure platform as the network of interconnected nodes consisting of servers, high-speed connections, and switches. Conceptually, the repetitive pattern of nodes and connections suggests a woven or fabric-like nature. Compute and Storage components are part of the Fabric.

Fabric resources and applications and services running on those resources are managed by the Windows Azure Fabric Controller service. It acts as the kernel of the Windows Azure distributed cloud operating system, providing scheduling, resource allocation, device management, and fault tolerance for the nodes in the Fabric. It also provides high-level application models for intelligently managing the complete application lifecycle, including deployment, health monitoring, upgrades, and de-activation.

The Windows Azure Platform provides an API built on REST, HTTP and XML that allows a developer to interact with the services provided by Windows Azure. Microsoft also provides a client-side managed class library which encapsulates the functions of interacting with the services. It also integrates with Microsoft Visual Studio so that it can be used as the IDE to develop and publish Azure-hosted applications. Windows Azure also offers Content Delivery (CDN) services as an option. The Azure CDN enables worldwide low-latency delivery of static content from Azure Storage to end users.

Figure showing Azure cloud Structure:

Implementation

The Windows Azure platform uses a specialized operating system, called Windows Azure, to run its "fabric layer" — a cluster hosted at Microsoft's datacenters that manages computing and storage resources of the computers and provisions the resources (or a subset of them) to applications running on top of Windows Azure. Windows Azure has been described as a "cloud layer" on top of a number of Windows Server systems, which use Windows Server 2008 and a customized version of Hyper-V, known as the Windows Azure Hypervisor to provide virtualization of services.

The platform includes five services — Live Services, SQL Azure (formerly SQL Services), AppFabric (formerly .NET Services), SharePoint Services and Dynamics CRM Services — which the developers can use to build the applications that will run in the cloud. A client library, in managed code, and associated tools are also provided for developing cloud applications in Visual Studio. Scaling and reliability are controlled by the Windows Azure Fabric Controller so the services and environment do not crash if one of the servers crashes within the Microsoft datacenter and provides the management of the user's web application like memory resources and load balancing.

The Azure Services Platform can currently run .NET Framework applications compiled for the CLR, while supporting the ASP.NET application framework and associated deployment methods to deploy the applications onto the cloud platform. It can also support PHP websites. Two SDKs have been made available for interoperability with the Azure Services Platform: The Java SDK for AppFabric and the Ruby SDK for AppFabric. These enable Java and Ruby developers to integrate with AppFabric Internet services.

SQL Azure

QL Azure is a cloud-based relational database that is an extension of Microsoft SQL Server. This multi-tenant, highly scalable database runs in the Azure cloud. This cloud-based database supports the same T-SQL version of SQL as existing SQL Server databases. In addition, SQL Azure offers standard relational database features such as triggers, views, stored procedures, and indexes.

SQL Azure uses a special version of Microsoft SQL Server as backend. It provides high availability by storing multiple copies of databases, elastic scale and rapid provisioning. It exposes a subset of the full SQL Server functionality, including only a subset of the data types — including string, numeric, date and Boolean. It uses an XML-based format for data transfer. As in the case of Microsoft SQL Server, SQL Azure uses T-SQL as the query language and Tabular Data Stream (TDS) as the protocol to access the service over internet. It does not provide a REST-based API to access the service over HTTP. Microsoft recommends using ADO.NET Data Services for this purpose.

Microsoft SQL Azure extends SQL Server capabilities to the cloud. SQL Azure offers a relational database service called Microsoft SQL Azure Database, and using SQL Azure Database, you can easily provision and deploy relational database solutions. Benefits include manageability, high availability, scalability, a familiar development model, and a relational data model.

SQL Azure Database is the relational database service on the Windows Azure platform.

Windows Azure AppFabric

Windows Azure AppFabric is the feature allows cloud users to hookup on-premises services to their cloud services, to secure cloud & on-premises services with new or existing security frameworks (identity based, active directory, or otherwise), cache Internet or other content, and on top of all that build out and enable composite application integration.

Windows Azure AppFabric can be seen as an entity that interconnects on-premises solutions to Windows Azure solutions, and even Windows Azure solution to other solutions within the cloud. Windows Azure AppFabric is broken down into two main features as the service bus and access control.

AppFabric Applications

AppFabric Applications is any n-tier .NET application that spans the web, middle, and data tiers, composes with external services, and is inherently written to the cloud architecture for scale and availability. Applications that consume Windows Azure services like SQL Azure, AppFabric Caching, AppFabric Service Bus and Azure Storage are also included in this. This enables developers and ISVs to be able to leverage these technologies to build and manage scalable and highly available applications in the cloud. In addition, the goal is to help both developers and IT Pros, via the AppFabric Developer Tools and AppFabric Application Manager, respectively, to be able to manage the entire lifecycle of an application from coding and testing to deploying and managing.

Windows® Azure: A Cloud Computing Medium

Windows Azure platform can be used to develop new applications and improve the existing applications using Cloud-based technology. It allows developers to create solutions and applications in the Cloud with several programming languages. The key components of Windows Azure Services Platform include:-

  • Low-level scalable storage, computation and networking
  • SQL Services for server reporting and SQL Azure data
  • Microsoft .NET Services which are service-based implementations of familiar .NET Framework concepts, such as workflow and access control
  • Live Services provides easy way to store, share, and synchronize documents, photos, files and information on PCs, phones, PC applications, and web sites.

Vmware

 

VMware, Inc. is a company that provides virtualization solutions which was founded in 1998 and is headquartered in Palo Alto, California. Its virtualization platform products include Player for virtualization of desktops; Fusion for Intel-based Apple Macintosh computers; Workstation for software developers and enterprise IT professionals; Server, which enables virtual partitioning of a server; ESX Server, an enterprise-class virtualization platform that runs directly on the hardware; Virtual SMP that enables a virtual machine to use four physical processors simultaneously; and VMFS, which allows multiple ESX Servers to share block-based storage.

The company also provides VirtualCenter that provides a central point of control to manage a virtualized IT environment; VMotion, which allows users to move virtual machines; DRS that creates resource pools from physical servers; HA, which provides automated recovery from hardware failure; Consolidated Backup that enables LAN-free automated backup of virtual machines; Storage VMotion, which allows live migration of virtual machine disks; Update Manager that automates patch and update management; Capacity Planner, which enables VMware service providers to perform capacity assessments onsite; Converter to convert local and remote physical machines into virtual machines; Lab Manager to automate the setup, capture, storage, and sharing of multi-machine software configurations; ACE that allows desktop administrators to protect company resources against the risks presented by unmanaged desktops; Virtual Desktop Infrastructure to host individual desktops inside virtual machines running on centralized servers; Virtual Desktop Manager, a desktop management server that connects users to virtual desktops in the data center; and VMware Lifecycle Manager that provides control over the virtual environment. The following part of this article makes you more acquainted with various VMware products and their applications.

VSphere

Features

In the VMware architecture for IaaS clouds based on vSphere, the virtual machines migrations happen over the Internet. vCloud will support chunked and resumable uploads through the browser with a Java client that will also appear as a vCenter plug-in. VMware also contemplated transfer quarantine to increase security.

On paper the size of VMware vCloud can be, up to 25,000 running virtual machines / data center but with no more than 2,000 users / open consoles, and no more than 5,000 customers.

The vCloud APIs will be availabe for a number of tasks and will allow the provisioning of new vCenters (no more than 25 per data center):

  • vApps Upload/Download/Management
  • Inventory Listing
  • Catalog Management
  • Task Management
  • Automation

The figure shows the structure of cloud using VMware:

For networking, one of the most complex aspects in a IaaS cloud that supports multi-tenancy, VMware introduced the fencing technology which allows to deploy multiple, isolated VMs which can coexist despite they have identical network configurations. Fencing, which is used by every virtual lab automation (VLA) product on the market, including the VMware own Lab Manager, will be used to share the same network with multiple customers inside the same data center.

On top of that VMware supports the existence of Network Devices (NDs), which are virtual appliances offering routing, NAT and firewall capabilities.

To simplify application provisioning VMware will offer a service catalog, where end-users will be able to pick up and deploy pre-configured templates, vApps or installation media (CD/DVD ISOs and floppy images).Billing, another very complex aspects of IaaS clouds, will be managed in two ways: customers will be either charged on maximum allocation purchased (which they may or may not use during the month) for CPU, RAM and storage resources, or they will be allowed to buy pre-configured containers which are organized in sizes (small, medium, large for instance, pretty much like Amazon does for the single VMs it offers inside EC2).

VMware vFabric

vFabric is a platform to build, run and scale modern applications on-premise or in the public cloud.

  • Get application portability on-premise and in the cloud.
  • Simplify deployment and utilize system resources more efficiently.
  • Use proven runtime components, including tc Server based on Apache Tomcat, Apache Web Server, RabbitMQ and GemFire.

Optimized for Java Spring applications, the vFabric Cloud Application Platform provides a runtime platform for your Spring applications. Whether it is developer-focused capabilities such as integration with the Springsource Tool Suite (STS), unique application visibility with Spring Insight and Spring Insight Enterprise, or the Spring GemFire project that simplifies interaction with vFabric GemFire or Spring AMQP to allow Spring developers to incorporate vFabric messaging, there are a host of capabilities that is in vFabric. VMware vFabric is available in two editions, vFabric Standard and vFabric Advanced

vFabric Standard:

Designed to provide the core components for building and running custom applications on vSphere, vFabric Standard includes the capabilities that every organization requires for running their applications: from the application server optimized for vSphere, web server, data management capabilities, management optimizations for Spring-built applications and more.

vFabric Advanced:

vFabric Advanced extends the capabilities of Standard to address a broader range of workloads by including vFabric RabbitMQ messaging and by introducing a memory-optimized distributed SQL database with vFabric SQLFire. vFabric Advanced provides the full range of capabilities for building and running today's data-driven applications deployed on virtual infrastructure.

VMware Products

Desktop software

  • VMware Workstation This software suite allows users to run multiple instances of x86 or x86-64 -compatible operating systems on a single physical PC.
  • VMware Fusion provides similar functionality for users of the Intel Mac platform, along with full compatibility with virtual machines created by other VMware products.
  • VMware Player is for users without a license to use VMware Workstation or VMware Fusion. VMware offers this software as a freeware product for personal use.

Server software:

VMware markets two virtualization products for servers:

  • VMware ESX is an enterprise-level product, can deliver greater performance than the freeware VMware Server, due to lower system overhead. VMware ESX is a "bare-metal" product, running directly on the server hardware, allowing virtual servers to also use hardware more or less directly. VMware ESX integrates into VMware vCenter, which offers extra services to enhance the reliability and manageability of a server deployment,
  • VMotion and storage VMotion – VMotion is the capability to move a running virtual machine from one ESX host to another and faster than some other editions and Storage VMotion - the capability to move a running virtual machine from one storage device to another
  • DRS - Distributed Resource Scheduler - automatic load balancing of a ESX cluster using VMotion
  • HA - High Availability - In case of hardware failure in a cluster, the virtual servers will automatically restart on another host in the cluster
  • VMware ESXi is quite similar to ESX, but differentiates in that the Service Console is removed, and replaced with a minimal BusyBox installation. Disk space requirements are much lower than for ESX and the memory footprint is reduced. ESXi is intended to be run from flash disks in servers but can be run from normal disks. VMware ESXi hosts management is performed through a VirtualCenter Server.

VMware is providing many products and services for virtualization that can be used for performance and reliability in private clouds, public clouds or hybrid clouds. VMware software provides a completely virtualized set of hardware to the guest operating system. VMware software virtualizes the hardware for a video adapter, a network adapter, and hard disk adapters. The host provides pass-through drivers for guest USB, serial, and parallel devices. In this way, VMware virtual machines become highly portable between computers, because every host looks nearly identical to the guest. In practice, we can pause operations on a virtual machine guest, move or copy that guest to another physical computer, and there resume execution exactly at the point of suspension.

Alternatively, for enterprise servers, a feature called vMotion allows the migration of operational guest virtual machines between similar but separate hardware hosts sharing the same storage. Each of these transitions is completely transparent to any users on the virtual machine at the time it is being migrated

The figures shows the infrastructure of a VMware managed environment: