In my prior job at IBM, I was, on more than one occasion, reminded of the pains of dealing with software development tools. It seemed to be a constant battle to keep up with licenses, install critical fixes, and update to the latest version of whatever tool I happened to be using. Since I often worked on projects across multiple machines, I had to ensure that versions of the tool on different machines were reasonably close and that any code formatting settings were consistent across the different tool instances. On top of this, the tools were sometimes so CPU intensive that multitasking on the same machine running the tool was impossible.
All of the above pains were a direct function of the tools being installed on my local machine, so you can imagine my interest in a recent announcement by IBM signaling the launch of a pilot program offering Tools as a Service. The program, initially offered to students and faculty of selected universities, delivers hosted software development tools to developers. Users of the development tools do not install, maintain, or run the products on their local machine, instead they access them through a cloud maintained by IBM. The tools can be accessed from any machine with an internet connection, and a developer's sandbox is persisted across multiple sessions. The developer simply logs in, does work, and at some point saves his/her changes and logs out. The saved changes can be accessed at some point in the future from the same machine or an entirely different one.
This is exactly what I needed! Like many developers, I wanted to focus on writing code not maintaining a suite of tools. I for one hope this eventually extends beyond a pilot program and becomes a mainstream practice. You can read more about IBM's Tools as a Service initiative here.
In a post not long ago, I mentioned new enhancements to virtual system patterns in IBM Workload Deployer. A prominent part of those enhancements were updates to pattern construction that allow you to order virtual machine startup, order script package invocation, and include add-ons that provide system level configuration options. Recently I uploaded a demonstration to YouTube that highlights some of these new capabilities. Specifically, this provides a brief look at ordering and add-on enhancements.
I hope you take a look, and even more importantly, I hope to see some feedback. If you have something you would like to see captured in a demo, let me know and I'll work it to the top of a long and continually growing list!
WebSphere CloudBurst delivers out-of-the-box capabilities in the form of pre-built WebSphere Application Server configurations, or patterns, which are ready to be deployed to a private cloud. These pre-built patterns range from a single server topology to more complex, clustered topologies. In addition, these patterns have been tuned to produce hardened, best-practice environments. For users, this means once they have the appliance setup, they can immediately begin building a private WebSphere cloud.
The out-of-the-box capability of WebSphere CloudBurst is extremely useful, but what about the situations where those patterns don't align with a user’s needs? What if a user needs to create a highly customized WebSphere environment? Not to worry, WebSphere CloudBurst was built with a focus on bringing customization capabilities to the user. These customization capabilities cover the full WebSphere middleware environment, from the operating system to user applications.
To start with, WebSphere CloudBurst allows users to modify the virtual images that are shipped with the appliance. These virtual images contain the operating system and WebSphere components that are used to build the WebSphere patterns. A perfect use-case for this is if a user needs to install custom software to be used in all of their WebSphere environments.
For instance, if a user wanted to install a JDBC driver that was to be used by each of their WebSphere deployments, they would simply extend one of the shipped virtual images, install the JDBC driver, and then recapture the image. Once the image was recaptured, it could be utilized to build the WebSphere patterns that represent the complete WebSphere middleware environment. By using this virtual image to build patterns, users are assured the JDBC driver will be present in each and every WebSphere deployment to their private cloud.
Another common customization is a change to the WebSphere topology in a pattern. If a user has a particular cluster environment that is different from the shipped WebSphere cluster patterns, they could simply clone the shipped cluster pattern, make any needed topology changes, and then save their new pattern.
The best thing about this process is that the topology changes are done via a slick GUI interface. Users can construct WebSphere topologies by simply dragging and dropping WebSphere components (i.e. stand-alone servers, deployment managers, web servers, etc.) onto a canvas! Once the pattern is constructed and saved, it can be reused as many times as necessary.
Patterns can also be customized to include user applications or other WebSphere configuration tuning. Script packages are compressed files (ZIP or TAR) that are constructed by users to alter the WebSphere environment. These packages might contain an application and scripts to install the application, or it could contain a script to tune or enhance the environment created by WebSphere CloudBurst.
The beauty of script packages is that they can do just about anything. Users tell WebSphere CloudBurst how to execute the script package (i.e. “Call the installApp.sh script in my script package”), and that execution takes place at the end of the pattern deployment. The result is a dispensed WebSphere environment that has been customized according to the script package contents.
There’s more to WebSphere CloudBurst customization capabilities than what I talked about above, including the ability to customize each and every deployment of a pattern, and the ability to align these customization activities with organizational responsibilities. To find out more about these capabilities, check out the demos on our YouTube channel or send us an email at firstname.lastname@example.org. Stay tuned to the blog for more information about the WebSphere CloudBurst Appliance.
We've been talking a lot about IBM Workload Deployer V3 and we will continue to highlight different aspects of the capabilities it provides in the coming weeks. As we've already mentioned - IBM® Workload Deployer V3 is not just another release of the IBM WebSphere CloudBurst Appliance. While it builds on WebSphere CloudBurst's success, and supports and improves upon all of its original capabilities, Workload Deployer provides new application-centric computing capabilities for your private cloud, and brings you higher utilization, improved ease of use, and more rapid application deployment.
More and more, I am getting a question about how to bring existing WebSphere environments into IBM Workload Deployer. While "bringing in an environment" can mean any number of things, let's take it to mean that a user wants to import their existing WebSphere cells, applications, and configuration into IBM Workload Deployer as a pattern they can subsequently deploy. While there may not be a big red easy button in the appliance that lets you point to an existing environment and import it, there are a couple of techniques that one can employ. I have covered both techniques before, but since I'm getting the question with increasing frequency, I felt like it was time for recap.
The first option is to use a combination of IBM Workload Deployer and Rational Automation Framework for WebSphere. This is a use case I have spoken about numerous times at conferences and in blog posts and articles. In fact, you can read a little about it here. In this sense, RAFW provides excellent capabilities to point at an existing cell, and import everything about it. This includes WebSphere configuration, applications, shared libraries, and more. Once imported as a RAFW project, you can use the IBM Workload Deployer integration script package provided by RAFW to replay that configuration on top of deployments created by the appliance.
The second option is something I talk about a little less frequently. This option revolves around the use of a sample script (provided for free in our samples gallery) that you can run against existing WebSphere cells. The invocation of this script produces IBM Workload Deployer script packages that you can use in patterns to apply the configuration of the target cell to your new cloud-based deployments. Under the covers the utility script and resultant script packages use backupConfig and restoreConfig respectively. They do ensure the update of the cell, node, and host names during the restoreConfig execution (which happens automatically during pattern deployment). Beyond that, the use of the script is subject to the same limitations and rules in place for the use of the backupConfig and restoreConfig commands. You can read more about this capability, watch it in action, and download it for free.
I hope this is all useful information for those of you looking for ways to import existing environments into IBM Workload Deployer as patterns. If you have any questions, please let me know!
I just wanted to point out a great opportunity for anybody considering leveraging IBM Workload Deployer v3 to deploy Database workloads. On June 29th Rav Ahuja, a Senior Product Manager for Data Management at IBM, will be hosting a webcast entitled "Easily Deploying Private Clouds for Database Workloads". He will be joined by Chris Gruber (Product Manager, Database as a Service), Leon Katsnelson (Program Director, IM Cloud Computing Center of Competence), and Sal Vella (Vice President, Database Development and Warehousing) in this panel discussion.
As many of you already know, IBM Workload Deployer v3 comes pre-loaded with DB2 images and patterns that are configured to rapidly provision standardized database servers for any number of purposes. The servers can be deployed in standalone configurations or as part of a complete virtual system including web components with the database components. These servers can also be configured for high availability scenarios. This panel discussion will cover all of these scenarios and more.
You can read more about the webcast in this blog post by Rav Ahuja.
If you want further details about how to build and rapidly deploy databases in a private cloud, be sure to attend this free webinar on June 29th.
In previous posts, I have discussed the integration capability between WebSphere CloudBurst and Tivoli Service Automation Manager. Most recently, I discussed this in the context of integrating WebSphere and IBM CloudBurst. Today, I am happy to announce the publication of an article I co-wrote with Marcin Malawski from TSAM development on the subject of this integration.
If you are a WebSphere user interested in a holistic approach in building out a private cloud, I strongly recommend that you check the article out. If you are currently an IBM CloudBurst, IBM Service Delivery Manager, or Tivoli Service Automation Manager user and you provision a significant number of WebSphere environments, I strongly recommend that you check the article out. In fact, regardless of your current situation, do me a favor and check the article out!
As always, I look forward to feedback and comments. Good, bad, or indifferent. You can leave your comments here or on the article page. I look forward to hearing from you!
I want to stay in the realm of the deployment process for our next frequently asked question regarding the WebSphere CloudBurst Appliance.
The ability to quickly deploy entire WebSphere Application Server cells (anything from single node cells, to multi-node clustered cells) is a hugely compelling feature of the appliance. Instead of spending days or hours deploying a WebSphere Application Server cell, users can deploy these in a matter of minutes (less than twenty minutes for clustered environments)!
For the most part, WebSphere CloudBurst patterns represent entire cells. This includes management parts (AdminAgent, DeploymentManager), managed parts (custom nodes), and proxy parts (IHS). When you deploy a pattern, the result is a complete and fully functional WebSphere Application Server cell running in your private cloud.
So, now that you have a complete cell out in your cloud, what happens if you need to add more nodes? If the the user-demand for the applications on your cell has exceeded the initial topology, can you use WebSphere CloudBurst to add more cells? Sure you can!
In short, this involves creating a pattern that contains only a custom node part, and then at deploy time, providing information about the existing cell. WebSphere CloudBurst then takes over the deployment of that custom node and federates the node into the existing cell based on the information supplied about that cell. I won't go into an entire explanation here, because I think the demo I put on our YouTube channel explains it pretty well.
In my experience with the WebSphere Application Server, this represents a much more seamless and automated process for deploying new nodes into an existing cell than what exists outside of WebSphere CloudBurst today. Of course, we value your comments and feedback above all else. So let us know what you think!
Much of the focus on cloud computing to date revolves around the ways in which cloud computing delivers significant administrative and operational benefits. After all, the more dynamic, autonomic capabilities promised by cloud could go a long way in relieving some of the burden in managing large, complex IT infrastructure operations. Sometimes lost in the cloud computing benefits discussion is how cloud computing enhances development and test groups in an enterprise. I can think of five different ways in which cloud computing strengthens development and test groups:
1) Self-service capability: A defining characteristic of cloud computing solutions is a self-service capability that allows users to commission and decommission computing resources as appropriate. In development and test shops, this means users can directly procure the resources they need to complete their tasks without going through lengthy, manually-driven procurement chains. This results in a significantly shortened procurement period, and it means developers and testers can quickly get to the task at hand.
2) Resource availability: Resource sprawl within IT shops, a very common occurrence, leads to resource deficiencies that are sometimes a problem for enterprise developers and testers. Tasks like testing massive configurations and performing intensive load tests become increasingly difficult as it is hard to harness enough resources to get the job done. Cloud computing, through intelligent virtualization, usage tracking, and more, enables this scattered resource pool to be viewed and utilized as a single logical entity. Resources can be doled out as needed, and intense tasks become achievable without extensive setup or procurement periods.
3) Environmental fidelity: From the time a software application or service leaves a developer’s hands to the time it reaches production, quite a few things about its environment may be changed, often times unbeknownst to the developer. The test and operation teams may have different conventions and configurations than development teams, and this can lead to unintended application behavior and delays in service delivery. Cloud computing offers a potential solution to this problem in the form of the increasingly popular templatized solution stack. These solution stacks are pre-built, ready to deploy configurations, which include the application and entire environment down to the operating system. This stack can be captured as some sort of image (i.e. OVF image, Amazon Machine Image, etc.), and passed off between each team along the delivery cycle. Teams downstream from development see the exact environment in which the application was designed and unit tested, and they can balance needed changes to that environment against a known, working solution.
4) Hosted tools: Though possibly not yet standard operating procedure, one can look at the wave of SaaS offerings and make a reasonable assumption that more and more development and test tools will be moving in that direction as well. Why not? Putting aside the technical challenges of hosting something like a code editor on a network, the benefits of centrally hosting these types of tools are clear. Developers and testers no longer have to worry with installing, configuring, running, or maintaining these enabling tools on their own machines. Instead, they can log into the tools from any machine with a network connection and get work done.
5) Increased focus: This benefit is a culmination of all of the above benefits. By easing the process to acquire resources, making more resources available, ensuring configuration integrity, and removing the burden of maintaining tools, developers and testers are left to focus on their core jobs. The operational and administrative portions of their job are significantly reduced through cloud computing solutions. As a result, organizations are in a position to benefit from more developer innovation, increased test quality and coverage, and more.
The above five ideas illustrate that cloud computing can indeed enhance development and test efforts just as they boost administrative and operational tasks. Development and test teams that understand the benefits they can derive from cloud computing are likely to be proactive in advocating its use. For the cloud computing industry, increasing adoption by development and test groups could lead to widespread grassroots movements that further spread the use of cloud computing throughout enterprises.
IBM trekked further into the cloud today by announcing new offerings that will help clients to leverage the cloud within their enterprise. These offerings include development environments, test environments, and desktop services running either in the IBM cloud or a private cloud, as well as something called IBM CloudBurst (not to be confused with the WebSphere CloudBurst Appliance).
In particular, the IBM CloudBurst offering jumps out to me as a truly innovative offering. This offering promises our clients a complete private cloud solution that includes hardware, software, and services all in a single package.
Essentially it sounds like the IBM CloudBurst offering is all about building out a cloud-enabled data center. The hardware provides the bulk computing power to host private clouds, and the software provides enhanced service management capabilities to give users full control and insight over the elements of their private cloud.
Couple these computing capabilities with included IBM service, and this means clients should be able to get up and going with their private clouds very quickly.
This new offering really seems to hit a sweet spot. While the number of cloud computing offerings continues to grow, few if any offerings take such a holistic approach to providing such a solution.
This type of comprehensive solution gives users what they need in terms of the hardware to host a private cloud and the software to manage that cloud. Just as importantly though, it helps users put the hardware and software to work via implementation services also offered in the solution.
I invite you to take a look at the new IBM CloudBurst offering, and don’t forget to sign up for the IBM CloudBurst webcast scheduled for June 25th.
Yesterday, I had the opportunity to present WebSphere CloudBurst during the IBM Cloud computing for developers virtual event. I provided a brief overview of the appliance along with a demonstration, and then tackled some questions from the 150+ attendees in the audience.
All of the questions were good ones, and I wish I had time to address them all during the session (I will be answering all questions and posting them online soon). However, one of the questions stood out to me because of its relevance to how IBM uses WebSphere CloudBurst in their own labs. Paraphrasing, the question was "Can you share hardware resources (hypervisor hosts) between WebSphere CloudBurst and other components in your data center?"
Very good question. The answer is, of course, yes you can. I don't want to sugarcoat it because it does require thought and planning. Ideally, when WebSphere CloudBurst is using a hypervisor host, the appliance is the only thing acting on that host. However, when WebSphere CloudBurst is not using that host, then you can absolutely repurpose it for use by other components in your data center.
Our WebSphere Test Organization uses WebSphere CloudBurst to aid in their testing of our WebSphere middleware products. The capability to provision hypervisor hosts in and out of the WebSphere CloudBurst cloud is of critical importance to them. Like many organizations, they are resource constrained and must get the most out of their IT investment. They use the Tivoli Provisioning Manager to provision VMware ESX hosts for use by WebSphere CloudBurst, and then they use the WebSphere CloudBurst CLI to define those hypervisors to the appliance and do verification testing of the new resource. This allows them to easily expand and contract the amount of shared infrastructure utilized by WebSphere CloudBurst at any one time, and it means components do not have to statically lock down resources. I have a lot more information to come about our WebSphere Test Organization and their use of WebSphere CloudBurst, but I thought I would give everyone a peek at the kinds of things they do everyday with the appliance.
If you are interested in what I presented yesterday to the attendees of IBM's Cloud computing for developers event, you can check out their developerWorks Group page. In the Activities section, you will find the charts, demonstration, and a playback if you prefer to listen to the session. As always, I appreciate your feedback and questions.
It isn't often that the IT world looks at the federal government as technological pioneers, and the new CIO of the Office of Management & Budget, Vivek Kundra, thinks that is a problem. Kundra is striving the for the federal government to become key leaders in innovation, and in doing so, he's looking at cloud computing as a first step.
Due to the sensitivity and privacy of data the government is often handling, one may not think cloud computing the best fit. Kundra, however, does not see that as a show stopper. "We recognize that whether it's cloud computing or any area of technology there is sensitive and classified information and it cannot be treated the same way as public information, but they are not mutually exclusive." While only a few words, Kundra makes it clear that one of the biggest perceived fears of adopting cloud computing, security and privacy, will not stand in the way of the federal government's march to innovation.
It's still early in his tenure, but the First CIO seems to be serious about his push for cloud computing. He says that he is "killing projects that don't investigate software as a service first", and he is keen on looking to the cloud for storage and web development solutions. Kundra also believes that by leveraging cloud solutions across the multitude of federal agencies, we can ensure that resources are used only when needed by replacing the always-on data center with outsourced solutions where possible. He's also counting on the adoption of cloud computing to send a strong message that government agencies can lead technological innovation.
I doubt anyone would discount the benefits Kundra is seeking by attempting to move the federal government in the clouds. He hopes to reduce tax dollar spending by using only the necessary IT resources, improve end-user services for tax payers, and foster a culture of technological innovation among a myriad of federal agencies. There is no doubt that such a transition and culture change will not come easy, but Kundra sounds dedicated to an honest effort at change. If the federal government is able to effectively leverage cloud computing solutions, I believe it could be a trend-setter for many organizations. If an entity as unwieldy and complex as the federal government can adopt and derive benefits from cloud computing, I believe many organizations that once discounted the technology may take a fresh look at the capabilities at hand.[Read More]
Over the last three posts I've been discussing a few of the most frequently asked questions regarding the WebSphere CloudBurst Appliance. I'd like to wrap up today with a fourth and final installment.
If you have read some of my entries before, or if you have read any of our WebSphere CloudBurst articles on IBM's developerWorks, then you know that the appliance brings extreme simplification and safety to applying fixes and service level upgrades to running WebSphere Application Server virtual systems. Users select a virtual system, choose a fix or service level upgrade, and then WebSphere CloudBurst drives the application of the fix or upgrade to the system. Before applying the fix or upgrade, the appliance takes a snapshot of the virtual system, and users can simply click a button to roll back to the previous state if the process produces undesired results.
This is a pretty strong value add to WebSphere Application Server management and one that our users typically immediately understand. Almost always though, after users see this they are curious about another aspect of rolling out fixes and upgrades in WebSphere CloudBurst. In particular, they want to know how they ensure that all subsequent deployments (after applying the fix to a specific virtual system) can be ensured of having the correct fixes and service levels.
The answer to this inquiry is that there are a couple of different ways to achieve this, and it depends on what you are try to accomplish and your preferences. For instance, if you want to make sure all of your subsequent deployments have a particular interim fix, you will likely go the route of image extension. First, you pick the WebSphere Application Server Hypervisor Edition image in your catalog to which the fix applies. Next, you extend that image, and once a virtual machine based off the image is accessible, you use existing WebSphere Application Server tools (Update Installer) to apply the fix. After the fix has been applied, you can capture the updated image and then use it as the basis for patterns created from that particular version of the WebSphere Application Server.
On the other hand, if you are looking to ensure subsequent deployments are based on a new level of the WebSphere Application Server, your process will be a bit different. First you would load a new WebSphere Application Server Hypervisor Edition image (based on the new level of WebSphere Application Server) into your WebSphere CloudBurst catalog. Then you would select any of your customized patterns you wanted to upgrade to the new level, clone that pattern, and simply select the new image as the basis for the pattern. All of your other customizations are preserved. Really, it's that simple!
I hope that over the last month I have answered some of the more common questions about WebSphere CloudBurst. At any point if you have any questions feel free to email me or leave a comment right here on the blog.
If you've attended one of our WebSphere CloudBurst sessions then you've undoubtedly heard us talk about the "special sauce" or "WebSphere intelligence" delivered by the WebSphere CloudBurst Appliance. If you haven't attended one of our sessions, trust me, we talk about it a lot, but there's good reason. This "special sauce" truly sets WebSphere CloudBurst apart from other virtualization management tools.
Essential to the uniqueness of the WebSphere CloudBurst solution is the WebSphere Application Server Hypervisor Edition virtual image that it dispenses. In one sense, the intelligence comes in the format of pre-installed, tuned, and configured software. The operating system and WebSphere components are all pre-installed, and the WebSphere Application Server configuration is tuned based on best performance practices. In addition, the image comes with a pre-configured instance of each WebSphere Application Server profile type that is available in the version that is bundled. This saves time during deployment since the unneeded profiles are simply removed.
The pre-installed, tuned, configured software only sets the foundation for what truly sets apart the WebSphere CloudBurst solution. The activation framework built inside of the WebSphere Application Server Hypervisor Edition allows WebSphere CloudBurst to deliver unique value. This activation framework allows the single virtual image to turn into many different flavors of WebSphere Application Server (Dmgrs, Standalone nodes, Custom nodes, Job Managers, etc), and it provides the facilities to change WebSphere cell and node names, IP addresses, host names, and more while a running virtual machine instance is being created.
On a mostly unrelated topic, the changing of WebSphere cell names, node names, host names, is done with documented, publicly available commands in either wsadmin or other WebSphere Application Server binaries. I know many customers want to do this exact same thing in their existing environments, so if you are wondering how it is done, drop me a line below.
Anyway, I won't get into anymore detail here because you can get a much better assessment of this special sauce elsewhere. Ruth Willenborg, one of the lead architects for the WebSphere CloudBurst Appliance, did a developerWorks Comment lines piece about this special sauce. Ruth provides a deeper look at the topics I hit on above, and it's a really good read. You can check it out for yourself here.
As Joe mentioned in his last post, virtual application patterns are all the rage in IBM Workload Deployer. The high degree of abstraction provided by these patterns means users can remove tedious, time consuming tasks like middleware installation, configuration, and integration from their field of view. As a consequence, users can build and deploy application environments in unprecedented time, thus freeing up more time to focus on the actual application.
This is obviously important because building and deploying application environments are crucial, traditionally time consuming activities. However, what happens after you build and deploy the application? You manage it, that's what! Joe brought up the fact that IBM Workload Deployer makes this easier too by delivering an integrated management portal through which you can manage and monitor your application environments. Now, this probably already sounds valuable, but what really puts it over the top is the management portal exposes an interface that is workload aware. But, what does that mean?
To get an idea of what that means, consider the case that you use the shipped virtual application pattern to build a simple application environment with a web application and database. You deploy it with IBM Workload Deployer, and your application is up and ready. Now you want to start checking things out. You start by opening the management portal directly from the appliance, and you see both the application and database components listed in the view:
After you looked at basic machine statistics such as network activity and memory usage, you could move on to a more workload-centric view. For instance, you could examine statistics particular to a web application such as request counts and service response times:
You may also decide that you want to alter certain aspects of your deployed environment. As an example, you could update your deployed application or change certain configuration data in the deployed environment:
It is important to note that you have a management interface for each of the components in your environment. That means that from the same management interface, you can manage and monitor the database you deployed as part of your environment. For example, at different intervals, you may want to backup your database. You can do this directly from the management portal provided by IBM Workload Deployer:
Lest you think that you can only manage and monitor, this unique management interface is also a one stop shop for all of your troubleshooting needs. From the centralized portal, you can view log and trace data for each component:
Virtual application patterns are an attempt to encapsulate each phase of your application's lifecycle, from creation to deployment to management. In this regard, I hope the above provides a taste of some of the management capabilities provided by virtual application patterns. It truly is the tip of the iceberg!