Like other large and innovative organizations, IBM needs an efficient software development workflow from prototype to production when delivering mission-critical services at large scale.
IBM’s TaaS team has standardized internal deployment processes with IBM UrbanCode Deploy software across 476 teams, establishing best practices that help accelerate development cycles and increase productivity.
99.99%availability enables smooth deployments throughout IBM
20%growth in users per year enabled by cost-efficient, highly automated operations
180,000deployments per month and over 250 deployments per hour accelerate innovation
Business challenge story
Focusing on efficiency
Large enterprises typically rely on many different business systems to keep operations running smoothly—including everything from complex monolithic legacy applications to globally distributed web applications and cutting-edge mobile apps. These systems also run on different infrastructure platforms, from on-premises servers to hybrid or public cloud deployments.
To meet modern expectations around user experience, all the different components—legacy solutions, hybrid cloud environments, public cloud platforms and microservices—require ever-faster release and deployment cycles. The growing need for flexibility and modularization also introduces more complexity, which can lead quickly to fragmentation of development, maintenance and operations processes.
IBM’s own development teams are fully aware of increasing customer demand for faster, more agile software delivery. And as IBM shifts its focus more towards delivering rapidly evolving, continuously improving services, it realized that some of its internal processes were holding teams back from getting new features and enhancements out to customers quickly.
To empower its software development teams to reach their full potential, IBM had to find a way to provide basic development and lifecycle tools more flexibly and at scale across hundreds of independent teams working on thousands of very different products.
James Jones, Program Director of the IBM TaaS team, explains: “Many teams were already using powerful tools from the IBM DevOps portfolio, such as IBM UrbanCode Deploy, to optimize their software delivery processes. But we noticed that running the same tools for hundreds of teams in isolation was both inefficient and expensive. It quickly became clear that having a standard set of widely-used development tools that we delivered centrally would help us provide a better level of service to internal teams at a lower cost.”
For some teams, just setting up the infrastructure for a basic environment was a challenge. Developers and operations staff were spending significant amounts of time configuring similar environments for test and deployment processes, repeating the same routine work for each project.
Matthew Tomlinson, the TaaS team’s Principal Developer for UrbanCode Deploy, confirms: “If we could empower all teams to use the right tools for the right jobs, we could increase their productivity substantially. Our goal was to allow our teams to focus on adding value for customers instead of getting tied up in repetitive tasks like installing test environments or manually managing approval workflows.”
Streamlining the application development lifecycle
IBM analyzed its internal development processes and decided to provide a scalable, standardized service based on IBM UrbanCode Deploy. Andrew Taylor, TaaS Team Lead, adds: “By offering software development tools internally through IBM Cloud, we have centralized installation, operations and maintenance. This provides a better level of service and higher availability than each team could achieve independently when running the tools themselves.”
IBM has now rolled out UrbanCode Deploy as a service, scaling it up to 5,100 users in 476 teams. Four clusters running in the IBM Cloud File Storage, are automating test and deployment processes for 1,122 applications in 9,355 different environments.
James Jones elaborates: “Now that we have established smooth operations at scale for UrbanCode Deploy, we are increasingly shifting our focus to the onboarding process of new teams and users. By sharing best practices with all teams and helping everyone to understand what works best, we’re enabling the teams to make the most of the powerful tools we provide.”
For its internal development teams, IBM offers UrbanCode Deploy as a service in combination with other popular development tools. For example, it offers Jenkins running in Docker containers on a Kubernetes cluster for continuous integration, and Artifactory, a powerful universal artifact manager.
Matthew Tomlinson highlights the benefits: “We picked the best-in-class tools to support each of our services, and we offer them as a fully integrated solution with UrbanCode Deploy. The huge range of plugins available for IBM UrbanCode Deploy also makes it easy for teams to integrate a wide range of other external and internal cloud services into their toolchain. For example, it’s easy to add Slack integration to implement ChatOps features. We also rely on Slack for live support of our users around the world.”
The extensive plug-in ecosystem helps to centralize configuration and management of complex applications, offering simple integrations with enterprise application servers such as IBM WebSphere®, as well as open source infrastructure management solutions like Puppet.
Andrew Taylor summarizes: “With the Tools as a Service offering built on IBM UrbanCode Deploy, we have built a very adaptable and comprehensive platform. If the preferences of our development teams change over time, it will be very easy to adjust our orchestration and deployment processes.
“The key is that by using a central tool, teams always have full transparency of which version of their application is running where, who authorized which changes, and which features were added by which developer. These insights into the whole software development lifecycle make collaboration easier, while the documentation of all decisions helps us meet strict regulations and auditing requirements.”
By focusing on automation to maximize reliability, IBM has achieved 99.99 percent availability for its internal UrbanCode Deploy offering. Increasing availability helps teams within IBM to manage their software development lifecycles without delays, accelerating end-to-end testing of complex, interconnected applications and getting innovative new features to IBM customers faster.
Getting up and running is easier too. Development teams can log into a self-service TaaS portal that guides them through a fully automated on-boarding and commissioning process, enabling them to get started quickly on the central UrbanCode Deploy platform.
Andrew Taylor continues: “With 180,000 deployments per month and up to 250 deployments per hour at peak times, we have helped almost 500 teams at IBM to increase the frequency of software delivery. Automated, repeatable deployment processes across development, test and production make a real difference—for example, one team is building a process that is capable of updating 2,000 servers simultaneously using UrbanCode Deploy.”
Matthew Tomlinson adds: “The scalable, best practice approaches that we have established within IBM deliver higher-quality application releases with increased compliance through end-to-end transparency, full auditability, and reduced time to feedback.”
For example, the IBM Cloud team relies on the UrbanCode Deploy service to apply software patches quickly to its cloud platform. And the IBM Db2® on Cloud team is constantly pushing the boundaries by maximizing its adoption of available tools to boost staff productivity and product quality.
James Jones concludes: “Our Tools as a Service offering with UrbanCode Deploy sees a 20 percent growth in users each year. Almost every division in IBM is now relying on our central development tools through the cloud. We work closely with the UrbanCode Deploy development team, and our own experience directly improves the quality and reliability of the product for all customers.
“We can only support the massive growth in our user base because we have implemented very cost-efficient, highly automated operations processes. This was only possible because UrbanCode Deploy was able to scale up and provide a very low incremental cost of adding users and applications. It’s a true enterprise-ready solution. No matter how many new users we need to onboard, we can keep the team that runs this internal enterprise cloud service lean and efficient. Our hope is that by sharing our experiences, we can help IBM customers with similar scaling and agility challenges to improve their own productivity with UrbanCode Deploy too.”
IBM is a leading technology, cloud and services company headquartered in Armonk, NY in the United States. With more than 360,000 employees in 175 countries, IBM achieves an annual revenue of USD79.1 billion in 2017.