Next Tuesday, June 26th, I’ll be speaking at the New York PHP user group about the project I led to bring the Zend Application Fabric onto IBM’s on-premise private cloud rack, PureSystems, and onto IBM’s public cloud, SmartCloud Enterprise.
I’ll describe the Zend Application Fabric for highly available PHP clusters, and show how its topology is supported by scaling and failover policies built into the IBM platform. I’ll also show how it integrates with the DB2 based Database-as-a-Service.
At the core of the Zend/IBM system is an IBM virtual application pattern (based on the TOSCA standard) that specifies how virtual machines are layed out, which other VMs they should link (or react) to based on life cycle events, and when they should scale up or down.
You will learn how to activate the Zend pattern, customize the topology, set a scaling policy, monitor the infrastructure, tweak the Zend configuration, view IBM elasticity and fault tolerance in action, and perform repeatable deployments using a template.
IBM developerWorks has just published the final part in our series on migrating a PHP application from MySQL to DB2.
Learn why to move a PHP application to DB2, how to plan the migration, how to execute it, how to support it, and how to handle potential risks based on the experience of an IBM intranet application case study. This four-part series shares lessons from a successful MySQL-to-DB2 migration for a mission-critical PHP intranet application used by 4,000 global users within IBM to support content production for ibm.com.
- Part 1: Prepare for your migration
- Part 2: Migrate your data
- Part 3: Convert your PHP code
- Part 4: Deploy your application
In addition to sharing our own experience, the series highlights the number of resources available to you to carry out your own migration.
This month we have a double feature at New York PHP.
IBM developerWorks just published an article I wrote about using the Development and Test Cloud to create PHP applications.
If the content looks familiar, you may have seen an earlier version in a print copy I handed out at New York PHP (PDF) late last year.
Speaking of the cloud and NYPHP, don’t forget to join us next week to look at an alternative way to use the cloud to develop PHP applications using Amazon and RightScale.
IBM developerWorks has just published the first article in a series that Mark Nusekabel, Yan Li Mu and I wrote about our experience migrating a large PHP and MySQL application to DB2.
In the four part series we look at preparation, switching databases, porting code, and finally deploying the application. This first installment covers the steps to plan and resources to consult when starting a migration project.
The article series and the developer’s guide may also be useful to those who have a contract for the GA version of Development and Test.
Another option to evaluate DB2 for a migration is to use the Amazon EC2 AMIs pre-configured with IBM software individually.
Or, if you’re interested in managing several instances or more complex configurations, RightScale and IBM have collaborated (PDF) to bridge the Amazon and IBM clouds.
So, if you’re considering a new relational backend for your application, the developerWorks migration series, the PHP developer’s guide for the IBM cloud, and the images within the Amazon and IBM clouds will give you a new set of tools to make evaluating the move and executing the switchover much easier.
I had to double check the calendar when I first saw this gem in the AIX online documentation yesterday, but it was still March, not yet April first.
AIX 6.1 information > Commands > Categorical list of commands
Purpose: Starts the hunt the wumpus game.
Description: A wumpus is a creature living in a cave with many rooms interconnected by tunnels. You move among the rooms trying to shoot the wumpus with an arrow and trying to avoid being eaten by the wumpus or falling into bottomless pits.
As far as I can tell, this command is a hand-me-down from when the System V UNIX-based AIX incorporated bits from BSD.
I suppose this and the other games are still there for those customers using AIX on workstations (rather than bored sysadmins monitoring high-end servers… I hope).
I moved to a new position within IBM at the beginning of the year, joining the Enterprise Initiatives organization responsible for delivering IBM Smart Business Development and Test on the IBM Cloud.
Before I joined this team, Development and Test launched as a free public beta in 2009. Throughout 2010 we’ve incrementally improved the pilot and in the near future a generally available pay-per-use version will go live.
I’ll describe some of the features that Development and Test beta has now, highlight some usage scenarios that it can enable or improve, and along the way tell you where to learn more. As always, the standard disclaimer applies.
In a future post, I may put together step-by-step instructions on using the virtual machines on the IBM Cloud to:
- Build PHP with an instance of DB2 as a way to illustrate how system administrators can evaluate the platform or practice configuration.
- Verify that a sample Java EE application written for Tomcat works unmodified on WebSphere.
IBM Smart Business Development and Test on the IBM Cloud
Like many Cloud technologies, Development and Test aims to reduce the time and money spent by customers to procure, configure, and run IT infrastructure, platforms and software.
But the target of this particular system is to:
- Give developers and testers hands-on access to IBM software in minutes rather than days or weeks.
- Provide application developers with an environment to write and run their applications.
- Allow usage to scale up or down depending on the phase of the project.
As a result, users will have more confidence in the quality of their work and are able to make better informed choices about its hosting environment when they deploy.
The Development and Test beta is a Web application that provides a dashboard for managing Cloud resources, a catalog of images to start with, and a set of APIs (Web service and command line) for accessing assets programmatically.
With it, you can:
- Provision virtual servers
An application developer can quickly start up an instance of a server OS, such as Red Hat Enterprise Linux, that is pre-configured with WebSphere or DB2, for example.
With an operating system and middleware in place, the developer can try out the software setup or verify that their application works on that particular configuration.
- Set up virtual development environments
A developer can request a fully configured IDE instance, such as the Eclipse-based Rational Software Architect, and connect to it using a virtual desktop like FreeNX.
Alternatively, the user can integrate with a hosted instance of Rational source control, automated testing, and project management software from the physical workstation they already use.
- Save and extend configurations
Once the team is satisfied with the product or system at a point in time, they can save a snapshot image of the configured instance.
That image can then be used as a template from which to create new instances that can be shared with others. Those images can also be tagged as a test release or captured as a known good savepoint to build upon.
Beyond the catalog of pre-configured IBM software stacks in the system now, IBM is working with partners to add third-party pre-configured packages on the Cloud.
In all cases, the user acquires the resources s/he needs right away without the need to find and run hardware or download, install and configure software.
This shortens project start time, reduces time spent on configuration trial and error, allows for more development iterations in the schedule given the same project length.
Otherwise, if you want to hear my take how I think this particular Cloud platform can make life a whole lot easier for anyone involved in software development, read on.
Since this approach reduces much of the time and money to get hardware and set up software, several new possibilities and potential use cases come to mind.
Imagine the following scenarios that can be made possible or made much easier:
- You are an innovator who needs a place to demo an early prototype to potential investors in order to justify further development.
- You are a developer who has created an application on your laptop with a Personal or Express edition of IBM software and you want to see if it will run on a WebSphere and DB2 server to see if there are unexpected differences.
- You are an independent software vendor who has verified your software on Tomcat (or PHP) and MySQL and wants to widen your potential customer base to include those customers who have an IBM infrastructure.
- You are a committer to an open source project, and you want to replicate an issue reported by a user and and debug it using the configuration they have on their system.
- You are a student who wants to build skills or experience hands on or do comparative research between operating systems and software vendors.
- You are a standards body member, such as for ODF or Java EE, and want to see how a vendor implementation adheres to the specifications.
- You are an author, you can make sure your readers have a copy of your sample code.
- You are an instructor, you can make sure your students have an identical setup to reduce class prerequisite setup time.
- You are a system administrator, and you want to test out an upgrade on an identical server before committing changes that are time-consuming or difficult to reverse on your own system.
The Development and Test on the IBM Cloud beta is available to use for free right now. In the coming weeks, a paid, stable and supported version will be available that charges on a usage basis.
If you want to take it for a spin, have a look at the developerWorks overview article or user guide (PDF) in order to get started with the beta. The support page offers forums, FAQs and getting started videos.
You may also want to follow the new developerWorks section and join the user community to learn more about this platform in particular and Cloud computing in general.
Enjoy, and don’t forget to check back here in the coming weeks to see those step-by-step PHP/DB2 and Tomcat/WebSphere tutorials.
With several vacation days to cash in through the end of 2009, I hope to catch up on some reading and learn more about the latest developments in the two areas where I do most of my work as a Web application developer – Java EE Web applications built on IBM WebSphere and PHP Web applications using various Zend products.
About a month ago I performed a technical pre-publication review of the second edition of the MySQL to DB2 Conversion Guide that was just released this week, but the following books will be covered from an end user point of view, after general availability.
WebSphere eXtreme Scale is an in-memory data grid used to cache objects and improve both performance and scalability in Java EE applications. It’s analogous to memcached.
I’ve read the first chapter so far and am looking forward to diving into the rest shortly, particularly as I continue to tune a high-volume WebSphere application set to launch an update later this month.
Pro IBM WebSphere Application Server 7 Internals
My next review will be a related middleware title, Pro IBM WebSphere Application Server 7 Internals by Colin Renouf. Apress also sent me a review copy of this book, along with the next title.
I’ve read a few chapters so far, and am quite intrigued by how the author has exploited the modular Eclipse (didn’t know that!) underpinnings of WebSphere 7 to produce some interesting system administration plug-ins.
Of most interest to me about this book is that the author is neither an IBMer with access to WebSphere’s source code, nor writing to sell the reader on IBM middleware, but rather a seasoned pro with lots of practical experience getting the most out of WebSphere.
Rather than a catalog of architectural, object-oriented software patterns, this book describes several techniques for developing effective and efficient PHP applications using best practices based on Coggeshall’s years at Zend working on several large scale projects for enterprise customers.
I’ve read two of the chapters in this book that are of prime interest to me, “Web Application Performance and Analysis” and “Data-Caching Strategies in PHP.”
The former looks at diagnosing whether an application is CPU, memory, or I/O bound. This server level approach moves beyond profiling PHP code and looking at the hardware itself. Even for applications moving to the Cloud, this should remain extremely relevant.
The latter chapter has much in common with the WebSphere eXtreme Scale product above, so it will be interesting to learn more about the state-of-the-art in both PHP and Java EE Web application performance techniques.
So far so good
Stay tuned for the more complete reviews in the coming month or two. Right now it seems that all three titles are solid additions to any Web application developer’s library, but I’ll hold out my final verdict until I have a chance to evaluate each more thoroughly.