SaFi Bank Space : IT Operations - Change Management

Related Task: ITI-1973

This document outlines the software development processes that we follow to ensure efficient, reliable, and consistent delivery of code changes. The purpose of this document is to provide a clear understanding of the steps involved in the Continuous Integration and Continuous Deployment (CICD) process and the Change Management practices that we use to manage and track the code changes.

In software development, it's essential to have a streamlined and well-defined process for delivering code changes. The CICD process automates the process of testing, building, and deploying code changes, which helps to ensure that the code delivered to production is of high quality and meets the required standards.

Alongside the CICD process, change management practices help us to keep track of the changes being made and to ensure that the code changes are properly documented and approved before they are deployed to production. To support our change management practices, we use Jira for tracking and Confluence for documentation. These tools help us keep a clear and organized record of the changes being made and the outcomes of each step in the CICD process.

The CICD process starts with a developer creating a pull request (PR) in a version control system like Git. This PR contains the code changes that the developer wants to merge into the main branch. Once the PR is created, it undergoes a series of automated steps that include building, testing, and deploying the code changes.

We use GitHub Actions as our continuous integration tool to automate the building and testing of the code. As part of the testing process, we use SonarQube to detect and prevent code smells and to ensure the quality of the code. To ensure the security of the container images, we run a security scan using Trivy before deploying the code to a production environment.

After the code is built, tested, and scanned for vulnerabilities, it is deployed to a development environment using a tool like ArgoCD. This allows developers and QA team members to test the code in a staging environment before it is deployed to production.

Once the code has been tested and approved in the development environment, it is promoted to the staging environment by using git tags. This is typically done by assigning a specific tag to the code, such as "v1.0" or "release-candidate". Finally, the code is deployed to the production environment using the same Docker image tag that was used in the development environment.

In our change management process, Jira is used to track the changes being made and to ensure that each change is properly documented, approved, and tracked through to completion. Confluence is used for documentation and to ensure that the details of each change are properly recorded for future reference.

In conclusion, our CICD process along with our change management practices using Jira and Confluence help us deliver code changes efficiently, reliably, and consistently. Our processes are designed to ensure that the code delivered to production is of high quality and meets the required standards, and our use of Jira and Confluence helps us to keep a clear and organized record of the changes being made and the outcomes of each step in the process.


Related Task: ITI-1973