What works and what doesn't work in software development? For the first 10 years or so of my career, we followed a strict waterfall development model. Then in 2008 we started switching to an agile development model. In 2011 we added DevOps principles and practices. Our product team has also become increasingly global. This blog is about our successes and failures, and what we've learned along the way.

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. The comments may not represent my opinions, and certainly do not represent IBM in any way.

Tuesday, November 6, 2012

Interview about DevOps and SmartCloud Continuous Delivery

Here's an interview I recently gave to a fellow colleague of mine, Tiarnán Ó Corráin.  This seems like a good time to reiterate that these views are my own, and not the official views of IBM:

What is DevOps?

You can think of it as an extension of the principles and practices of Agile.  Where the Agile methodology breaks down the barriers between development and business goals, DevOps is breaking down the barriers between development and operations.  It's not all about tools; it's about people and processes as well.  Both Agile and DevOps have a goal of delivering reliable software to the business more quickly, and ultimately, making more money!

How does DevOps do that?

Well, traditionally there has been a problem between going from a development system to a production system: installing new machines, installing the software, scripting and so forth. Getting from a working development system to a working production system involved all of these manual steps, and introduced many points of failure.

In addition, because setting up test machines was so time-consuming and error-prone, developers would often assemble their test machines in a quick and dirty way, on a single server, with the cheapest, simplest components.  Production systems, on the other hand, would have multiple servers, configured for clustering and fail-over, with firewalls between some components.  This meant that the developers weren't testing the software in an environment similar to the one where it would run in production.  And because of that, some bugs were never found until the software was deployed into production.

One of the primary tenets of DevOps is that you should automate every step in creating production systems.  Everything from preparing the machine, to installing the latest software, to starting the services, and testing them, should be fully automated and repeatable.  And when creating production systems is automated, you can also use production-like systems for development and test work.

How does virtualization help that?

When we're working in a cloud environment, deploying a virtual machine is something that can be scripted and automated.  We use infrastructure code to automate deploying the machine, installing the software, and (re)starting the services, and then we check that code into our source code repository and version it just like the application code.  So effectively the process of deploying a new system becomes part of the development process.

Presumably that makes testing easier?

Very much so.  Our virtualization technology means we can deploy production like environments as part of the development process.  It's the way the development process has been trending recently.  We already have continuous integration: RTC (Rational Team Concert) triggers automatic builds when changes are submitted, and we run unit tests against those builds.

Now, take that to the next level with continuous delivery: after changes trigger builds, those builds trigger deployments, and when the deployments are complete, the builds trigger automated tests.  What it means is that as part of the development process, we have production like servers running the latest code.  This allows us to run automated tests including performance verification against a production like environment as part of the development process.

Taking Agile to the next level?

Yes.  It accelerates development, because it takes away some of the uncertainty about deployment: if I can capture every part of the deployment process in my development and testing process, I have more confidence about what I'm going to deploy.

Deploying test systems automatically also saves developers and testers a lot of time!  On my own development team, it's normal for us to deploy dozens of new servers every day, and delete the old ones just as often.

Can you tell me a bit about your own role?

I'm on the advanced technology team that works on DevOps.  We are driving an internal transformation within IBM, to encourage our own development teams to adopt DevOps principles and practices.  In addition, we are creating tools to help IBM's enterprise customers adopt DevOps themselves.  The first tool we developed to sell is SmartCloud Continuous Delivery v2.0, and it's shipping to customers this week.  SmartCloud Continuous Delivery is currently targeted at customers who want to improve their dev/test cycle.    We believe this is the easiest place for our enterprise customers to start taking advantage of these new technologies.  We have other tools to help with production deployments, like SmartCloud Control Desk.

How is it going down in the market?

These ideas are gaining real traction, both within and outside of IBM.  Internally, we already have several adopters of continuous delivery for dev/test.  For instance, Rational Collaborative Lifecycle Management is using our code, and other teams like SmartCloud Provisioning 2.1 have custom continuous delivery solutions that are very similar to ours.  And of course, we're using it ourselves -- SmartCloud Continuous Delivery is self-hosting.

What would you say to any teams that are interested in this approach?

If anyone would like to evaluate the SmartCloud Continuous Delivery product, please check out our website.  We have free trials available.

Even if you're not a good candidate for SmartCloud Continuous Delivery, your team may be able to use several of the DevOps principles and practices.  Check out our Enterprise DevOps blog for ideas, and feel free to contact me about that as well.  IBM even offers DevOps consulting workshops.


  1. Thanks for sharing the nice information about DevOps Training in Hyderabad DevOps Training in Hyderabad and i have read many blogs but out of them your blog is the nice one to read and you gave valuable information about DevOps.

  2. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.

    devops training in bangalore

  3. You made some good points there. I did a search on the topic and found most people will agree with your blog.Devops Training Institute in Chennai

  4. Thank you for sharing wonderful information with us to get some idea about that content. check it once through Devops Online Training Hyderabad

  5. Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information...Devops Training in Chennai

    Devops Training Institute in Chennai

  6. I read your Blog, this is the valuable content it helps for learners. Thanks for sharing, Keep share more content on Devops Online Course

  7. really cool post, highly informative and professionally written and I am glad to be a visitor of this perfect blog, thank you for this rare info!
    devops training in hyderabad

  8. Thnq for sharing your ideas with is. Its very useful for me to develope my knowledge.Nice work keep going DevOps training in chennai

  9. If you're looking for Experienced DevOps Interview Questions for Experienced or Freshers, you are at right place. There are lot of opportunities from many reputed companies in the world. According to research DevOps has a market share of about 10%. So, You still have opportunity to move ahead in your career in DevOps Engineering. Mindmajix offers Advanced DevOps Interview Questions 2018 that helps you in cracking your interview & acquire dream career as DevOps Engineer.

    Click Here: Devops Interview Questions

  10. Thank you for sharing wonderful information Its very useful for me to develop my knowledge.Nice work keep going keep sharing posts on Mobile App Development

  11. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details. Best Java Training Institute Chennai

  12. This blog really helpful for us thanks for sharing valuable information please keep share more content on Devops Online Training Hyderabad

  13. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
    Devops Training in Bangalore

  14. Hi, Your post is good. Its so useful for me about Devops.Thank you for your post.
    Devops Training in Chennai

  15. This is an excellent blog thanks for sharing valuable information with us, please check it once at Devops Online Training Bangalore

  16. nice blog!! provided good information about DevOps but it's necessary to know how to get devOps as a services from Service provider. please write more information about it to know more. Thank You


  17. Very Impressive Hadoop tutorial. The content seems to be pretty exhaustive and excellent and will definitely help in learning Hadoop course. I'm also a learner taken up Hadoop training and I think your content has cleared some concepts of mine. While browsing for Hadoop tutorials on YouTube i found this fantastic video on Hadoop. Do check it out if you are interested to know more.https://www.youtube.com/watch?v=1jMR4cHBwZE

  18. I read your Blog, this is the valuable content it helps for learners. Thanks for sharing, Keep share more content on DevOps Training in Chennai

  19. Hello,
    Thank you for sharing your experience the process thus it is very much interesting and i got more information from your blog.

    DevOps ensures system implementations are enabled to develop point solutions. It integrates both development and operational abilities along with traditional responsibilities within a single team. DevOps Tutorial Point promotes software excellence with seamless transition along with improving quality. DevOps Tutorial is focued on :

    Establishing a culture of collaboration,
    Accelerating time to market with customer feedback,
    Maintenance of current quality to drive improvements,
    Leverage platforms to enable turnkey environments,
    Automate traditional operational and development responsibilities.

  20. Nice blog. Explained well. I have suggested to my friends to go through this blog. Very nice explanation after learning. Thank you for sharing this useful information.

    devops training in chennai

  21. Thank you for posting such amazing article.Its easy to understand.I have learned lot of thing from your post.

    aws training in chennai

    selenium training in chennai

    python training in chennai


  22. Really it was an awesome article… very interesting to read…
    Thanks for sharing.........

    Devops online training in hyderabad

    1. The article is super.I liked the way of presentation.It gave useful information.
      DevOps Training In Chennai | DevOps Training Institute In Chennai

  23. Best article for DevOps.Its easy to learn.please Upload other article.Thankyou
    DevOps Training Institute In Chennai

  24. From this article I understood the basic of DevOps.Thank you for posting an article.
    Best DevOps Training In Chennai

  25. Good informations It mayt be Helpfull for me thanks alot for sharing, Know how Development and operations will work in one platform

    DevOps Training in Chennai | DevOps Course in Chennai

  26. The way of presentation was good.I liked your article.I got lot of information.Thank you
    DevOps Training Institute In Chennai | DevOps Training Institute In Chennai