Terminology: agent vs node

37 views
Skip to first unread message

Martin Schmude

unread,
Jul 21, 2020, 5:05:52 PM7/21/20
to Jenkins Developers
Dear all,

on the occasion of the current effort to replace the term "master" I learnt, that back in 2016 it had been decided to replace "slave" by "agent".

This reminds me of that I am worried from time to time by the terms "agent" and "node".
They seem to be synonyms - am I right?
If so, shouldn't "agent" be the preferred term, due to the decision of 2016 and "node" be dropped?

Gavin Mogan

unread,
Jul 21, 2020, 5:24:39 PM7/21/20
to Jenkins Developers
I agree its pretty confusing.

I'm under the impression an agent (like ssh) can have multiple nodes.
to me, node = executor, but not really

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/142ebe47-dbc5-4bf5-8bf1-96f69517983ao%40googlegroups.com.

Jeff Thompson

unread,
Jul 21, 2020, 6:01:19 PM7/21/20
to jenkin...@googlegroups.com

Yes, the usages of these terms should cleaned up and made consistent. "agent" is a better term in almost all cases. Sometimes there is a technical distinction between the terms, but we should only use "node" where we really need to distinguish that and use "agent" as much as possible in the UI.

Jeff

Daniel Beck

unread,
Jul 22, 2020, 7:40:54 AM7/22/20
to Jenkins Developers


> On 21. Jul 2020, at 23:05, 'Martin Schmude' via Jenkins Developers <jenkin...@googlegroups.com> wrote:
>
> This reminds me of that I am worried from time to time by the terms "agent" and "node".
> They seem to be synonyms - am I right?
> If so, shouldn't "agent" be the preferred term, due to the decision of 2016 and "node" be dropped?
>

These terms are useful and consistent, as master can also be a node. By default, it's even the only node.

So "node" is an term for "master and agents" (at least the "executing workloads" part of master, see my and others' feedback to the ongoing terminology update that it could make sense to use different terms here).

> to me, node = executor, but not really

One node can have multiple executors. Executors are individual slots for a single workload.

By default, a new Jenkins installation has 1 node (the master) with 2 executors, and 0 agents.

All of that is also explained in https://www.jenkins.io/doc/book/glossary/

Daniel Beck

unread,
Jul 22, 2020, 7:44:11 AM7/22/20
to jenkin...@googlegroups.com


> On 22. Jul 2020, at 13:40, Daniel Beck <m...@beckweb.net> wrote:
>
> These terms are useful and consistent, as master can also be a node. By default, it's even the only node.

I forgot to mention: Master is not an agent (but both are nodes). This distinction was somewhat clearer, IMO, before we introduced the 'agent' term, so let's hope we find a replacement term for 'master' that nicely contrasts with 'agent' :-)

Martin Schmude

unread,
Jul 22, 2020, 8:35:19 AM7/22/20
to Jenkins Developers
I have not been aware of the definitions in https://www.jenkins.io/doc/book/glossary/.
So thank you very much.

Gavin Mogan

unread,
Jul 22, 2020, 2:08:12 PM7/22/20
to Jenkins Developers
> By default, a new Jenkins installation has 1 node (the master) with 2 executors, and 0 agents.

this sentence has made it the most clear I've ever been about it. Thank you

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Ian W

unread,
Jul 23, 2020, 9:16:08 AM7/23/20
to Jenkins Developers
This is distinction I was trying to make in my response to "Terminology Updates", without the self-evident and clear distinction between node, agent and executor Daniel illustrated so well.


I see "the master" as having two contexts. There is the Administrative context (configuration, plugins etc.), that determine focus, capability, delegation. Then there's the context of those tasks that are necessary to execute "on the master". What about the tasks run on master? It's still executors doing the work...

That is why I proposed using two names for the different contexts: "Executive" for the administrative portion of master,  and "Concierge" for the task execution.
AgentZero (or NodeZero) also has a nice ring to it for that context, should another name be chosen for the "Master".

Personally, I always found the glossary definitions rather confusing
Agent: An agent is typically a machine, or container, which connects to a Jenkins master and executes tasks when directed by the master.
Master:  The central, coordinating process which stores configuration, loads plugins, and renders the various user interfaces for Jenkins.
Node: A machine which is part of the Jenkins environment and capable of executing Pipelines or Projects.
Both the Master and Agents are considered to be Nodes.

As defined, an agent is a machine, a node is a machine, but a master is a "process". Master is considered to be a Node, which implies it's a machine even though that's not in the definition. The definition of master also mentions nothing about executing Pipelines or Projects; that must be inferred.

We can have multiple Nodes running on the same remote server (under different accounts - aka agents ?).
We can also have a Node configured on the same server as the master, but it's not master.

I am not an taxonomist nor a linguist, perhaps just a little pedantic: concerned with formalism, accuracy, and precision.

I have perhaps wrongly interpreted the Node to be Jenkins master's representation of the server/container + account the agent is running on. There also happens to be an agent that runs on master.

When you add a Node, it's a combination of the host+account (plus environment) that the agent is launched under.

If I'm completely off-base, please disregard. If any of this makes sense, the definitions in the glossary should get some attention. If it makes more sense, then there are two contexts for "master" that need to de documented and given names to avoid ambiguity.


Regards,
Ian

On Wednesday, 22 July 2020 11:08:12 UTC-7, Gavin Mogan wrote:
> By default, a new Jenkins installation has 1 node (the master) with 2 executors, and 0 agents.

this sentence has made it the most clear I've ever been about it. Thank you

On Wed, Jul 22, 2020 at 4:41 AM Daniel Beck <m...@beckweb.net> wrote:


> On 21. Jul 2020, at 23:05, 'Martin Schmude' via Jenkins Developers <jenkin...@googlegroups.com> wrote:
>
> This reminds me of that I am worried from time to time by the terms "agent" and "node".
> They seem to be synonyms - am I right?
> If so, shouldn't "agent" be the preferred term, due to the decision of 2016 and "node" be dropped?
>

These terms are useful and consistent, as master can also be a node. By default, it's even the only node.

So "node" is an term for "master and agents" (at least the "executing workloads" part of master, see my and others' feedback to the ongoing terminology update that it could make sense to use different terms here).

> to me, node = executor, but not really

One node can have multiple executors. Executors are individual slots for a single workload.

By default, a new Jenkins installation has 1 node (the master) with 2 executors, and 0 agents.

All of that is also explained in https://www.jenkins.io/doc/book/glossary/

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkin...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages