20
May 2011 Munich Grasbrunn Workflow automation concepts and building blocks 1 NetApp Confidential - Internal Use Only

WFA - 3 - WFA Concepts

  • Upload
    hsnel

  • View
    43

  • Download
    0

Embed Size (px)

Citation preview

Slide 1

May 2011

Munich GrasbrunnWorkflow automation

concepts and building blocks1NetApp Confidential - Internal Use OnlyWFA basic concepts and building blocksWorkflow CommandsVariablesFinders & filtersFunctionsPolicy templates

2NetApp Confidential - Limited UseStorage Workflow Definition A series of steps that performs an end-to-end Storage process

ExamplesProvisioning storage for an application (SAP, Oracle, Exchange)Provision storage component (Gold, Silver,..)Decommission storage for an applicationStorage migration for server, application or VM

Designed by an Architect, to be executed by an Operator/administrator

3NetApp Confidential - Limited UseCommandsDefinition 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

4NetApp Confidential - Limited UseCommands - ExamplesCreateVolumeCreateQtree (or resize existing one)Create NFS exportSetup mountResize aggregateResize Qtree quotaAdd volume to datasetTrigger 3rd party API commands (ie, VMWare)

5NetApp Confidential - Limited UseWorkflow TableA Workflow is defined by filling a tableActions 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:

6NetApp Confidential - Limited Use

Table Cell typesConstant valueNumbers 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 InputA value to be provided upon the execution of the workflow. Examples: $Appname, $dbData_volSize

7NetApp Confidential - Limited UseTable Cell types (cont.)Function callUsage 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

8NetApp Confidential - Limited UseVariables 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)

9NetApp Confidential - Limited UseDefine 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_inputsVariable volume1A variable attribute - volume1.array.ipFunction resultExpression

10NetApp Confidential - Limited UseFinders & FiltersFinderA search operation for locating resourcesThe finder looks for information on WFA Objects in the WFA cached repositories Comprised of several filtering rules that filter out irrelevant resourcesIncludes a possible sorting order for the list of applicable resultsPopulates a variable if a match was foundExample: Find Aggregate, Find Array, Find volume11NetApp Confidential - Limited UseUsing 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 definitionThe finder will then sort the short list of still applicable resources based on available attributes as per filtration criteriaThe finder will either populate a variable with the information of the chosen WFA object or declare a match was not found12NetApp Confidential - Limited UseUsing a Finder to define a Variable Example: For locating an aggregate, we will:Input parameters for location and required capacitySelect filters would run and filter out ill matching aggregatesSorting order will be employed based on selected aggregate attributesThe result may be either a chosen aggregate or a decision that one was not available given the selected filtration criterias13NetApp Confidential - Limited UseFind ChartDefinition 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)

14NetApp Confidential - Limited UseWorkflow execution preparationExecute Find charts to define all variables For every command and every row:Converting cells of commands sub columns to Command parameters from : User inputConstant valueVariable or variable attributeOutput is a list of commands with their parameters, example:CreateVolume Array1 db_vol 200 dedupCreateVolume Array1 log_vol 100 dedup

15NetApp Confidential - Limited UseWorkflow executionExecute list of Commands and parameters one by one

ActionsAudit, loggingStatus checksStart, stop, pause

16NetApp Confidential - Limited UseFunctionsA 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 sizeCreate a volume name following naming scheme

17NetApp Confidential - Limited UsePolicy templatesA blueprint of object to be used as a reference or for adhering to usage policies

Examples:Gold, silver bronze VolumeSetup object templates for fast editing

18NetApp Confidential - Limited UsePolicy templatesPolicy 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

19NetApp Confidential - Limited Use20NetApp Confidential - Internal Use Only