It’s all about the speed: DevOps and the cloud

As I explained in my earlier blog post, “Cloud accelerates the evolution of mankind,” I believe that cloud has the power to change the world. It achieves this by giving us speed—and this has an exponential affect.

DevOps and the cloudWhen I first became a professional software developer in the late 1980s, we spent two years designing and writing a software product that our team thought was what the market wanted. We went through a very thorough waterfall process of design (code, unit test, functional verification test, system test, quality assurance) and eventually released the product through sales and marketing. This cost us millions and eventually sold 14 copies.

More recently we’ve begun to adopt lean principles in software innovation and delivery to create a continuous feedback loop with customers. The thought is to get ideas into production fast, get people to use the product, get feedback, make changes based on the feedback and deliver the changes to the user. We need to eliminate any activity that is not necessary for learning what the customers want.

Speed is key. The first step was to move from waterfall to a more iterative and incremental agile software development framework. After that, the biggest delay was the provisioning of the development and test environments. Citigroup found that it took an average of 45 days to obtain space, power and cooling in the data center, have the hardware delivered and installed, have the operating system and middleware installed and begin development.  Today, we replace that step with infrastructure as a service (IaaS).

The next biggest delays in the software development lifecycle are the handovers. Typically a developer will work in the line of business. He will write, build and package his code and unit test it. He then needs to hand it over to the IT operations department to provide a production-like environment for integration, load and acceptance testing. Once this is complete the developer hands it over completely to the operations department to deploy and manage it in the production environment. These handovers inevitably introduce delay and also introduce the chance for errors as the operations team cannot have as complete an understanding of the solution as the developer. Also there will be differences between each environment and so problems can still arise with the solution in production.

By introducing a DevOps process, we begin to merge the development and operations teams and give the power to the developer to build solutions that are stable and easy for IT operations to deliver and maintain. Delivery tasks are tracked in one place, continuous integration and official builds are unified and the same deployment tool is used for all development and test environments so that any errors are detected and fixed early. With good management of the deployable releases, development can be performed on the cloud for provisioning to an on-premises production environment or the reverse; solutions can quickly be up and running in the cloud and as their usage takes off it may prove economical to move them on premises.

Of course there is risk in giving the power to the developer. The handover delays happen for a reason—to ensure that the solution is of sufficient quality to not break the existing environment. This is why the choice of tooling is so crucial. The IBM UrbanCode solution not only automates the process but provides the necessary governance.

Application release management

As I discussed in my blog post “Cloud’s impact on the IT team job descriptions,” introducing IaaS to this means that the role of the IT operations department is reduced. They may still be needed to support the environment, especially if it is a private cloud, but the cloud gives self service to the developer and tester to create and access production-like environments directly. It brings patterns to automatically create and recreate reproducible infrastructure and middleware environments.

In my next post I will discuss the next step that can be taken to increase the speed of the development cycle: platform as a service (PaaS). What do you think about the role of speed with DevOps and cloud? Leave a comment below.

Share
Comments Off
Sam Garforth

About Sam Garforth

Sam Garforth has been a cloud architect and BDE since the start of 2011, leading the team designing, planning and delivering cross brand cloud solutions to the public sector in the UK and Ireland, directly and through system integrators. Sam was recently elected to the position of Technical Staff Member TSM, which recognises sustained, distinguished and substantial achievement by IBM's most outstanding technical performers, and exceptional contribution to IBM's technical leadership. For the preceding four years, as a Software Client Architect in the Financial Sector he led technical teams contributing to substantial deals, as well as designing solutions for whitespace investment accounts. Prior to rejoining IBM he was EMEA General Manager of Nastel Technologies which, as the first UK employee, he built into a high revenue IBM and HP business partner providing management software for IBM and other technologies. From 1988-97 Sam worked at IBM Hursley in development and technical sales of WebSphere MQ. Outside of work Sam was previously very involved in music, leading and managing bands. Now, with two young children, he is a school governor and enjoys skiing & scuba diving.
This entry was posted in All Posts and tagged , , , , . Bookmark the permalink.