We have 5,000 to 6,000 developers and we wanted to make sure that with such a large community, we were able to scale up to support thousands and thousands of applications, around 4,000 of them. They're all being continuously deployed through UrbanCode.
It's a great product and a great framework. If you're on a team that has a good mixture of both developers and people who operate the environment or have an operations focus, you're going to love this tool because it allows you to easily integrate with your environment.
Our integration involves a portal that allows our developer and app teams to order application environments (similar to an AWS portal). The self-service tool integrates with APIs for deployments that automatically create the integrations required to develop and deploy our code. So UrbanCode's APIs have made it much easier to enable application developers to create apps much more quickly with its self-service mechanism, speeding up the entire process. If we didn't have the API, it would make it much tougher for us to support, scale, and do self-service in our application-development process.
Improvements to My Organization
One area is with Java deployment. We were able to reduce this from 20 steps to 4 or 5 steps, which is about a 4x reduction in complexity and specification, making it easier for our Java developers to develop and deploy their code.
The other area is not just with the tool itself, but with company culture and taking advantage of technology. UrbanCode Deploy has really transformed the way we do code deployment, connecting development and operations more closely. We're almost 100% of the way there with a cohesive devops, which I can quantify at about a 28% improvement.
Room for Improvement
Its reliability has been a little suspect, and one of our frustrations has been that it's taken them some time to focus on fixing that problem. They're able to simulate customer environments and configurations in terms of size and setup, so that when they're in development, they can run test cycles and build product enhancements and fix problems for customers. Instead, it seems they're building something locally with synthetic data that doesn't really match any customer.
Another area of improvement would be plug-ins, which seem to not have kept pace with current technology. I feel that they don't have enough staff to build plug-ins, and it's a struggle for us. It should be part and parcel of what the product is, which includes the ability to integrate with many different technologies in a centralized deployment architecture. Plug-ins multiply the value of the product, especially when you then have the ability to stretch to new integrations and technologies without having to wait on IBM to develop something.
Use of Solution
I've used it for two years.
We had a fairly in-depth POC where we took all our key platform deployment types. For example, at the time we had a very small WebLogic environment and deployed into Teradata, Oracle, and Red Hat OpenShift. During the 2-3 week POC, we analyzed our deployment of existing scripts, embedded them into UrbanCode Deploy, and automated their execution. This required a bit of decomposition in our existing scripts in order to properly implement the product.
It actually didn't require a lot of effort on our part, which is one of the advantages of UrbanCode. So that was one of the compelling things that encouraged our thinking during our POC -- that it wouldn't take us that much time to convert our environment over to using it.
Customer Service and Technical Support
On the whole, I've had really good experiences with technical support, especially since we're a strong partner with IBM. As I'm an architect, I don't submit as many trouble tickets as I used to, but when I did, the tickets were impactful and technical support was very responsive. I was able to get to level 3 support fairly easily.
I set it up, but I did have someone bless the configuration to reassure us that we had set it up well enough to scale to cover our IT.
ROI is tricky to pin down. There are a couple of good metrics in areas for which we were able to reduce the complexity of deployments. See the above discussion regarding organizational improvements.
Understand your environment, your processes, and how your teams use your technologies. Make sure you spend some time decomposing those areas and making sure that the orchestrations and automations you create fit your customers' needs. Don't have the expectation that it's going to be easy and plug-and-play out-of-the-box.