In my years of working with WebSphere customers, I have noticed a clear opposition in viewpoints between Dev and Ops. You know how this goes. Development builds a new application using whatever tools and frameworks can be found to satisfy the functional goals of the new project in the shortest period of time. While Dev is burning the midnight oil to get the product out-the-door on schedu...le, the environment in which the new application is developed and tested is optimized for the needs of the developer. The application is thrown over the wall to the sysadmin, who complains that Development have no respect for the operational infrastructure in which the application will be supported for the next five years and no understanding of the cost of tuning (and in some cases re-configuring) the application for the production environment. And given the application was thrown over; the sysadmin was not consulted about requirements of security, provisioning, backup, reporting, and monitoring… And such is a day in a life of Development and Operations.
DevOps is an emerging mindset with accompanying practices and shared tooling to foster collaboration and communication between development and operations. If done right, a DevOps approach will allow customers to ‘release reliable software faster’.
An important way to foster communication is through automation that spans the development-to-production lifecycle. The more that is automated, the clearer the interaction is. Continuous test and deployment are key areas of automation. For example, our IBM China team created an experimental DevOps system. The DevOps process starts with the creation of a new software application project. When the application is created within the IDE, additional application artifacts are created pertaining to test and deployment. These artifacts provide a framework for the developer to “code-in” Test and Deployment objects along with the application. When the application is “deployed”, a process kicks off that includes build, test, and if all goes well, deployment. It happens quickly, and the progression can be viewed on a DevOps dashboard, which shows the continuous deployment pipeline.
A basic requirement for DevOps is an environment that can be tuned well for both development and production. A development environment needs to have good tools, be lightweight, easy to configure, have lightening fast restart times and have fidelity to the production environment; production needs to scale elastically, be resilient to partial outages and provide enterprise security. WebSphere Application Server has provided these production qualities for over thirteen years but this year you’ll see some radical new moves in the AppServer with a profile that enables WAS itself to be one of those shared tools. The dynamic WAS “Liberty” profile will promote rapid development time to value and support a lightweight “packaged server” deployment option in which install becomes as easy as “unzip”. You can see a Beta version of this at http://wasdev.net/
DevOps represents a set of capabilities that will tangibly reduce IT cost, while streamlining the process of application delivery. As we progress in 2012, we hope to incorporate DevOps capabilities into products such as IWD.