Skip to main content
DevOps icon showing cogs

This post is from the XebiaLabs blog and has not been updated since the original publish date.

Last Updated Nov 15, 2016 — DevOps Expert

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.
So, although approaches like microservices may offer a short-term remedy, eventually the complexity of application dependencies will exceed the capabilities of those approaches to manage them. This complexity will only be compounded by increasing market demand for more frequent releases, delivered ever faster.

New and Improved Dependency Management

When it comes to deployments, three things matter:
  1. High availability—Applications/services must always be available. Upgrades can cause downtime to services and interfere with Service Level Agreements (SLAs).
  2. Short deployment times—Deployment time must be reduced. Depending on the number of deployments that happen in a day, lost time can multiply.
  3. Low risk—Failures and other deployment problems present great risk to the organization. The higher the risk of failure, the higher the cost.
XL Deploy provides a wide range of features to help unravel the complexity of deploying multiple packages, ensuring that your applications are highly available, deployed quickly and are at low risk for failure. The latest version of XL Deploy, version 6.0, offers enhancements to its Dependencies feature that allow IT teams to effectively manage application dependencies while meeting the deployment criteria above.

Enhancements to Dependency Orchestration

XL 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.
XL Deploy v6.0 adds two new orchestrators for application dependencies:
  • Sequential-by-dependency—Ensures dependencies are deployed in reverse topological order.
  • Parallel-by-dependency—Ensures that multiple dependency packages can be deployed in parallel.
[caption id="attachment_13585" align="aligncenter" width="2810"]XL Deploy manages complex applications in parallel with application dependencies. XL Deploy deploys complex applications in parallel and manages application dependencies.[/caption] These new orchestrators offer additional capabilities for application dependency management. For example, for an application that is installed on multiple servers, IT teams can deploy to each container/host in parallel, and, within each group, deploy the dependencies in the correct order and in parallel. This capability ensures not only that all servers in the environment are updated at the same time, it does so in a way that optimizes the deployment of the packages within them. Deployments happen more quickly as well.

Dependency Resolution: More Flexible than Ever

XL 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 Today

The 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.

Try XL Deploy for Yourself!

Sign up for a free trial today.

More from the Blog

View more
Sep 13, 2021

The Expedited Journey of Digital Transformation

Alan Brown, Digital Transformation Advisor at conducts a se ...
Read More
Aug 23, 2021

Is Data Analytics Missing From Your Digital Transformation?

Nearly every major enterprise is already in the process of digital tra ...
Read More
Aug 19, 2021

Creative Ways to Automate Developer Workflows

When an organization begins an Agile or DevOps journey, the process ca ...
Read More
Aug 12, 2021

How Automation Enhances Efficiency and Delivery Speed In a DevOps Environment

When organizations make the decision to move to a DevOps environment, ...
Read More
Contact Us