CI/CD Tools Integration

Features to integrate SnapLogic projects with your CI/CD process.

Overview

Tools for continuous integration, delivery, and deployment (CI/CD) shorten development cycles and accelerate feature delivery. CI/CD practices include cycles of build, test, merge, delivery and deployment:


CI/CD process flow

SnapLogic features that support CI/CD processes include:

  • SnapLogic - Git Integration. Use your Git provider to track SnapLogic project assets in Git repositories for concurrent development and version control. The Git Integration supports Azure Repos, GitHub.com, GitHub Enterprise Server, and GitLab. You can start with freely available Git workflow examples, Dev Ops pipeline examples, and GitHub Action examples and customize them to automate your CI/CD processes.
  • Secrets Management. Store the information to access integration endpoints in a secrets manager. Secrets Management supports AWS Secrets Manager, Azure Key Vault, CyberArk Conjur, and HashiCorp Vault. Define your endpoint credentials once and reference them from different Environments.
  • SnapLogic Public APIs. Automate CI/CD processes with the SnapLogic APIs for Git operations and project management.

Automate development and delivery

SnapLogic recommends use of separate environments (Orgs) for development and production. The Git Integration and Secrets Management features enable you to track and manage assets and to automate delivery from one environment to another. The following sections introduce two ways to achieve CI/CD across multiple environments:

Track assets in a repository

Track and version SnapLogic project assets such as pipelines, accounts, and tasks. Create a repository in your Git platform and check it out in Manager to associate it with a project space or a project. In this model, you use the typical Git workflow. Create and change SnapLogic assets in a sandbox environment and review and approve in your Git provider interface:


Git workflow

Store endpoint credentials in your secrets manager. Organizations typically have different endpoint accounts for development and production. Use the secrets manager capabilities to organize two sets of accounts. For example, keys can include the target environment name. Configure your SnapLogic Accounts to use an expression in the secrets.read method that inserts the environment name.

While use of a secrets manager is optional and separate from use of a Git provider, they provide more benefits when used together. You do not need to edit the Accounts in each environment to use the appropriate credentials.

When the SnapLogic assets are ready for production, commit the final changes to the repository and pull them into the production Environment:


Track assets in a repository

Benefits of this model include:

  • No manual setup in the production environment.
  • Account information is encrypted and Accounts stay the same across environments.
  • Simple to automate with secure APIs.
  • Supports the typical Git workflow and fine-grained versioning of assets.
  • Supports concurrent editing of SnapLogic assets.

Drawbacks include:

  • Requires Git skills.
  • You must handle diffs and merges in your Git provider outside of the SnapLogic UI.

Track with a repository outlines the steps for tracking assets in repositories and concurrent development.

Export and import projects

In this model, development and testing occurs in a sandbox environment without Git tracking. When the SnapLogic assets are ready, you can export the parent project and import it into the production environment. As shown in the illustration below, a project export produces a .zip file, which you can store and version in a Git repository.


Export and import projects

Advantages to this model include:

  • No manual setup in the production environment.
  • Simple to automate with secure APIs.
  • Store and version a single artifact per project.
  • Option to use scripts to take advantage of secrets management.

Disadvantages include:

  • Export and import adds steps to the process.
  • Does not support source management workflow for individual assets.