This post is from the XebiaLabs blog and has not been updated since the original publish date.
How to Manage Application Dependencies Like a Pro
As enterprises grow and scale to meet market demand, they’re finding it vital to move away from monolithic applications. Instead, a great number of organizations are transitioning to development architectures with many small components that allow them to release software much more quickly.Some IT groups, for example, are now using things like modules and microservices for development. While these approaches can speed the development process, they can also introduce new complexities as companies try to scale. That’s because they often split applications into many moving parts that depend on each other. Application dependencies can create problems such as:
- Multiple components deploying one after the other, which can make deployments slow.
- Deployments happening in the wrong order, for example, a package could be deployed in an environment before a component it depends on, leading to unstable behavior.
- Lack of flexibility in a team’s deployment plan to adapt to their use cases.
New and Improved Dependency ManagementWhen it comes to deployments, three things matter:
- High availability—Applications/services must always be available. Upgrades can cause downtime to services and interfere with Service Level Agreements (SLAs).
- Short deployment times—Deployment time must be reduced. Depending on the number of deployments that happen in a day, lost time can multiply.
- Low risk—Failures and other deployment problems present great risk to the organization. The higher the risk of failure, the higher the cost.
Enhancements to Dependency OrchestrationXL Deploy uses “deployment orchestrators” to handle dependency management so IT teams can optimize deployment plans and deploy more quickly. Deployment orchestrators give you the flexibility to deploy applications as follows:
- Sequentially—Work in sequence to ensure order.
- In parallel—Work in parallel to reduce step times.
- By group—Group tasks under a common theme, for example, by metadata or a server.
- Sequential-by-dependency—Ensures dependencies are deployed in reverse topological order.
- Parallel-by-dependency—Ensures that multiple dependency packages can be deployed in parallel.
Dependency Resolution: More Flexible than EverXL Deploy v6.0 adds greater flexibility to its dependency resolution strategy. Users can now set rules to determine whether a particular version of a dependent package will to be updated. For example, if an application only needs v2.0 of a component, and v2.0 is already installed, then v2.5 won’t be deployed even if it’s available. XL Deploy now offers two dependency resolution options:
- Latest—Always use the latest version of a package.
- Existing—Use what already exists on the environment, if it is valid, to save deployment time.
Version 6.0 release builds on the already strong Dependency Management functionality of XL Deploy.
Upgrade to XL Deploy 6.0 TodayThe latest enhancements to XL Deploy 6.0 offer optimized application dependency capabilities to provide a superior experience for enterprise IT teams, including the ability to:
- Scale complex applications that have a variety of dependencies.
- Handle complex dependencies at higher speed.
- Ensure tasks happen in the right order while still deploying software more quickly.
- Improve performance when generating deployment plans that have application dependencies.
- Produce reliable deployments with parallel-by-dependency and sequential-by-dependency orchestrators.
- Get faster and more flexible deployments by combining the new orchestrators with existing parallel orchestrators.
- Update application packages only when necessary (rather than updating packages that aren’t required).
- Deploy fewer components, saving time and resources.