How Do You Handle Versioning and Updates for Software Applications in a Large Organization?
Hello everyone,
I’m reaching out for advice on managing versioning and updates for software applications ( https://www.lenovo.com/au/en/servers-storage/software/ ) in a large organization. As you can imagine, keeping track of multiple applications, each with its own version history, is no small task. We're looking for best practices to streamline this process while minimizing the risk of disruptions.
Here’s what we’re currently doing:
Centralized Version Control: We’ve been using version control systems (e.g., Git) to manage codebase changes. This helps us track updates, but we’re exploring ways to make it easier to integrate and deploy code changes across multiple teams.
Semantic Versioning: For major, minor, and patch releases, we use semantic versioning (e.g., v1.2.3) to make it clear what changes are being made. This helps with backward compatibility but we’d love to hear how others handle it, especially when dealing with third-party dependencies.
Release Management Tools: We’ve started using release management tools like Jenkins and Bamboo to automate the deployment process. However, we’re curious if there are more efficient or scalable solutions for larger organizations that could improve the workflow.
Rolling Updates vs. Batch Updates: Right now, we’ve been doing batch updates, but we’re considering rolling updates to avoid service disruptions. Anyone here have experience with this in large-scale environments?
User Communication: For larger releases, we notify end-users about the update schedule and changes. Still, getting this right is a challenge, especially with critical updates. Any advice on improving this process?
We’re looking for advice on:
Tools or systems you use for version control and release management in large organizations.
Best practices for scalable deployment and ensuring smooth updates without disrupting operations.
Strategies for managing multiple versions of applications and maintaining backward compatibility.
How to communicate updates effectively to users, especially when those updates are complex or involve downtime.
Any insights or lessons learned from your experiences would be greatly appreciated!
Looking forward to hearing from you all.
Alisa Aine