Question: 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?

Answer: 
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.
I'm not sure that there is a universal definition that doesn't have exceptions, but I see it as:

**Actions** - functionality that doesn't interact with a build eg starting or stopping a service (except for the Deploy using Chef or PS/DSC actions). Only used in Agent-based templates.

**Tools** - functionality that interacts with a build and / or has a complex command line, eg deploying a website. Only used by **Components - Agent-based**.

**Components - Agent-based** - users of tools and also the place where the location of the build is specified and where any token replacement is defined. When the component is used in a template the tool typically does something to the build eg the XCopy Deployer will copy the contents of 'Path to package' to the specified installation path.

**Components - vNext** - only allow for specifying the location of the build and any token replacement since any work is done via a script. The component is 'consumed' by the **Deploy using Chef or PS/DSC** actions and is the way to tell these actions where to get the build.

Now I've tried to explain this I can see what a muddle it is. At some point you will be able to bypass all this confusion since an all-new web-based version of Release Management will be available with TFS 2015 Update 1 (and earlier with Visual Studio Online). It might pay to hold off for this version if you can but it may be late this year or early next since TFS 2015 RTM isn't out yet. If you can't wait and need to get going now then go down the vNext PowerShell route to make for an easier transition to the web version.