Innovate 2014 - DevOps for the Enterprise in Action
RosalindRadcliffe 100000CDYG Visits (1552)
This years Innovate in Orlando Florida was a great opportunity to talk to many of our clients about their challenges, but the week started out with a real challenge for me and a few of my fellow DEs. Our challenge was to show a mobile application developed in the public cloud getting data securely from a back end system behind all the company firewalls, and to show it live on stage. In the process, we were to show off the latest IBM capabilities for development in each of these environments. Live demo's are bad enough, but a live demo with this many parts was something else.
For the demo we started out with a Bluemix application for the mobile front end. Fortunately this was already built for our demo at IMPACT.
The next part was to define the interface between this front end application and the backend to get the necessarily data. Defining the interface was a real challenge, as the front end team did not really have a set definition so that took some work.
Once we had the interface definition, my team created a virtual service with Rational Test Virtualization Server, and a test case to go with it, to allow the Bluemix application to continue to be developed while we worked on the back end. But this virtual service and, once it was completed, the real service were behind the IBM firewall. To connect from the public cloud to the secure IBM systems we used Cast Iron live. A simple proxy definition was created that I ran on my behind the firewall server, and the Cast Iron service was created in the public internet. Now the Bluemix app had to be updated to include the Cast Iron service and we were all set, test data showing in Bluemix from the virtual service.
To complete the CICS application, once we really had the specifications right, using Rational Developer for System z and Rational Team Concert the CICS transaction and the appropriate WSBind files were implemented. With RTC we created two build definitions, one for the dependency build for the Load modules and database updates, and one for the generation of the WSBind files. The first build kicking off the second build when required.
The second problem was how to deploy this application, it had both traditional load modules, a DBRM to process and the WSBIND files to be deployed. This is where the new capability of UrbanCode Deploy came into the picture. We added the post build step to both RTC builds to integrate with UrbanCode deploy to indicate new versions were created. In UrbanCode deploy we created Dev environment with a simple process to deploy the different parts of the CICS application. Once the Dev environment was deployed and tested we created the production environment definition and deployed the application for production to allow the Bluemix application to access it, but in this definition we added a few additional steps in the deployment, after the parts were deployed, we ran the test case to validate the service was responding correctly, and only then did we turn off the virtual service stub to allow the Bluemix application to get the real data.
As demo's go this one had all the opportunity to be a real problem, and doing it on the main stage was sure to add to the demo worries, but in the end it all came out wonderfully. It was just the three of us DE's on stage, but in reality we had help in the back building the application parts, configuring Cast Iron Live, and setting up the virtual service, and a few in the back room just in case there was a problem. Not only was it shown on the main stage, but at many other sessions to allow clients to get a closer look. You can watch how it all came out in the recorded version of the keynote session, the live demo starts about 22 mins in if you want to skip to it. http