Workflows Overview
With Digital.ai Release 23.3, we are bringing in new self-service workflows so that Developers can onboard their applications easier with minimum knowledge of tools. Newly introduced workflows guide users through step-by-step execution of tasks, reducing complexity in setting up environments. It leverages cloud benefits such as scalability, availability, and optimizing applications for the cloud for improved performance and reliability. It also helps ensure adherence to cloud security and compliance best practices.
Workflows
Workflows are a combination of tasks that can be executed in an interactive session, with pre-built best practices. Once you have this setup in place, all you would be doing is to select the workflows from the self-service catalog and execute them in step-by-step view to interactively setup applications in Argo CD and Deploy.
The concept of using workflows is a powerful way to streamline the deployment of applications on Kubernetes using open-source deployment tools like Argo CD.
The workflows are also designed to support deployment to the three major public clouds:
- AWS
- Azure
- GCP
You can create applications in Digital.ai Deploy that are capable of being deployed to AWS Lambda, Azure resource groups, or virtual machine instances in GCP. Additionally, workflows can also be used to onboard on-prem applications like Tomcat Server, WebSphere Application Server, and other similar applications. By automating the onboarding process, you can save time and ensure that your applications are deployed consistently and reliably, regardless of the environment.
Workflow Benefits
Major benefits in implementing workflows:
- Onboard and manage applications on your own
- Add environment variables
- Change configurations
- Add services and dependencies
- Spin up new environments
- Tear down existing environments
- Manage scaling by adding resources
- Install tools into environments like ArgoCD, Argo Rollouts, and so on
- Enforce security and Role-based access control (RBAC)
Key Concepts
- Workflows : Workflows act as a service catalog for the list of workflows that exists in Release for you to select. It helps in choosing the appropriate workflow for the application and environment, making the onboarding process more efficient. In simple terms, a guided step-by-step workflow asking you what you want to do, and then have the tool create all the artifacts needed to orchestrate your release and deploy end-to-end.
- Task: Tasks can be either be user input or automated.
- Step-by-step : The step-by-step view allows for the automation of the onboarding process, with each step clearly defined.
- Applications: The Applications management page provides a space for users to create and manage new applications, as well as discover existing ones from Digital.ai Deploy and Argo CD. This helps in keeping all applications organized and accessible in one place.
- Live Deployments : The Live Deployments page gives SRE and DevOps teams the ability to monitor application changes in a hybrid or multi-cloud environment. This provides visibility into all live deployments and helps in identifying issues quickly.
Key Differences between Release and Workflows
Before understanding workflows it is a must to know the key differences between Release and Workflows and where exactly both can be used.
Release | Workflow |
---|---|
Mainly focused on moving the software code through different stages to the production using CI/CD setup. | Mainly focused on performing the utility function for an individual user. For more information, see Benefits of using Workflows. |
Multiple people are involved in the process and can view the actions performed by other individuals. | Individual handles and executes the process. |
The time taken to execute may vary based on the number of tasks. It is usually hours to weeks. | The time taken to execute workflows is usually in minutes to hours. |
Where are Workflows Stored
A default folder called Digital.ai-official is now available in Release. It contains the downloadable workflows and templates that are published by Digital.ai in the shared content folder repository. Additionally, you can also create custom workflows like you create your templates for Releases. For more information, see Create Workflows.
Workflow Roles and Permissions
A new user role called Authenticated users is introduced for supporting workflows. By default, all the existing users will have this role assigned. The principal for this role is authenticated-user.
Now, any user can log in to Release and view these workflows by using the Authenticated users role.
- For Workflows folder, Viewer team is assigned with the Authenticated users role. With this permission, you can view the workflows.
- For Workflow Executions folder, Workflow Admin team is assigned with the Authenticated users role. With this permission, you can view the workflows, and start the workflow execution.
3 new permissions are introduced in the folder-level for Workflow executions.
- View workflow executions permission to view the running or completed workflows
- Start workflow execution permission to start the workflow
- Abort workflow executions permission to abort a running workflow
Note: Release Admin is the default team for workflow permissions in a folder level. This is applicable only in the folder level and not applicable for the content folder (Digital.ai - Official).
In case of releases, if you have the Create release permission, you can only start a release but cannot view the release. To view, you need the View release permission. However, in case of workflows, if you have the Start workflow execution permission, you can also view the workflow executions as you are the owner of the workflow.
Workflow Restrictions
To improve the performance, the number of tasks in release have been set to the following limits:
- For workflow templates, only a maximum of 50 tasks can be added. If you try to add more than 50 tasks, an error is thrown on the top-right corner of the screen.
- For workflow executions, only a maximum of 500 tasks can be executed.
However, you can configure the values for the max-template-tasks
and max-execution-tasks
in the reference. conf
file.
Additionally, some major restrictions are as follows:
- Workflow tasks cannot be reassigned to any other user as they are designed for individual users.
- Risk profiles are not supported for workflows.
- Scheduling is not supported for workflow tasks.
- Lock feature is not supported for workflow tasks.
- E-mail notifications are not supported for workflows.
Note that, only selected types of tasks are supported in workflows. For example, when you select Core, you will see only Manual and User Input tasks. The other task types that are displayed in Release are not available here. You can configure this in the deployit-defaults.properties
file.