Sei sulla pagina 1di 20

Workflow automation

concepts and building blocks


May 2011 Munich Grasbrunn

NetApp Confidential - Internal Use Only

WFA basic concepts and building blocks


Workflow Commands Variables Finders & filters Functions Policy templates

NetApp Confidential - Limited Use

Storage Workflow
Definition A series of steps that performs an end-to-end Storage process Examples Provisioning storage for an application (SAP, Oracle, Exchange) Provision storage component (Gold, Silver,..) Decommission storage for an application Storage migration for server, application or VM Designed by an Architect, to be executed by an Operator/administrator
NetApp Confidential - Limited Use 3

Commands
Definition
An action taken as part of a workflow (excluding selection of resources)

Every workflow includes a list of commands, to be performed in order Commands can be added by customers if written in PowerShell, Java and later on Perl

NetApp Confidential - Limited Use

Commands - Examples
CreateVolume CreateQtree (or resize existing one) Create NFS export Setup mount Resize aggregate Resize Qtree quota Add volume to dataset Trigger 3rd party API commands (ie, VMWare)

NetApp Confidential - Limited Use

Workflow Table
A Workflow is defined by filling a table
Actions performed left to right, top to bottom

Commands appear as the columns of the table Commands sub-columns are the parameters required for every Command to operate

Example:

NetApp Confidential - Limited Use

Table Cell types


Constant value Numbers or strings that will be the same in every execution of the workflow (200, TMP , etc) Variable (or variable attribute) A variable is an object that needs to be defined for the commands to operate. Examples: db_data_vol, PrimaryAggr, qtree1 User Input A value to be provided upon the execution of the workflow. Examples: $Appname, $dbData_volSize
NetApp Confidential - Limited Use 7

Table Cell types (cont.)


Function call Usage of function (Either pre canned or user created) on a variable or user input. Examples: NextName($Customer), CalcVolSize(Vol.size_mb)

Expression A combination of the aforementioned types in a formulaic expression. Examples: $VolSize - 2, vol.name + / + qtree.name

NetApp Confidential - Limited Use

Variables
Example for a use of a variable: The command Create Volume requires a Volume type variable to operate A Variable has a name and an object type (based on pre-defined types) Every variable has a list of attributes that define the variable. The attributes will be given values of any applicable type (String, Integer etc.) and source (Constant, user input, other variables or variables attributes)
NetApp Confidential - Limited Use 9

Define a Variable
The architect can enter values for all the attributes of a variable to define it Attributes can be entered using:
Constant values (500, TMP) $user_inputs Variable volume1 A variable attribute - volume1.array.ip Function result Expression
NetApp Confidential - Limited Use 10

Finders & Filters


Finder
A search operation for locating resources The finder looks for information on WFA Objects in the WFA cached repositories Comprised of several filtering rules that filter out irrelevant resources Includes a possible sorting order for the list of applicable results Populates a variable if a match was found Example: Find Aggregate, Find Array, Find volume
NetApp Confidential - Limited Use 11

Using a Finder to define a Variable


A Finders result may populate a variable:
Upon execution, the filters associated with the finder will narrow down the possible resources that correspond with the finders definition The finder will then sort the short list of still applicable resources based on available attributes as per filtration criteria The finder will either populate a variable with the information of the chosen WFA object or declare a match was not found

NetApp Confidential - Limited Use

12

Using a Finder to define a Variable


Example: For locating an aggregate, we will: Input parameters for location and required capacity Select filters would run and filter out ill matching aggregates Sorting order will be employed based on selected aggregate attributes The result may be either a chosen aggregate or a decision that one was not available given the selected filtration criterias

NetApp Confidential - Limited Use

13

Find Chart
Definition
A logical construct that supports defining and finding variables

Include the following step types:


Define a variable Find a variable Return (success) Error (Stop workflow execution)

NetApp Confidential - Limited Use

14

Workflow execution preparation


Execute Find charts to define all variables For every command and every row:
Converting cells of commands sub columns to Command parameters from :
User input Constant value Variable or variable attribute

Output is a list of commands with their parameters, example:


CreateVolume Array1 db_vol 200 dedup CreateVolume Array1 log_vol 100 dedup
NetApp Confidential - Limited Use 15

Workflow execution
Execute list of Commands and parameters one by one Actions
Audit, logging Status checks Start, stop, pause

NetApp Confidential - Limited Use

16

Functions
A complementary tool to achieve non-trivial or black boxed operations required for planning and execution Written in a variant of Java (Processed at run time by 3rd party library) Examples:
Calculate volume size from actual usable size Create a volume name following naming scheme
NetApp Confidential - Limited Use 17

Policy templates
A blueprint of object to be used as a reference or for adhering to usage policies Examples:
Gold, silver bronze Volume Setup object templates for fast editing

NetApp Confidential - Limited Use

18

Policy templates
Policy may be used as a source for pasting information when defining a WFA object. Any workflow attached to a policy will use the current values of policy in execution (No backward policy enforcement) Attached policies prohibits the user from changing its attached attributes

NetApp Confidential - Limited Use

19

NetApp Confidential - Internal Use Only

20

Potrebbero piacerti anche