ISSN: 2754-6659 | Open Access

Journal of Artificial Intelligence & Cloud Computing

Informatica Intellegent Cloud Services Code Deployment with Azure DevOps

Author(s): Naveen Muppa

Abstract

Continuous Integration/Continuous Delivery (CI/CD) has become a cornerstone of modern software development, enabling teams to deliver high-quality
applications at speed and scale. Informatica Intelligent Cloud Services (IICS) provides a robust platform for data integration and management in the cloud.
This abstract explores the implementation of CI/CD practices within IICS, focusing on streamlining the development, testing, and deployment of data
integration.

Introduction

Azure DevOps is a solution provided by Microsoft that includes Version Control, Reporting, Requirements Management, automated builds, testing, and release management features. The goal provided by the solution is to cover the full product lifecycle and provide Dev Ops practices to an organization. On the version control side, both Git and Team Foundation Version Control (TFVC) could be deployed.

Setup and Configure Azure DevOps with IICS

To utilize DevOps for IICS, a project should be set up and it should include a git-based repository as seen in the following screenshot.

img

Figure 1: Repository

Additionally, after a repository has been created, setting up user accounts with the correct permissions on the repository is important. By default, DevOps has premade groups to help manage permissions. Permissions could be managed on a branch level of a repository if that level of control is needed. The menu could be found by navigating to the settings for the project and picking the Repositories option.

An example of this menu is as follows:

img

Figure 2: Repository

IICS Configuration and Setup

After the project and repository are set up, the setup in IICS is very similar to within GitHub as follows:

  • In the Administrator Panel, navigate to settings and if you are licensed for version control, see the following:

Edit icon is on the top right side. One can see the option Allow Push to GIT. Enable this only in development org and make sure to disable this option from nondevelopment orgs.

img

Figure 3: Setup

  • Select Enable Source Control and Allow Push to Git Repository if you want to check-in and check-out.

img

Figure 4: Source Control

  • If you want the users to use the OAuth feature over a generated token, make sure to select the Allow OAuth Access to Git
  • Then, select your platform, copy the desired Git repository URL (navigate to your DevOps project and select the repository and use that URL), and the branch name.

img

Figure 5: Git

  • Save the settings and then navigate to your user profile
  • If you want to use the OAuth Access, select that option, and click the OAuth Authentication, and follow the popup to
  • If you are using the Personal Access Token, navigate back to the DevOps Project, and click the Clone option.

img

Figure 6: Clone

  • Then, after getting the above menu, click Generate Git Credentials where you have a username and password listed. Copy the password given into IICS as your Personal Access

Branching Strategies

Given the limitations of the Informatica CLI, we’ve decided to diverge from conventional branching strategies. Our approach involves managing two separate repositories:

  1. IICS and 2. IICS Artifacts. Within the IICS repository, we maintain a sole Master branch, integrated into the Informatica Cloud development environment for streamlined check-in and check-out operations.

Note: The limitations, we can’t store both source code and artifacts in the same repository. For that we introduced separate IICS Artifacts Repository, which houses Delta versions of our export code.

Interactions with IICS DevOps

After getting the IICS setup to utilize the DevOps repository, you would be able to check-in and check-out like you would with a GitHub source control setup. You would also see the usual ability to Pull from Git. From an IICS standpoint, it would work similarly to how it would within GitHub.

On the DevOps side, it would use the Informatica username for the commits and recreate the IICS folder structure. In the following image, you see the folder structure setup and a list of objects that make up the metadata of the objects in the IICS Repository.

img

Figure 7: Metadata dropdown menu and select Settings.

CI/CD Overview

CI/CD, or continuous integration and continuous delivery, is a practice that automates the integration and delivery operations in a CI/CD pipeline. You can automate each integration and delivery operation using the Data Integration Service REST API or the infacmd command line programs.

A CI/CD pipeline includes the integration operations that developers use to design objects and the delivery operations that deliver the objects to the production environment. You can use the REST API or infacmd to automate integration and delivery in the following ways:

Deploy and test every change that a developer makes to an object. Developers receive instant feedback about whether objects pass or fail testing and the types of changes that objects require.

Deliver objects that pass testing to the production environment. Based on organizational requirements, you can deliver objects to additional requirements, such as QA and UAT, before delivering the objects to the production environment.

Continuous integration and continuous delivery are fully logged and visible to the entire team so that team members can allocate time away from manual tasks.

img

Figure 8: IICS Build Pipelines

Unlike any programming language, compilation of code is not required here.

Developer will commit the IICS code from Dev environment to Azure repo (Master branch) in IICS.

As we cannot use this committed code for packaging due to IICS CLI limitation, a build is setup to maintain the exported format of IICS code in another repo.

img

Figure 9: IICS Repo Structure

  • This build will be triggered for each developer commit and it will perform below actions.
  • Get the assets which are part of the
  • Export these assets from Dev org using IICS
  • Extract the exported zip file using IICS
  • Commit the extracted files into another repository (IICS Artifacts)
  • Whenever a story or task is completed and the assets are ready to move to QA, couple of manual tasks needs to be done.
  • Tag the assets as “promote_to_qa”.

Release Pipilines

Once these dependent objects are in place in target environment, we can use release pipeline for deploying the assets. The release pipeline consists of the steps below.

View PDF