IBM Innovate is a technical event for software and systems innovation. IBM states that the event is designed to help gain a clear insight into the critical role of Application Development and Systems Engineering for an organization. I had the opportunity to visit the event in Brussels.
After coffee and breakfast, Kevin Stoodley performed the keynote. His main focus was on DevOps as a way to reduce the time to the customer, since software delivery is critical. In general “Development” wants to be agile and move quickly, while “Operations” prefer to keep everything stable and slow down change. DevOps can solve this difference, by cooperating from the beginning. IBM wants to achieve this, by using a similar set of tools in a collaborative development environment (eg. make the IDE available to “Operations” for debugging). These tools include:
- software for continuous and early testing
- one visible deployment pipeline for all environments (possibly with different business processes, eg. approvals)
- continuous monitoring to detect the problem faster and to "get to know" the customer
- traceability throughout the complete application life cycle
Collaborative and Continuous Software Delivery through DevOps
After the keynote, I attended the “Software Delivery” talk on DevOps. This talk introduced the Open Services for Lifecycle Cooperation (OSLC) website Jazz. Jazz is IBM’s initiative for improving collaboration across the software & systems lifecycle. The download section on the website features quite a lot of IBM products to enable this collaboration, but also features adaptors for other products such as HP ALM, Git and Jira. The talk featured a slide called “Why DevOps?” with this answer:
- Deploy faster, deploy often
- Reduce cost, reduce time to customer
- Increase quality
- Increase environment utilization
- Virtualize development and test environments
- Decrease time to reproduce and fix defects
While not stating new principles, it was nice to see it all listed in a clear and concise manner. After the “Why?” a slide followed displaying the “What?”:
- Continuous Integration
- Continuous Delivery
- Continuous Test
- Continuous Monitoring
- Infrastructure as Code
A lot of more in-depth information is available in these “Understanding DevOps” articles, by Sanjeev Sharma. “Understanding DevOps” is available in 5 parts on the website and contains a lot of useful information. It is also possible to get a free “DevOps for Dummies” eBook (51 pages) on the website.
Continuous Release and Deployment with uRelease and uDeploy
After the theoretical talks, I was ready for some demos. Compared to Jenkins or Hudson, UrbanCode Deploy also featured a nice versioning inventory (eg. version x on UAT, version x-1 on PRD) to facilitate deploys. It also has the possibility to activate an approval and compliance process (eg. person y has to accept a deploy on PRD). It reminded me quite a bit of LiveRebel (especially the “overview dashboard”), but seemed to have more features then ZeroTurnaround’s LiveRebel.
UrbanCode Release on the other hand is responsible for release planning and automation. It allows for realtime tracking of release events and also keeps track of the external actions a release needs (eg. database scripts). While UrbanCode Deploy is application centric, UrbanCode Release is more release centric.
To achieve most of the previous concepts, Service Virtualization is necessary. Simulating the behavior of a selected component:
- reduces risk
- can increase quality (test earlier)
- reduces cost (no need for a physical environment)
- reduces time to market (able to test parts of an application before it's completely finished).
IBM positions Green Hat as their tool for Service Virtualization.
Develop and Integrate Mobile Apps to Drive ROI
Before this talk, I attended another mobile talk on Automated Mobile Testing. IBM’s Rational Test Workbench has some features to record and playback GUI actions and report on the result. While I like the idea, the demo did not really impress me. I think the standard SDK’s have better options for this. The second mobile talk (drive ROI) was more interesting. It started with some of the main differences between mobile and typical enterprise applications:
- Mobile is fast and evolves faster
- Security (not a controlled environment)
- Distribution + management
IBM has released Worklight: an Eclipse plugin to quickly develop mobile web, hybrid, and native apps across multiple mobile platforms. What caught my attention was that it is being built on Apache Cordova. Apache Cordova is the open source project powering PhoneGap. Worklight has several components that might have a real added value for a mobile project (keep track on deployments, versions, analytics, ..). Most native stores also come with these features, but Worklight is able to track this information for different target platforms, all in 1 place.
IBM Innovate was an interesting event that illustrated the clear vision of IBM on software development. Their products seem to be nicely integrated, which might be an advantage over their open source alternatives. As a developer though, I’d prefer to have the benefits of open source products.