I'm trying to use Release Management as the tooling to build releases, but I'm having a hard time understanding what the difference between a component, tool, and action really are. Can someone break down the differences between these three concepts and how they work with each other?
As it applies to agent-based releases:
Tools are intended to provide a custom resource (executable, PowerShell script, batch file, and so on) with a command line to execute said custom resource, and a default set of command line parameters. Using an example from the built-in resources: IIS Manager. The IIS Manager is a tool that can perform a variety of different IIS actions, depending on how it is called.
Actions are granular, release-specific actions. They may be built on top of a tool to provide a specific action that uses the tool. Create Web Site is an action built on top of the IIS Manager tool. Actions appear in the release template toolbox.
Components are deployable chunks of software. You specify the relative source of the binaries from your build drop, and choose a tool to execute to install the software. Most common is the "XCopy Deployer" tool, which just copies the binaries from the build drop to a location on the target machine. Components can be added to the release template by right-clicking on "Components" and choosing the "Add" option.
You can use actions or components directly within a release template, but not tools.
So the relationship is this:
/-> Action -> Target server
Tool -|
\-> Component -> Build drop and target server
vNext releases do not have the concepts of actions or tools, only components. Components are reduced to serve only as pointers to the path relative to your build drop root where the binaries come from. There are some other distinctions, but those are the main ones.