Skip to main content

Workflows & Pipelines Simplification

The Harness Next Gen platform offers a variety of robust templates that can significantly reduce the number of pipelines teams need to manage. These templates are powerful tools that promote best practices and standardization within an organization, resulting in more streamlined and efficient software delivery processes.

If you're transitioning from FirstGen, Harness can help you analyze your existing workflows and pipelines across multiple applications. Based on this analysis, Harness can recommend workflows and pipelines that can be easily templated and reused across different projects, reducing duplication of efforts and increasing productivity.

Harness' platform and capabilities are designed to simplify pipeline management for organizations, allowing teams to focus on delivering high-quality software. By leveraging Harness' powerful templates and automated analysis, you can streamline your pipeline management process and achieve better outcomes.

How it works

We analyze all workflows in the account to determine if they are similar based on specific criteria:

  • They must be the same type of workflow. In FirstGen, workflows belong to one of six types: Build, Basic, Rolling, Canary, Blue-Green, or Multi-Service. If two workflows are of different types, they are considered different.

  • They must have the same number of phases and rollback phases. If two workflows have different numbers of phases, they are considered different workflows.

  • Two phases are similar if they have the same number of phase steps.

  • Two phase steps are similar if they have the same number of steps.

  • Two steps are similar if they are of the same type.

  • Each step type has different criteria to determine whether they are similar or not. For example, when comparing two shell script steps, we compare the shell script code, script type (PowerShell/Bash), and whether they execute on a Delegate or not.

We limit the number of comparisons in the field as much as possible, as it is possible to template fields in Next Gen and increase the chances of re-usability.

Common Steps
Approval We compare the ticketing systems. In case of Harness Approvals we compare the inputs.
Command We compare the template ids
Email We compare the subject and body properties of the step
HTTP We compare the following:
  • Body
  • HTTP method
  • URL
  • Assertion
  • Headers
  • Shell Script We compare the following:
  • Script Type
  • Script contents
  • Execute on Delegate flag
  • Jira Create & Update We only compare the Jira action(create or update?)
    Resource Constraint Always true
    Barrier Always true
    ServiceNow Always false
    Barrier We compare the template ids
    Barrier We compare the template ids
    Provisioners
    Shell Script Provisioner Always false
    Terraform Provisioner Steps Always false for all the terraform provisioner steps - TerraformApplyStep, TerraformDestroyStep, TerraformProvisionStep, TerraformRollbackStep
    Terragrunt Provisioner Always false for all the terragrunt provisioner steps - TerragruntDestroyStep, TerragruntProvisionStep, TerragruntRollbackStep
    Cloudformation Always false for all the cloudformation steps - CloudformationCreateStep, CloudformationDeleteStep
    Kubernetes Steps
    K8sCanaryDeploy
  • Instance unit type
  • Instances
  • K8sDelete
  • File paths
  • Resources
  • K8s Scale
  • Instance unit type
  • Instances
  • Workload
  • K8sSwapServiceSelectors Compare the services
    K8sApply
    • Compare filepaths
    • Remote step override
    • Inline step override
    K8sBlueGreenDeploy Always true
    K8sRollingRollback Always true
    K8sRolling Always true
    K8sTrafficSplit Always true
    Helm Steps
    HelmDeploy Always false
    Helm Rollback Always false
    AWS Steps
    AsgBlueGreenRollback Always true
    AsgBlueGreenSwap isDownsizeOldAsg
    AsgRollingDeploy useCurrentRunningCount
    AsgRollingRollback Always true
    AsgBlueGreenRollback Always true
    ElastigroupRollback Always true
    ElastigroupSwapRoute Always true
    EcsServiceRollback Always true
    ElastigroupListenerRollback Always true
    ElastigroupDeploy
  • downsizeInstanceUnitType
  • name
  • downsizeInstanceCount
  • instanceCount
  • EcsServiceSetup
  • desiredInstanceCount
  • ElastigroupSetup Always false
    Azure Steps
    AzureCreateARMResourceStep Always false
    AzureRollbackARMResourceStep Always false
    AzureSlotRollbackStep Always false
    AzureSlotSetupStep Always false
    AzureSlotShiftTrafficStep Always false
    AzureSlotSwap Always false
    PCF Steps
    PcfBGMapRouteStep Always false
    PcfPluginStep Always false
    PcfRollbackStep Always false
    PcfSetupStep Always false
    PcfSwapRoutesStep Always false