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 |
We compare the subject and body properties of the step | |
HTTP | We compare the following: |
Shell Script | We compare the following: |
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 | |
K8sDelete | |
K8s Scale | |
K8sSwapServiceSelectors | Compare the services |
K8sApply |
|
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 | |
EcsServiceSetup | |
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 |