IBM PureApplication System is a workload optimized integrated hardware and software appliance designed to dramatically simplify the development, provisioning, and management of applications in a private cloud environment. It features integrated management capabilities, allowing self-service provisioning of elastic applications, databases, and other workloads.
With PureApplication System, IBM has rethought some key datacenter concepts. The hardware and software are deeply integrated, providing an unprecedented degree of automation, performance, and simplicity. To best put this power to use for your business, it is important to carefully consider your application portfolio with an eye towards how you will take advantage of these characteristics. The purpose of this article series is to help you understand how to prepare for and maximize the value of PureApplication System in your organization from an application-centric point of view.
This multi-part series includes:
- Part 1: Onboarding applications overview (this article)
- Part 2: Is your application ready to become virtual?: By answering a series of questions, you can decide which deployment option is best suited for your application.
- Part 3: Choosing a database option: Learn which database option is right for you and some of the recommended best practices.
- Part 4: Onboarding your applications to the cloud using the Advanced Middleware Configuration tool: Onboard your application with the Advanced Middleware Configuration tool, then deploy instances of your application to the cloud in a single step.
- Part 5: Developing virtual application patterns for IBM Workload Deployer with Rational Application Developer: Learn to use Rational Application Developer and the virtual application pattern assembly of IBM Workload Deployer to develop cloud applications.
The purpose of this article is to highlight the PureApplication System capabilities as they relate to the application lifecycle. This will help you understand how to identify and onboard your existing applications as workloads, and which capabilities are best suited for your applications. Think of this as your roadmap that guides you through the rest of the series.
Workloads for PureApplication System
PureApplication System includes a number of pre-defined workload patterns. Each of these patterns defines a set of underlying system resources, scripts, monitoring, and management behaviors. When you deploy an application using one of these patterns, PureApplication System automatically provisions and configures those resources and sets up those behaviors, which lets you focus on the actual application. PureApplication System supports two types of workloads, virtual applications and virtual systems. While both models automate much of the tedium of standing up and monitoring applications, there are some key differences.
With virtual applications, PureApplication System takes charge of the vast majority of the application's provisioning and management. This can dramatically reduce the total cost of ownership, but only for applications that fit into the constraints of the pattern. With virtual systems, you retain much more control over – and therefore take responsibility for:
- What virtual machines get provisioned
- What software components are installed on them
- What scripts are run
- How they are monitored
Let's look at this in more detail, starting with virtual applications.
PureApplication System understands a number of virtual application patterns, such as a basic Java™ application or a Web application. To deploy an application as a virtual application pattern, you create an application model. This model tells PureApplication System everything it needs to know about how to provision and configure your application, including what artifacts comprise the application, what systems it needs to connect to, what resources it requires, and what policies you want PureApplication System to use to manage your application (such as a scaling policy for elasticity).
At provisioning time, PureApplication System automatically provisions whatever system components are needed, such as virtual machines, application servers, and the like. It automatically configures those components based on your application model (setting data sources, providing monitoring and triggers to enable elasticity, and so on). It even monitors the load on that application and provisions (or relinquishes) system resources based on the demands of the application. In this way, PureApplication System takes charge of managing your application, lowers the cost of management and optimizes the use of system resources, thereby achieving much greater application densities when compared to traditional deployments.
Each virtual application pattern was designed to embody a set of best practices for setting up, configuring, monitoring, and managing the infrastructure and software platform to support the workload. As a result, virtual applications will highly optimize the use of PureApplication System resources. To accomplish this, the virtual application pattern makes certain assumptions about the applications that it can run.
Each virtual application pattern has specific compatibility criteria against which you can assess an application to determine, if the pattern will support that application. For example, criteria, such as the specifications utilized by the application or how an application state is handled, may determine if the application is ready to be run as a virtual application. As you will see, IBM provides assessment criteria to help you determine if any given application is compatible with a virtual application pattern. See Part 2 for more information about which deployment option is best suited for your particular application.
While it is possible to define your own virtual application patterns, this is an advanced topic that is beyond the scope of this article series.
Virtual system patterns
In contrast, with virtual system patterns, you have more control. You define the virtual machine images, the software components that are installed on them, the script packages that run to configure them, and any monitoring agents you would like them to include. Virtual systems offer repeatability, consistency, and rapid deployment times for both simple and complex middleware configurations while preserving the control and flexibility of traditional middleware environments.
You define these patterns using the PureApplication System Pattern Editor, similar to how you would design a traditional topology using a model drive approach. Creating virtual system patterns using IBM Hypervisor Edition images is an easy process using the Pattern Editor. You can even create your own virtual images from scratch by capturing or importing virtual machine images and adding software bundles.
PureApplication System includes a number of pre-determined virtual system patterns for common application topologies. These patterns represent best practices and "golden topologies" for applications running on IBM middleware. Think of these as starting points for a set of standard topologies for your organization's applications. The intent is that you customize these by adding additional software, script packages, and configuration options to tailor these patterns to your applications and environment.
While this gives you flexibility in terms of the workloads that you can run on PureApplication System, it is not without some cost. In particular, the process of managing your own catalog of compliant virtual machine images over time can be cumbersome and expensive. We recommend that you take advantage of IBM Hypervisor Edition Images and script packages to minimize the size of the image catalog while delivering an evolving set of content defined in the virtual system pattern.
When creating virtual system patterns, it is helpful to think about how a pattern can support many applications; therefore, this requires taking a layered approach. If you put too much content in the virtual machine images, the patterns become difficult to reuse. It is common to include the operating system and middleware in the images, and then use the script packages to lay down the application and configure the middleware. This affords much greater reuse.
To simplify this process for WebSphere® applications, PureApplication System includes the Advanced Middleware Configuration (AMC) tool. AMC makes it easier for you to create a repeatable and deployable virtual system patterns. This includes applications and configuration by introspecting an existing application cell, extracting all of the configuration details, and encapsulating them in a script package, which recreates that configuration when the pattern is deployed. In this context, an existing application cell refers to the WebSphere Application Server cell definition in which an application is deployed. A deployed application is made up of the application binary (WAR, EAR, and so on), the server topology, the configuration of that topology to support the application, and external resources. The introspection of this application from a WebSphere pattern perspective includes attaching to and introspecting a WebSphere cell, identifying the desired topology to support the application, the configuration settings contained with the WebSphere Cell definition, and the application deployment options and artifacts. It does not currently include the analysis of the application source. This is useful for WebSphere Application Server applications that do not conform to the constraints of any PureApplication System virtual application patterns and do not have a complete, reusable, reliable set of deployment and configuration scripts. See Part 3 for more information about using the AMC tool and IBM Workload Deployer to migrate applications and deploy new instances of the applications into the cloud.
PureApplication System supports a number of ways to host your data. Like the application deployment models, you have a choice in terms of greater optimization and simplicity with database as a service, or more control using a DB2® component in a virtual system pattern. Of course, you can always choose to host your data externally on existing systems.
Onboarding applications to PureApplication System
The value of PureApplication System is often a function of the number of applications that you are running. The more applications you put on PureApplication System, the higher the value of simplifying their management and the greater potential for increasing application density, particularly if you select applications that can be optimized for the cloud. IBM understands the importance of analyzing and managing this process across your portfolio, and over time to maximize the return on your PureApplication System investment.
Therefore, before onboarding any applications, you need to assess your application portfolio to identify those applications that are the best candidates for meeting your business objectives for adopting PureApplication System. After identifying the candidates, you can assess each application for compatibility against a virtual application pattern, or determine that it would be best onboarded as a virtual system pattern. You can then execute the onboarding functions specific to the workload type, bringing the application onto PureApplication System.
Application portfolio survey
Rational® Focal Point is a Web-based application portfolio management tool. IBM has a customized a workspace template specifically to help broadly assess a large portfolio of applications for suitability to onboard to PureApplication System. This tool is designed to be used collaboratively by a potentially large number of stakeholders, each of whom has responsibility for a portion of the application portfolio.
For each application, they answer a small number of fairly high-level questions, covering topics such as what technology the application is based on, how difficult it is to manage, how business-critical it is, and so on. The intent is that anyone with reasonable knowledge of the application can answer the survey questions. These answers are then used to compute an PureApplication System readiness score. These scores are used to identify a good set of candidate applications to consider for your initial onboarding effort, as well as to establish a roadmap for onboarding applications over time.
Once an application has been identified as a candidate, you need to determine if the application is suitable for one of the virtual application patterns available on PureApplication System. For each pattern, we provide a detailed application compatibility test. These involve a much deeper, highly technical set of questions about the applications. These include how the application manages session state, what dependencies it has on remote EJBs, and the like. Someone with deep technical knowledge of the application architecture and implementation should answer these questions. These answers determine if the application is compatible with one of the virtual application patterns, of if it needs to be onboarded as a virtual system pattern.
Virtual application onboarding
Onboarding an application as a virtual application is a simple process. Using the PureApplication System user interface directly, you select a particular pattern type, such as the "WebApplication Pattern Type". This creates an intuitive model that you can then customize for your application, as shown in Figure 1.
Figure 1. Virtual application pattern
In this case, you provide the WAR file for the application and a resource reference or the JNDI name to be used for the data source. You can drag and drop components, such as connections to external Web service providers or CICS transaction gateways, onto the canvas if necessary. If you are using the database as a service, you can define the schema and workload standard for the database directly within the virtual application.
Once your application design is complete, you can enable a set of policies for routing, logging, JVM settings and scaling to achieve the desired level of service, rather than working with middleware configuration attributes. For example, the scaling policy allows you to configure a range of instances that will be dynamically deployed in response to the response time of the application (see Figure 2).
Figure 2. Virtual application scaling policy
Using the PureApplication System user interface, you can quickly onboard your application and define set policies that will deploy and manage an application in a production environment by using a repeatable and intuitive model. The components that you configure as a part of a virtual application can also be saved as a re-useable component on the palette for use with other applications.
In addition, once the application model has been defined, you can deploy the application directly from the Rational Application Development IDE. In this way, developers can easily deploy their applications for testing purposes on PureApplication System. You can also be certain that developers are building applications that fit the constraints of the virtual application pattern.
Virtual system onboarding
Like virtual applications, a virtual system offers a model driven user interface. When onboarding an application as a virtual system, the first step is to define the underlying virtual system pattern (or identify a suitable existing pattern). Next, the application and associated WebSphere configuration need to be applied on top of the middleware topology by using script packages. These script packages allow you to fully customize and configure the environment far beyond the WebSphere configuration options exposed directly in the model. This is accomplished by manually creating script packages to configure the middleware, or by using the Advanced Middleware Configuration functionality, which is included as a part of PureApplication System.
In Figure 3, the Pattern Editor shows all of the virtual machines that comprise of the virtual system patterns (including IBM Hypervisor Edition Images) as well as the script packages that will run at provisioning time.
Figure 3. Virtual system pattern
In the example shown in Figure 3, the pattern includes a database and WebSphere cell with a Deployment Manager and two federated nodes. In each node, you can see the script packages that will be run at deployment time. This model-driven design allows for standard middleware topologies to be defined in a way that is easy to understand and relates to existing processes and investments.
By using a script package, you can include any existing wsadmin scripts or make calls to existing automation systems that will configure the middleware as a part of the deployment of the virtual system. This is a good option if you have invested in automation for your applications and wish to re-use those automations – if they are reliable, repeatable, and reusable.
However, such high-quality end-to-end automation is difficult to build. IBM provides a solution that allows you to generate automations by quickly capturing the configuration of an existing application cell and including those automations in a virtual system pattern – the IBM Advanced Middleware (AMC) configuration. This technology is delivered within PureApplication System itself as a virtual system pattern. In order to quickly automate your application installation and configuration, you simply deploy this service, attach a provided AMC script package to your virtual system pattern, deploy your pattern, then install and configure your automation any way you like so that it is ready to be captured.
Once your application is ready, you log in to the AMC service and capture the middleware configuration as an automation project. That automation project is then optimized and invoked as a part of future virtual system deployments. The result is that, without having to write any wsadmin scripts or install automation, you can fully automate an application deployment on a meaningful middleware topology.
The article described how IBM PureApplication System can greatly improve the efficiency of your data center and reduce the development, management, and monitoring costs of your applications. PureApplication System has a number of deployment models that suits the variety of needs within your organization. However, in order to realize the value of PureApplication System, you need to identify those applications that are best suited to take advantage of the unique characteristics of this private cloud and then onboard those applications to it. You can use the IBM-provided tools to manage the lifecycle for your applications, manage your application portfolio and onboarding process, and execute this migration scenario.
The authors would like to thank Mary Yost for her review of this article.
- Part 2: Is your application ready to become virtual?
- Part 3: Choosing a database option
- Part 4: Onboarding your applications to the cloud using the Advanced Middleware Configuration tool
- Part 5: Developing virtual application patterns for IBM Workload Deployer with Rational Application Developer
- IBM PureSystems Centre
- IBM PureSystems resources on developerWorks