DevOps Implementation and Optimization

Description
A Fintech product Company focused on Compliance & Business Process Management solutions to the Credit & Collections Industry, offering a wide range of products. DevOps Enabler & Co. was provided with the opportunity to implement DevOps on one of their most complicated product.
Challenge
Challenges:
Some of the major challenges of the product were the following:
-
The product was using the TFS repository system, which needed migration to any Git server.
-
There was no proper Process or Process Template across the organization, but the customer team was maintaining Work Items and User Stories in crude ways.
-
The product had no Development or DevOps policies or practices.
-
There was no proper Branching Strategy.
-
Sprint delivery took more than 4 days for deployment across 25 clients.
-
No Continuous Integration and Continuous Deployment were in place.
-
CI/CD was required to do deployment across Dev, QA, and UAT environments.
-
The customer lacked automated testing (End-to-End Testing as well as Functional Testing).
Solutions
Solution:
-
A detailed discovery phase was done, and a common Process Template was designed.
-
The Tech stack for the CICD (GitLab and Jenkins) process was discussed and finalized.
-
DevOps team planned and successfully migrated from TFS to GitLab.
-
Naming convention, versioning, and tagging process for branches and folder structure were implemented across all product repositories.
-
Branching strategies and policies were created and implemented across all the repositories.
-
The DevOps team recommended the implementation of RBAC policies at the Project level.
-
The team designed the flow for the CI/CD process and implemented the same.
-
DevOps team integrated the Automated Testing Scripts.
-
DevOps Team created CI/CD flow for production, which made the Implementation Team capable to deploy straight into production with just a few clicks.
Impact
Outcome:
-
When the DevOps team started the discovery phase, they were at a maturity level of 0 (As per AWS DevOps Maturity Scale.) Now the team has reached a Maturity Level of 4+.
-
Previously the Development Team needed to carry out a lot of manual processes, which are now automated and the TL just needs to approve the PRs.
-
Previously someone had to manually build the repositories and test in the fixed Dev/QA/UAT environments, now environments are provisioned on the go.
-
Manually running the testing scripts and sharing the test reports had been just a misuse of resources, now this process is integrated into the Jenkins Pipelines.
-
The same was with the Deployment team, which took more than one working week for entire client deployments. Now it can be done within one and a half days.
-
As per the DevOps team, this deployment time was also on the higher end. We did further tuning and were able to bring down the deployment time to 8 hrs.