Customize deployment behavior using WebSphere CloudBurst environment profiles

Self-service access and customization capability are key themes when using WebSphere® CloudBurst™. Multiple users can create and provision their own unique middleware a/pplication environments by using a range of customization techniques that apply to image construction, pattern building, and pattern deployment. The newest release of WebSphere CloudBurst expands the reach of the customization capabilities to allow a single appliance to support users' various deployment needs. Users can utilize the new environment profiles feature to affect the placement of the parts in a virtual system, apply their own naming conventions to virtual machines, and provide hostname configuration for each virtual machine in the system.

Share:

Dustin Amrhein, Technical Evangelist, IBM

Dustin Amrhein joined IBM as a member of the development team for the WebSphere Application Server. While in that position, Dustin worked primarily on web services infrastructure and web services programming models. In addition, Dustin worked on the development of a RESTful services framework for Java runtimes. In his current role Dustin is a WebSphere Client Technical Professional.


developerWorks Professional author
        level

Jose Ortiz, Software Architect, IBM

Jose has worked on many different products in the WebSphere brand. Over the last 5 years, he has been involved with solutions that simplify software configuration and deployment, exploiting virtualization as the platform to do so. In his current role Jose design and implements various subsystems in the WebSphere CloudBurst Appliance from image management to deployment and most recently environment profiles.



01 November 2010

Also available in Chinese

Introduction

The WebSphere CloudBurst Appliance is a cloud management device that manages the complete lifecycle of virtualized middleware application environments running in a private cloud. The appliance enables you to create, deploy, and manage your application environments in an on-premise cloud. They are of course your application environments, so that implies the need for customization.

WebSphere CloudBurst provides different customization capabilities to ensure that you can create application environments that meet your needs. You can build your own custom virtual images in order to include additional software or make operating system configuration changes. You can build custom patterns that represent both the topology (number and type of nodes), as well as the configuration (applications and application resources) of your application environments. In addition, owing to the fact that each deployment is at least a little unique, WebSphere CloudBurst provides the capability to define deployment parameters that allow you to provide distinguishing information for each environment.

Customization has always been a theme central to the design and implementation of WebSphere CloudBurst. Environment profiles are new resources in WebSphere CloudBurst 2.0.0.2 (October 2010) that extend your customization reach beyond the ability to create custom patterns based on custom images. In addition to being able to create custom environments, you can now apply customizations that affect the delivery process for those environments.

Before we dive into environment profiles, it is helpful to understand the traditional deployment process that these new resources allow you to customize. Figure 1 shows the traditional pattern deployment process in WebSphere CloudBurst. First, the appliance uses an intelligent placement algorithm that considers factors such as compute resource availability, high availability, and software license costs to place virtual machines on hypervisors within the targeted cloud group. Next, the appliance creates the virtual machines from the appropriate virtual image, and it injects unique IP addresses from a user-defined pool into each machine. Finally, it starts the virtual machines and the middleware software components (such as WebSphere Application Server), and then it runs any user-defined scripts included in the pattern.

Figure 1. WebSphere CloudBurst deployment process
WebSphere CloudBurst deployment process

The appliance automates each of the above steps in the deployment process, and the result is that users get a running application environment fit for their use without the need to manually intervene at any point. This ability to completely automate an application environment's deployment and configuration is a key benefit of the appliance because it saves time and considerably increases the consistency of such deployments. However, there are scenarios where you might want to influence the behavior of the WebSphere CloudBurst deployment process beyond a set of automated deployment scripts and custom images. For instance, you might want more control over the mapping of virtual machines to physical machines, or you might want to be deterministic about the assignment of IP addresses to virtual machines. Environment profiles give you the means to achieve these customizations.


What are environment profiles?

The WebSphere CloudBurst Appliance enables a mode of self-service access for middleware application environments running in a private cloud. Typically, different groups within an organization access a shared appliance in order to provision and manage the environments they need to do their jobs. This type of usage model provides an organization with a centralized point of control for provisioning and management, and because WebSphere CloudBurst provides fine-grained access controls to resources, sharing does not come at the expense of controlling access to the various resources stored on the appliance (such as patterns and images).

While fine-grained access controls are necessary components to enable effective appliance sharing, your organization might need more. As you begin to use a single WebSphere CloudBurst Appliance to support more teams or more usage scenarios, you will likely find an increase in divergence of deployment requirements. Different deployment scenarios might need different cloud resources, support for different organizational standards, and more.

Environment profiles in WebSphere CloudBurst allow you to effectively account for these diverging deployment requirements. Specifically, you can create environment profiles in WebSphere CloudBurst that let you customize the following activities in the pattern deployment process:

  • Placement of virtual machines
  • Assignment of IP addresses to virtual machines
  • Creation of virtual machine names

Placement of virtual machines

Cloud groups in WebSphere CloudBurst are a logical collection of hypervisors. After selecting a pattern to deploy, you select the cloud group you want to host the virtual system. Before the introduction of environment profiles, you could only specify one cloud group for a given pattern deployment. Once you supplied that information, WebSphere CloudBurst used its intelligent placement algorithm to place virtual machines on hypervisors within the cloud group.

While the intelligent placement functionality can help to reduce administrative burden, increase resource utilization, improve availability, and reduce licensing costs, the restriction of one cloud group per pattern deployment can be at odds with the way you deploy your application environments. For instance, your pattern might include both application servers and web servers, and you might want to deploy the web server in the pattern to a different bank of machines within your enterprise. Without environment profiles, two separate patterns were required, one for each cloud group deployment. Using environment profiles, you can do this with one pattern by selecting the targeted cloud group for each part in the pattern. By moving the mapping from the pattern level to the part level, environment profiles enable more flexible deployments, such as the one Figure 2 shows.

Figure 2. Deploying to multiple cloud groups
Deploying to multiple cloud groups

Assignment of IP addresses

As depicted in Figure 1, WebSphere CloudBurst automatically injects IP addresses into each virtual machine it creates during the deployment process. It does this by retrieving an address from a user-defined pool associated with the hypervisor hosting the virtual machine. WebSphere CloudBurst ensures that each virtual machine gets a unique IP address, and it updates the configuration of both the operating system and middleware environments to reflect the newly injected IP address.

This process simplifies network administrative burden by not only managing and assigning IP addresses, but also by automating the configuration updates needed to reflect dynamically assigned IP values. However, in some cases you might want more control over the exact IP value assigned to a virtual machine. Environment profiles let you provide the IP and hostname values for each part within your pattern. That way, you can directly specify the IP and hostname of your virtual machines instead of relying on WebSphere CloudBurst to pick one at random from a pool you defined. If you choose to use this environment profiles capability, WebSphere CloudBurst still automatically updates the operating system and middleware software configuration based on the IP and hostname values you supply. No manual configuration changes are necessary.

Creation of virtual machine names

Per Figure 1, one part of the deployment process includes the creation of virtual machines. In this phase of deployment, WebSphere CloudBurst communicates with the virtualized infrastructure (VMware, IBM PowerVM, IBM z/VM) to create the necessary virtual machines using virtual images associated with the pattern. When the appliance creates the virtual machines, it uses a standard naming scheme by default. In some cases, you might want to directly influence the name of the virtual machine. That might help for virtual machine inventory and classification purposes, or it might be a requirement in your company's deployment procedures. In any case, you can use environment profiles to specify the naming scheme that WebSphere CloudBurst should use when creating virtual machines.


Use environment profiles

Now, let's take a deeper look at environment profiles and how you can leverage them in WebSphere CloudBurst 2.0.0.2. To do this, consider the deployment of a WebSphere CloudBurst pattern consisting of the following:

  • One WebSphere Application Server deployment manager
  • Two WebSphere Application Server custom nodes
  • One IBM HTTP Server
  • One script package to install an application

In deploying the pattern, you want to accomplish the following:

  • Deploy the deployment manager and custom nodes to a set of machines dedicated to WebSphere Application Server nodes.
  • Deploy the IBM HTTP Server to a set of machines dedicated to web servers.
  • Assign specific IP and hostname values to each virtual machine in the system.
  • Specify a naming scheme for the virtual machines that adheres to enterprise standards.

You can accomplish each of these goals with the use of a custom environment profile. Start by creating the environment profile.

Create environment profiles

To create a new environment profile in the WebSphere CloudBurst web console:

  1. Click Environment Profiles.
  2. Click the add icon.
  3. Provide the information in the dialog as shown in Figure 3.
    Figure 3. Create a new environment profile
    Create a new environment profile
    1. Enter a name and description for your environment profile. The name can be any value provided it is unique, and the description is an optional parameter that you can use to provide more information about the profile.
    2. Select a hypervisor type. The hypervisor types are ESX, PowerVM, or z/VM, and correspond to the supported hypervisor types in WebSphere CloudBurst. You can only associate an environment profile with one hypervisor type, but you can have multiple environment profiles that correspond to the same hypervisor type.
    3. Select an environment for the new environment profile. You can use the environment attribute for filtering and classification purposes. You will see the use of the environment attribute for filtering later in the article. Choose one of the following values:
      • All
      • Development
      • Test
      • Quality assurance
      • Performance
      • Research
      • Production
      • Pre-production
  4. Click OK.

Figure 4 shows the new environment profile.

Figure 4. The new environment profile
The new environment profile

Complete the environment profile's definition

As Figure 4 shows, you need to specify more information after the initial creation of the environment profile in order to use it. Specifically, you need to associate at least one cloud group with the profile. The cloud group must contain at least one active hypervisor with an active IP group. It is not necessary for the IP group to contain IP addresses if you choose to have the pattern deployer supply them during the deployment process, as done here. In addition, you can optionally provide a virtual machine naming format.

To accomplish the deployment goals listed earlier, associate two cloud groups with your new profile. One cloud group represents a collection of resource for your WebSphere Application Server nodes, while the other cloud group represents a collection of resource for your web servers. Also, provide a virtual machine naming format to ensure all virtual machine names adhere to your enterprise standards.

To add a cloud group to the environment profile, click the Add more text within the Deploy to cloud groups field. Figure 5 shows the page to add a cloud group.

Figure 5. Add cloud groups to an environment profile
Add cloud groups to an environment profile

After you add the cloud group, notice that the Current status message changes. You now have to mark at least one IP group as In use for each of your cloud groups. To do this, expand the section for each of the cloud groups and select the IP group you want to use for virtual machines deployed within that cloud group. Figure 6 shows the page to select an IP group.

Figure 6. Select an IP group
Select an IP group

Notice that for both the cloud group and the IP group, we provided aliases. Aliases are optional, and they let you supply your own names for resources associated with the environment profile. That allows you to supply meaningful names in the context of the usage of the environment profile. If you use aliases, their names appear as the resource names when you use an environment profile to deploy a pattern. You will see this later during the deployment process. In addition, as with other resources in WebSphere CloudBurst, you can decide exactly which users or groups have access to the environment profile via the Access granted to field.

After you specify an IP group, the status message updates to indicate that the environment profile is ready to use. However, you still need to provide more configuration data to achieve the deployment goals listed earlier. First, you want to change the value of the IP addresses provided by field. By default, the value is WebSphere CloudBurst, and this means the normal IP assignment process will take place. In other words, during deployment, WebSphere CloudBurst automatically picks an IP address from a pool you defined and assigns it to a virtual machine. When using an environment profile, it picks from a pool of IP addresses associated with the IP groups you marked as In use when defining the cloud groups for the profile.

In this case, you want the pattern deployer to provide specific IP addresses for each part in the pattern. To do this, change the value of the IP addresses provided by field to Pattern deployer as Figure 7 shows.

Figure 7. Configure pattern deployer to supply IP addresses
Configure pattern deployer to supply IP addresses

Now when you deploy a pattern using this environment profile, you explicitly define the IP address for each part in the pattern.

The last thing you need to define in this environment profile is a virtual machine naming format. Specify your naming scheme in the Virtual machine name format field as shown in Figure 8.

Figure 8. Define a virtual machine naming format
Define a virtual machine naming format

For this virtual machine name format, specify apptest_${3-counter}. The ${3-counter} part of the name is one out of three possible variable formats that you can use in the virtual machine name format:

  • ${x-counter}: During deployment, WebSphere CloudBurst replaces this variable with the value of the environment profile's global counter. WebSphere CloudBurst stores this value on the appliance and updates it accordingly. The x part of the variable represents the number of digits you want WebSphere CloudBurst to use in the counter. In Figure 8, we specified 3 digits, so WebSphere CloudBurst will produce values like 001, 002, and so on. For example, the first virtual machine you deploy using your environment profile will have the name apptest_001.
  • ${hostname}: During deployment, WebSphere CloudBurst replaces this variable with the hostname of the virtual machine.
  • ${vs-name}: During deployment, WebSphere CloudBurst replaces this variable with the name you provide for the virtual system. By itself, this variable does not guarantee unique names for your virtual machine, so you must use one of the other two variables in conjunction with this one (for example, apptest_${vs-name}-${3-counter}).

You must use at least one of these variables in your virtual machine naming format (more than one if you use ${vs-name}) to ensure that WebSphere CloudBurst creates virtual machines with unique names.

The definition of your new environment profile is complete. You can now use this environment profile for the deployment of a pattern.

Use an environment profile during deployment

Now you are ready to use your new environment profile during the deployment of a pattern. First, click the Patterns link on the top toolbar and then select the pattern you want to deploy. Figure 9 shows the target pattern.

Figure 9. Pattern to deploy
Pattern to deploy

The pattern contains the basic nodes you want in your deployment, and it includes the test application. Now, you need to ensure you accomplish the deployment goals established earlier:

  • Deploy IBM HTTP Server instance to a separate cloud group that consists of machines dedicated for web server use.
  • Provide specific IP addresses for your virtual machines.
  • Ensure virtual machine names adhere to enterprise standards.

Do this with the use of your new environment profile during the deployment process. To get started, click the deployment icon. Provide a name for the new virtual system and then click the Choose Environment link. Figure 10 shows how to select an environment profile for deployment.

Figure 10. Select an environment profile to deploy
Select an environment profile to deploy

When you select an environment profile, you can optionally filter the list of available profiles by providing an Environment type other than All. The value of the environment type field filters environment profiles based on the value of the profile's Environment field. For the profile created in this article, we specified the environment as Test (as Figure 4 shows). However, since we only have a single environment profile defined, filtering is not necessary, and our target profile, Dustin's Profile, is the profile indicated in the Environment profile field.

After you choose the environment to use for the deployment, you can configure each of the parts in the pattern. Start by configuring the deployment manager part as Figure 11 shows.

Figure 11. Configure the deployment manager part
Configure the deployment manager part

In configuring the deployment manager part, select a cloud group to which you want to deploy this virtual machine via the In cloud group field. You can select any of the cloud groups associated with your environment profile, and in this case, select the WASCloud cloud group to ensure that WebSphere CloudBurst places your deployment manager virtual machine on a hypervisor within this group. Next, select the IP group that you want to associate with this virtual machine via the IP Group field and then provide the hostname and IP address for the virtual machine in the Addresses field. It is important to point out that the IP address and hostname you provide must be valid values for the subnet associated with the IP group you select (WASIPs). After you provide this information, continue to provide standard configuration data such as virtual machine resource allocation information, cell name, node name, and passwords.

Next, configure the custom node parts for deployment as Figure 12 shows.

Figure 12. Configure the custom node parts
Configure the custom node parts

For the custom node parts, select the same cloud and IP group as you did for the deployment manager part. This ensures that WebSphere CloudBurst will also place the custom nodes on hypervisors within the WASCloud cloud group. The only difference in the configuration data for the custom node part is that you provide two unique hostname and IP address values. You do this because you have two custom node parts in the pattern, so you need a distinct value for each virtual machine created.

Finally, configure the IBM HTTP Server part for deployment as Figure 13 shows.

Figure 13. Configure the IBM HTTP Server part
Configure the IBM HTTP Server part

For the IBM HTTP Server part, you want to deploy to a separate cloud group. For that reason, you should specify the IHSCloud cloud group as the deployment target. You should also specify a different IP group—in this case IHSIPs—which indicates that you will use a different subnet to host your IBM HTTP Server virtual machine. As with the other parts, continue to provide standard deployment configuration data for the part. Note that WebSphere CloudBurst automatically applies the naming conventions set forth in your environment profile to each virtual machine created during deployment. No deployment configuration data is necessary to ensure that this happens.

After configuring each of the parts, you are ready to deploy the pattern. To do this, click OK on the main deployment dialog shown in Figure 10. WebSphere CloudBurst directs you to the virtual systems page where you can monitor the deployment status of your system. When deployment is complete, WebSphere CloudBurst updates the virtual system's status as Figure 14 shows.

Figure 14. Initialized virtual system
Initialized virtual system

You can now verify that your environment profile had the desired effects during the deployment process. To do that, expand the virtual machines section to see a list of each of the machines in the system. Figure 15 displays the virtual machine listing.

Figure 15. Virtual machine listing
Virtual machine listing

You can see that the virtual machine names adhere to the naming format specified in the environment profile (apptest_${3-counter}). Next, expand the apptest_001 virtual machine, which represents the deployment manager part from your pattern. Here, check the details to ensure the correct assignment of IP address and hostname and then validate that WebSphere CloudBurst placed the machine in the WAS Node Cloud (alias of WASCloud) cloud group. Figure 16 shows the relevant details for the deployment manager virtual machine.

Figure 16. Deployment manager virtual machine
Deployment manager virtual machine

If you check either of the custom node virtual machines, apptest_003 or apptest_004, you see that WebSphere CloudBurst placed them in the WAS Node Cloud cloud group as well. Each has its own specific IP address. Figure 17 shows the details for the apptest_003 virtual machine.

Figure 17. Custom node virtual machine
Custom node virtual machine

Now you can expand the details for the apptest_002 virtual machine. This machine represents the IBM HTTP Server instance. Figure 18 shows the relevant details for this virtual machine.

Figure 18. IBM HTTP Server virtual machine
IBM HTTP Server virtual machine

As you can see, WebSphere CloudBurst placed the IBM HTTP Server virtual machine in the Web Server Cloud (alias of IHSCloud) cloud group per the information supplied during deployment. In addition, you see the IP address and hostname specified for the virtual machine during deployment.

After examining the details for each of the virtual machines that make up the system, you can conclude that you were able to meet all of the deployment goals using the new environment profiles capability in WebSphere CloudBurst. Specifically, you deployed parts in a single pattern to multiple cloud groups, thus allowing you to effectively separate nodes in the deployment across pools of machines dedicated to hosting different components. Moreover, you provided specific IP address and hostname values for each of the virtual machines in the system and ensured that all virtual machine names adhered to your standard.


Conclusion

Self-service access and customization are core themes present throughout the WebSphere CloudBurst Appliance. Since its release, the cloud management device enabled multiple users to create and deploy their own customized environments to a private cloud. Now, with the introduction of environment profiles, you can support the varying deployment requirements of multiple teams with a single appliance. You can use this new feature to give teams more control over their deployments in terms of cloud resource usage and virtual machine naming. Environment profiles enable multiple users to deploy their customized environments in a customized fashion.

Resources

Learn

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Cloud computing on developerWorks


  • Bluemix Developers Community

    Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.

  • developerWorks Labs

    Experiment with new directions in software development.

  • DevOps Services

    Software development in the cloud. Register today to create a project.

  • Try SoftLayer Cloud

    Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing
ArticleID=563052
ArticleTitle=Customize deployment behavior using WebSphere CloudBurst environment profiles
publish-date=11012010