The inefficiencies of traditional computing are unsustainable and businesses are making transformations to becoming smarter:
- Companies need to do more with less and are looking for ways to create and leverage new innovations.
- Customers need to reduce costs, simplify operations, and respond to changing business demands while balancing flat or shrinking IT budgets.
- Customers need a way to manage their systems more efficiently, cost effectively, and also be able to tap into the latest technology such as cloud with agility to adapt their business to changing customer needs.
IBM is helping customers reduce costs, simplify complexity, and leverage new innovations by providing smarter computing solutions. They are moving beyond delivering piece-part components to providing a new class of expert integrated systems. These new systems integrate the infrastructure and application layer with proven patterns, specifically optimized to meet specific needs.
This new breed of system, IBM PureFlex System, combines the flexibility of general purpose systems and the simplicity of an appliance with integrated expertise. IBM PureFlex System is a cloud-ready, expert, integrated system that provides a new computing paradigm, consolidating workloads across Power™, System x, systems management, networking, and storage with a unified management system that allows an unparalleled integration of the infrastructure and the application layer.
IBM PureFlex System allows customers to consolidate into a single system all of the infrastructure elements required to run their workloads. This consolidation reduces cost, drives simplicity and efficiency, and is built to provide cloud capabilities out of the box.
IBM PureFlex System is optimized for cloud computing to rapidly deliver prepackaged virtualized images to clients, provide seamless universal management throughout the deployment life cycle, and is optimized for specific workloads and multi-tier applications.
This article describes IBM PureFlex System by highlighting IBM Virtual Appliance Factory (VAF). This toolkit helps a developer package an application along with the appropriately configured operating system, middleware, and applications into a virtual cloud appliance so deployment into the cloud system, including one running on IBM PureFlex System, is a fast, automated task.
Defining the virtual appliance
Virtual appliances are a key component of the cloud deployment model. A virtual appliance is a prepackaged software stack that combines the operating system, middleware, and applications in one package. Virtual appliances facilitate a quicker transition to cloud and require much less installation and configuration than traditional deployment methods. Virtual appliances address key issues to cloud computing, software licensing and standardization, and it applies to traditional ISVs as well as SaaS providers.
As an example, on one end of the spectrum, you can take an existing matured, market-tested COBOL application and with little effort, package it as a single-image virtual appliance, which immediately becomes deployable into the cloud. On the other end of the spectrum, you can package a newly implemented, highly distributed, service-oriented application and integrate with the services provided by the cloud. This allows ISVs to respond more rapidly to their customer's changing business needs with flexibility and agility.
IBM PureFlex System is designed to leverage virtual appliances. The Flexible System Manager (FSM) is a hardware appliance shipped with IBM PureFlex System that contains a fully operational virtual infrastructure management stack: IBM Systems Director and VMControl. Specifically, VMControl is an IBM Systems Director add-on feature that manages the entire life cycle of a virtual appliance. Here is a quick overview of the rich functionality provided by VMControl:
- Built-in Virtual Appliance Repository with versioning capability.
- Support for Virtual Appliances compliant with the industry standard DMTF OVF (Open Virtualization Format) specification.
- Support for x86 and Power-based appliances.
- Support for the IBM Virtual System Activation Engine (VSAE), a scripting engine that allows for automatic reconfiguration of the entire software stack contained in an appliance. This, in turn, drives the cloud value proposition of self-service and automation.
- Ability to deploy appliances into a single host or into a system pool.
- Ability to group multiple running appliances into a single workload that then can be managed as a single entity.
The virtual appliance model
As stated before:
The true value of the OVF-compliant software VA [virtual appliance] lies in the ability to automatically install and configure all of the software components, including the operating system, middleware, and applications. Unfortunately, the prevailing approach of many appliance architects is to ship them "half-baked" without automating the activation of the entire software stack. Often, appliance architects use, say, the VMWare tools to ensure the reconfiguration of the OS-level settings, such as host name, domain name, and root password. They tend not to address the reconfiguration needs of the software components above the OS at the initial deploy time. For example, they do not reconfigure the database settings. Consequently, at deployment time, the host name at the OS level gets set to the proper value, while the database configuration shows the original host name.
This can lead to unpredictable results and often requires manual debug and repair. The approach is problematic for several reasons:
- The need for a manual configuration of deployed workloads defeats the key value proposition of cloud computing, namely, automation.
- The deployer (a cloud admin) may not have the necessary domain knowledge to properly reconfigure a third-party application or middleware or the inter-dependencies of a multi-tiered application construct.
A preferred solution to address these issues is to take advantage of the IBM Virtual Solutions Activation Engine (VSAE). The Activation Engine is a software tool that is used during the appliance creation and deployment phases. The Virtual Appliance Factory toolkit automatically installs the Activation Engine in each virtual system image during the appliance construction phase. Then, when the appliance is deployed, the Activation Engine runs in each of the virtual systems and reconfigures the system and the installed applications.
Essentially, the VSAE is a scripting engine that starts on the first boot before the application services are activated. For example, IBM WebSphere® Application Server (WAS) data source configuration requires the DB2® server host name, the port on which DB2 is listening, the database name, and DB2 user credentials. Please note that these settings may be different for each instance and are runtime-environment-specific. They need to be set before the WebSphere Application Server application startup to prevent conflicts and security exposure.
The VSAE supports a pluggable architecture where the configuration tasks for a specific aspect of a software stack are performed by the specialized activation programs. These activation programs are invoked by the Activation Engine in a predefined sequence.
The OVF standard recommends that the runtime parameters are passed to the Activation Engine using an XML configuration file (default name is ovf-env.xml) contained in a virtual CD drive. The virtual CD drive is attached to a given virtual system at the boot time. The Activation Engine parses the XML configuration file to retrieve the parameters and then calls a specific activation program that sets points of variability (change points) in the application stack.
Following this model is a good way to build software virtual appliances that fully automate the deployment of the real-life, sometimes-quite-complex solutions.
Author's note: The information from this section and the next section of the article comes from my article, "Cloudify Your Applications by Creating a Software Virtual Appliance," courtesy of MC Press Online, LLC.
Building software virtual appliances
How do you package your applications into the format described in the model so they are cloud-ready? There are many options available in the marketplace for building virtual appliances, but some of these options do not support open source hypervisors such as KVM or architectures other than Intel. With these other options, the process can be significantly manual and prone to error. The options used as examples in this article are:
- Open source tooling to build the virtual appliance (VA).
- VMware tooling to build the virtual appliance.
- The Virtual Appliance Factory Service.
Open source tooling
You can build the software virtual appliance manually using open-source tooling. For example, you can install on your Linux® workstation the open-source hypervisor KVM along with the virtualization tools (such as virsh, virt-manager, and virt-viewer). Use the virt-manager to create the virtual machine images, boot those images on KVM, and install all the necessary software components.
A simple text editor can be used to create or modify an OVF file to describe the content of the virtual machine images you created.
The final step is to create a TAR archive that contains the images and the OVF.
This is manual virtual appliance creation; it requires significant virtualization and OVF skills and is time-consuming and prone to errors.
You can use VMware tooling like VMware Studio and the OVF Toolkit; they are designed to simplify the process of virtual appliance creation.
The virtual appliances created in VMware Studio can be easily imported and deployed using vSphere Client.
One drawback is that VMware tools do not support open source hypervisors such as KVM or architectures other than Intel®.
The Virtual Appliance Factory Service
You can leverage Virtual Appliance Factory Service; the VAF Service is a set of Web 2.0 tools, services, and processes that simplify and automate the "cloudification" process. Some of the benefits of the VAF Service include:
- Allows entry into cloud space with minimal up-front investment.
- Hides complexity of the virtualization infrastructure, meaning that appliance architect can focus on their specific knowledge domains (like multi-tier application composition) rather than have to deal with infrastructure setup.
- Creates a virtual appliance that is deployable into DMTF OVF-compatible data centers.
- Delivers on two key value propositions of cloud computing: Automation and self-service.
Introducing the IBM Virtual Appliance Factory
IBM has made it easy for ISVs to create a virtual appliance by combining years of experience, proven methodologies with a downloadable set of Web 2.0 tools to simplify the process. The IBM Virtual Appliance Factory is a self-enablement toolkit that provides automated tools to help independent software vendors (ISVs) prepackage application solutions for deployment in KVM and PowerVM environments.
Virtual appliances are transforming the IT industry by accelerating time to value. This is achieved by prepackaging software stacks in a virtual OVF format that combines the OS, middleware, and applications into one package. This speeds deployment time and accelerates entry into cloud environments.
The IBM Virtual Appliance Factory supports x86: Linux with VMware, Linux with KVM and POWER®: AIX® with PowerVM®, Red Hat, and SuSE.
A typical engagement requires 3-10 programmer days. Virtual appliances built with the IBM Virtual Appliance Factory are eligible for the "IBM Ready For" program which helps highlight your solution to customers and business partners as a distinguished, optimized solution. For eligibility, virtual appliances must be validated and tested on IBM hardware at an IBM Innovation Center and a listing created in the IBM Global Solutions Directory with the required supporting documentation.
How does the IBM Virtual Appliance Factory work? The end-to-end process uses IBM Image Construction Tool (ICCT/ICON), System Director, and the ICCT Eclipse plug-in. Here is an example methodology for KVM. The flow for PowerVM and VMware are identical.
- Create a base appliance using ICCT/ICON, just an operating system with basic OS services, from installable ISO file.
- Deploy the base appliance using KVM provider runtime, which lets you manage virtual systems and images on a KVM host.
- Using the Eclipse plug-in:
- Create and test a program activator, a piece of software that knows how to reconfigure a software component at the time when the appliance is deployed.
- Export the program activator into the ICCT/ICON as a bundle. It is activated every time a new instance of this appliance is deployed into a host.
- Extend the base appliance with the newly created bundle using ICCT/ICON. The ICCT merges metadata that describes the software components in the virtual appliance with the metadata for the bundle.
- Bring the image to latest level of metadata:
- Synchronize the image with the metadata describing it.
- Capture it by going into the image and cleaning up temporary files, SSH keys, network configs.
- Export the image into a standard format DMTF OVF specification.
- Using System Director's VMControl feature:
- Import the virtual appliance into the virtual appliance repository managed by VMControl in order to manage the life cycle of the appliance.
We introduced you to the virtual appliance model, various ways you can build software virtual appliances, and provided information on the IBM Virtual Appliance Factory and its process, a toolkit that automates the deployment of your cloud appliance into IBM PureFlex System environments.
- Get started with the IBM Virtual Appliance Factory.
- Find IBM PureSystems™ resources on developerWorks.
- Learn more about IBM PureSystems.
For more on how to perform tasks in the IBM Cloud, visit these resources:
- Up and download files from a Windows instance.
- Install IIS web server on Windows 2008 R2.
- Create an IBM Cloud instance with the Linux command line.
- Create an IBM Cloud instance with the Windows command line.
- Extend your corporate network with the IBM Cloud.
- High availability apps in the IBM Cloud.
- Parameterize cloud images for custom instances on the fly.
- Windows-targeted approaches to IBM Cloud provisioning.
- Deploy products using rapid deployment service.
- Integrate your authentication policy using a proxy.
- Configure the Linux Logical Volume Manager.
- Deploy a complex topology using a deployment utility tool.
- Provision and configure an instance that spans a public and private VLAN.
- Secure IBM Cloud access for Android devices.
- Recover data in IBM SmartCloud Enterprise.
- Secure virtual machine instances in the cloud.
- In the developerWorks cloud developer resources, discover and share knowledge and experience of application and services developers building their projects for cloud deployment.
- The next steps: Find out how to access IBM SmartCloud Enterprise; developing on SmartCloud is a great way to practice developing for IBM PureSystems.
Get products and technologies
- See the product images available for IBM SmartCloud Enterprise.
- Join a cloud computing group on developerWorks.
- Read all the great cloud blogs on developerWorks.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.
Dig deeper into Cloud computing on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Complete cloud software, infrastructure, and platform knowledge.
Software development in the cloud. Register today to create a project.
Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.