IBM is an industry leader in the speed of releasing software applications and updates to their customer base. IBM deploys updates and applications approximately every two weeks, with a median deployment time of less than an hour from start to finish. This stunning deployment rate was made possible by approaching the process strategically and investing in the right tools that make it easier and faster to achieve high deployment frequency.
This article will explore how IBM achieved such a high deployment frequency, the strategies they adopted, and the products they used to ensure their applications are always deployed quickly and accurately. We will also look at why a high deployment frequency is so important in our fast-paced digital world and provide steps and tips on how you can reach comparable successes with your organisation’s deployments.
Overview of IBM’s DevOps Journey
IBM has achieved an impressive feat, going from deploying twice a week to 100+ times a day. This has been made possible by combining devotion and clever implementation of DevOps practices.
Let’s take a look at an overview of IBM’s DevOps journey and how they were able to achieve this remarkable goal.
Before the introduction of DevOps, there was a significant disconnect between the development and operations teams. Development teams had little to no consideration for actual deployment, leading to various issues once the product went into production. Additionally, both teams were reluctant to work together initially and there was no real strategy for communication or collaboration leading to lengthy development cycles.
Apart from a major disconnect between the two teams, IBM also faced sporadic code deployments due to lack of consistent standards throughout the organisation. Furthermore, manual testing took up an immense amount of time as automated testing solutions had not yet been deployed within IBM.
The Journey to DevOps
Since 2005, IBM has been on a journey to adopt DevOps culture and practices. As one of the world’s largest IT companies, achieving high deployment frequency is challenging; however, it has managed to do so by implementing DevOps methodology. In addition, by focusing on the processes and infrastructure required for successful change management across all of its divisions, IBM has successfully reduced cycle times from years to days or even minutes.
The following outlines some key steps taken by IBM that helped it to successfully transition from traditional development practices to a modern DevOps culture:
1) Designing a multi-speed architecture that focuses on adapting quickly to changing customer and market needs;
2) Implementing an agile delivery model that allows teams to iterate quickly while delivering measurable value at each step;
3) Leveraging automation tools such as IBM UrbanCode Deploy, Jenkins, Git and GitHub to increase the speed of feedback driven deployments;
4) Increasing efficiency in managing risk around changes by using event-driven validation techniques that ensure proper monitoring , logging and testing occur;
5) Utilising key metrics such as deployment frequency, lead time for changes etc., and setting targets for constant improvement in these areas;
6) Establishing cultural norms such as cross-team collaboration and blameless postmortems after incidents where the focus is always on problem solving rather than assigning blame;
7) Leveraging intelligent tools such as AI/ML while developing new applications. Of particular interest is Watson Operating Environment (WOE), a suite of tools designed specifically by IBM that enables development teams to rapidly develop new applications while ensuring they remain to observe secure standards.
IBM goes from deploying twice a week to 100+ times a day
IBM has made a remarkable transformation in their DevOps journey. They have increased their deployment frequency from twice weekly to over 100 times daily. However, this transformation could not be achieved without a few key components.
Let’s take a closer look at those key components and how they enabled IBM to reach such an impressive deployment frequency.
IBM leveraged automation to improve their deployment frequency. By automating mundane, repetitive tasks, IBM was able to save developers time, resulting in quicker deployments. In addition, this automated approach allowed IBM to ensure the consistency of its code and its products across different environments and development teams in various regions worldwide.
IBM implemented various forms of automation including creating infrastructure-as-code patterns, writing scripts for validating key changes within their environment and using existing open source releases for automated testing. Additionally, IBM improved their deployment process through automation by leveraging Jenkins as part of their Continuous Integration/Continuous Delivery (CI/CD) pipeline. Jenkins allowed them to define stages of the build and test process, furthering their ability to automate system tests required at each stage and providing IBM with quick feedback on the quality of the deliverables before they reached production.
By utilising all these automation techniques, IBM was able to achieve a high level of consistency while speeding up their deployment process at the same time.
Adopting a DevOps approach can have multiple benefits for organisations. For example, one of the core components of IBM’s DevOps transformation was the introduction of Agile methodology. This approach is based on self-organising, cross-functional teams focused on creating products and services in a continuous iteration cycle. By adopting this method, teams can deliver increments of product or service faster and with greater quality.
Agile Methodology focuses on delivering value to the customer quickly and efficiently by utilising shorter development cycles known as sprints. In a sprint, development tasks are broken down into smaller sub-tasks, enabling team members to work in parallel while meeting deadlines. Flexibility is also an important part of agile methodology. Teams can pivot direction based on customer feedback quickly and efficiently without being hindered by having to recreate plans each time direction changes.
Communication between all team members is paramount for Agile Methodology to be successful. There should be frequent communications between all stakeholders during customer reviews, sprint planning, and retrospectives to ensure everyone is on the same page throughout the project lifecycle. Additionally, there should be quick feedback cycles after each iteration with customer reports being discussed regularly so that teams can adjust strategy when needed. This communication will help improve collaboration between various stakeholders and create a smoother flow from one product/service to another over time, resulting in faster delivery times for customers at each release cycle.
Continuous Integration & Delivery
Continuous integration and delivery is one of the key components of IBM’s DevOps transformation. Continuous integration (CI) is a process in which developers merge small changes into large bodies of code and then automatically test the large bodies of code. This helps reduce the testing needed later in the development lifecycle since bugs or other issues can often be detected through automated tests early on. In addition, to further increase software quality and reduce cycle times, organisations can also implement continuous delivery (CD).
CD goes beyond CI by bringing tasks such as releasing, testing, and deploying software up front in the development cycle so that it is ready to go at any time. This provides:
- Faster feedback for users and customers.
- More flexibility for product teams.
- Fewer risks associated with production deployments.
By employing continuous integration & delivery practices as part of their DevOps transformation strategy, IBM achieved a high deployment frequency with consistent reliability—deploying over 11 million times daily!
Results of IBM’s DevOps Transformation
With their DevOps transformation, IBM increased their daily deployment frequency from twice a week to over a hundred times. Their goal drove this transformation to become a cloud-native organisation.
This section will explain how IBM achieved such a high deployment frequency and the results of their transformation.
Increased Deployment Frequency
By introducing DevOps practices, IBM drastically increased deployment frequency and improved time to market while maintaining high quality standards. With the continuous delivery methodology at its core, IBM standardised practices, automated processes, and utilised self-service tooling to achieve its goals.
This included automating build jobs using Jenkins and transitioning more resources within their software lifecycle to self-service automation tools like UrbanCode Deploy. This not only increased deployment frequency, but also provided increased traceability between teams. In addition, many of these automation tools drove process consistency across teams, enabled collaboration between roles, allowed for faster onboarding for developers and helped reduce human errors due to manual tasks during deployments or code reviews.
IBM also implemented dev/test environments that were pre-provisioned for users on demand, allowing them to deliver the necessary development environment rapidly. This provided developers with an up-to-date development stack throughout the entire development cycle that was updated regularly from their main deployment pipeline. With shorter release cycles becoming a priority for their application lifecycle management (ALM), this solution improved overall testing efficiency by allowing earlier integration workflows before major deployments. As a result, they reduced system failures caused by incompatibilities between components of different versions, drastically decreasing failure rate upon deployment in production environments.
All of these transformations lead IBM to achieve better results when it came down to delivery times and fewer errors in the setup process when the applications were being deployed into production environments due to standardisation efforts that took place prior to allow smoother technical deployments between different teams within their organisation structure.
Improved Quality & Reliability
IBM completed its DevOps transformation, which enabled the company to create a foundation of trust between customers and the development team. Implementing faster and more reliable software releases greatly improved customer confidence and satisfaction.
DevOps provided continuous testing solutions from end-to-end, allowing for detailed configuration and automation scripts for rapid scaling capabilities. As a result, quality assurance (QA) processes were improved and aligned with development lifecycles. This led to fewer bugs in the software, resulting in higher quality products after deployment. Additionally, automation of various tests sped up the process and minimised downtime resulting from software deployments.
The DevOps transformation also replaced repetitively manual processes with automated ones, resulting in greater deployments’ reliability. Automation coupled with improved QA processes decreased errors associated with manual deployment tasks and allowed for faster turnaround times when addressing issues in pre-production releases. The technology also enabled better code change traceability, allowing teams to identify potential bugs before deployment on production environments.
Overall, this transformation enabled IBM to lower time-to-market while improving product quality & reliability across their entire portfolio — a vital factor that was critical to maintaining the company’s dominance as one of the most reputable technology organisations in the world today.
Enhanced Customer Experience
The focus on increasing deployment frequency directly resulted in enhanced customer experience. For example, before their DevOps transformation, IBM had an 83 day cycle time and has now reduced it to just 1 day. This resulted in customers getting error fixes and feature enhancements faster, improving customer satisfaction.
IBM’s DevOps transformations empower teams, more so the operations teams because they are more involved earlier and more frequently in the innovation process. Not only does this create ownership for product features but it aids the team in understanding desired outcomes deeper.
Team members within the DevOps process of IBM were also able to quickly share their knowledge and experience, thus resulting in a cross-functional training program which improves operational quality greatly. The speed of feedback cycles help allow room for improvement for better customer-centric results; IBM has reported increased customer satisfaction through improved accuracy and timeliness of releases of new features and better transparency with customers to identify problems quickly when any arise.
Furthermore, customer feedback is used to develop product features faster as it is easier to interpret what the customers want with quick feedback loops than otherwise without DevOps techniques employed by IBM. All these improvements have resulted in better quality output leading to increased customer trust that was needed for its success.
This transformation allowed IBM not only to improve the operational metrics but also helped them achieve greater customer experience satisfaction across different product lines that they support breaking all kinds of traditional corporate barriers setting a case study example around the world concerning adoption of new technologies and practices like DevOps.
tags = About IBM Cloud™ Kubernetes Service, Challenge, Solution, Results, launchdarkly 200m series 3bshrivastavaforbes, launchdarkly ibm atlassian 200m series 3bshrivastavaforbes