NTTLimitedRD / plumbery

Cloud automation at Dimension Data with Apache Libcloud
Apache License 2.0
14 stars 9 forks source link

[solved][naming] alternatives to 'spit', 'rub', 'polish' #15

Closed bernard357 closed 8 years ago

bernard357 commented 8 years ago

As a matter of fact, names do matter in software, because of the meanings that they convey. When plumbery was created initially, we had the analogy of a plumber doing practical things in phases. This poorly explain some terms that were selected at that time:

This terminology is consistent if you think about a real worker building fittings in sequence. Rubbing is coming from the Aladdin story, where the lamp is rubbed to make the genius appear. Spitting is common practice before rubbing, my grandmother was doing that...

However, now that plumbery is moving to new levels of ambitions, there is a need to introduce new terms, that can make sense to larger sets of people. Some suggestions:

Again, terms do matter, and there is a need for some consensus before moving forward. Happy to have quick review of other suggestions before code and documentation are changed at large.

tonybaloney commented 8 years ago

The names are really important as they aid the user to understand the terminology of the product and how that relates to the actions . Especially when it comes to processes, I find it sensible to first explain to the user the process (or even better, not have to).

If you have to explain it too many times it's either too complex or too confusing.

What I am trying to do in my mind when I review these terms is to picture and visualise the infrastructure at each stage through the process.

If we go back to the process

1) The network is laid down 2) The servers are deployed 3) The post-checks are carried out 4) Complete the networking configuration 5) Configure the nodes 6) Run extensible "plugins" on the nodes

Let's focus on describing those stages, as, they may change, expand or be configurable in future.

My super-boring literal translation is

1) deploy-network 2) deploy-nodes 3) validate 4) configure-network 5) configure-nodes 6) post-configuration

If I said what does "deploy-nodes" do to a beginner, it's pretty self-explanatory.

bernard357 commented 8 years ago

Anthony, your view is making a lot of sense in the context of a service deployment. The actual steps managed by plumbery in such case are close to what you mentioned: 1) build (domains, networks, and nodes) 2) configure (ex-spit) = add network addresses, firewall rules and everything that do not need running nodes 3) start (nodes) 4) prepare (ex-rub) the nodes 5) information - to drive next steps of usage

These 5 steps can be handled as a single action with 'deploy'

There are also other use cases, typically, situations where you want to use deployment information for some reason. Some examples :