Cross-Functional Architecture And Tools For Cloud-Based Operating Models
The Agile Cloud Manager has a very simple set of CLI commands which are designed to keep the amount of code in calling scripts very brief so that it is easy to change back and forth between any pipeline tool.
In fact, there are only 12 CLI commands as follows:
acm setup on sourceRepo=<repository-url>
acm appliance on
acm appliance off
acm foundation on systemName=<name-of-system>
acm services on systemName=<name-of-system>
acm services off systemName=<name-of-system>
acm serviceType on systemName=<name-of-system> serviceType=<name-of-type>
acm serviceType off systemName=<name-of-system> serviceType=<name-of-type>
acm serviceInstance on systemName=<name> serviceType=<name> serviceInstance=<name>
acm serviceInstance off systemName=<name> serviceType=<name> serviceInstance=<name>
acm foundation off systemName=<name-of-system>
acm setup off
The CLI commands are intended to be used in specific sequences in workflows because they have dependencies upon each other. Also, the flags given in each command are required and not optional.
A summary of each command is as follows:
What it does: Creates a local workspace required for any of the other commands to work.
repository-url
that was specified in the sourceRepo
flag is either public or private.
acm
CLI commands will run on whatever branch is exposed when the repository is cloned without specifying the branch.Prerequisites: None. This is the very first command to run.
Teardown: acm setup off
, but not until all other commands in your workflow are run.
What it does: Creates or updates an entire appliance, including all the systems specified in acm.yaml
Prerequisites: acm setup on
must be run before this command can work.
Teardown: acm appliance off
What it does: Destroys an entire appliance, including all the systems specified in acm.yaml
Prerequisites: acm setup on
in all cases, then acm appliance on
What it does: Creates or updates the foundation of the system named <name-of-system>
Prerequisites: acm setup on
must be run before this command can work.
Teardown: acm foundation off systemName=<name-of-system>
What it does: Creates or updates all services of all types within the system named <name-of-system>
Prerequisites: acm setup on
in all cases and acm foundation on systemName=<name-of-system>
; only if the system template contains a foundation block.
Teardown: acm services off systemName=<name-of-system>
in all cases, and acm foundation off systemName=<name-of-system>
only if the system template contains a foundation block.
What it does: Destroys all services of all types within the system named <name-of-system>
Prerequisites: acm setup on
in all cases, then acm foundation on systemName=<name-of-system>
only if the system template contains a foundation block, then acm services on systemName=<name-of-system>
in all cases.
What it does: Creates or updates only one type of service with name <name-of-type> and only in the system named <name-of-type>
Prerequisites: acm setup on
in all cases and acm foundation on systemName=<name-of-system>
; only if the system template contains a foundation block.
Teardown: acm serviceType off systemName=<name-of-system> serviceType=<name-of-type>
in all cases, then acm foundation off systemName=<name-of-system>
only if the system template contains a foundation block.
What it does: Destroys only one type of service with name <name-of-type> and only in the system named <name-of-system>
Prerequisites: acm setup on
in all cases and acm foundation on systemName=<name-of-system>
only if the system template contains a foundation block. Then acm serviceType on systemName=<name-of-system> serviceType=<name-of-type>
in all cases.
What it does: Creates or updates only one instance of only one serviceType in only one system.
Prerequisites: acm setup on
in all cases and acm foundation on systemName=<name-of-system>
only if the system template contains a foundation block.
Teardown: acm serviceInstance off systemName=<name> serviceType=<name> serviceInstance=<name>
in all cases, then acm foundation off systemName=<name-of-system>
only if the system template contains a foundation block.
What it does: Destroys only one instance of only one serviceType in only one foundation.
Prerequisites: acm setup on
in all cases and acm foundation on systemName=<name-of-system>
only if the system template contains a foundation block. Then acm serviceInstance on systemName=<name> serviceType=<name> serviceInstance=<name>
in all cases.
What it does: Destroys the foundation of a system named <name-of-system>
Prerequisites: acm setup on
in all cases, then acm foundation on systemName=<name-of-system>
; in all cases. Also make sure that all services have been destroyed first. Note that some infrastructure can be designed to be destroyed when the foundation is destroyed, but that this is only true in some cases, so it is best to explicitly destroy each service before destroying the foundation.
What it does: Destroys local resources that were created during acm setup on
command. These include local directory structure and local copies of cloned repositories that were needed by the acm CLI commands.
Prerequisites: acm setup on
in all cases. This must also be the very last CLI command run, because this destroys things that other CLI commands require.