7Targets is a SaaS B2B company in the Sales and Marketing domain focused on lead nurturing. The company’s flagship product ‘AI Sales Assistant’ provides users with the capability to automate emails creation and conduct follow-ups of received leads. It is also able to read received responses and act accordingly.
Despite offering an AI driven solution (for lead development) and SaaS product, 7Targets team was performing manual deployments in their environments. This made the development process highly susceptible to human errors, reduced efficiency, and affected the code quality.
7Targets team was looking was faster, efficient upgrade and rollback process in the application deployments.
Specific project-level challenges were:
- Increased development and deployment time with increased backlog.
- Increased release cycles for production upgrades
- Process did not allow optimal utilization of resources
To address the specific challenges faced by the client, Applied AI Consulting designed the following solution:
- Implemented GitLab for versioning control. Git is a popular open source code repository as well as a software development platform for collaborative working on DevOps projects. Not only is the platform free (although there is a paid version, too.), unlike GitHub, it offers CI/CD capabilities, and a location for online code storage and issue tracking.
- GitLab repository allows hosting of different versions, enabling users to inspect code and roll back to a desired version in the event of any problems. GitLab supports each stage of the software development lifecycle, enabling DevOps capabilities. It comes with a continuous integration (CI) Capabilities built in, which allows development teams to automate code building and testing. GitLab also provides security features, presenting developers with scans—within their native CI pipeline—and dashboard assists showing vulnerabilities. (CI/CD stands for Continuous Integration-Continuous Delivery/Deployment. It is a set of practices that allows developers to introduce automation into software development stages—building, testing, deployment, etc.—so they can make changes to the code and deploy them in production without waiting for a release window).
- GitLab flow model was implemented for branching strategy.
- GitLab is built on the same basis as GitHub, and offers similar functionality for source code management but has the advantage of being free for individuals and small businesses, compared to GitHub which charges for private repositories. For these reasons, and because the client was familiar with GitLab, AAIC chose to implement GitLab as the version control system. Gitlab CIs were set up to be triggered whenever any commit was made to the corresponding branch of each repository. Viz. As soon as the code was merged into develop and main branch, Gitlab CI would get triggered and pull the code from repository and trigger the build the code.
- Based on the repository storage type, GitLab CI generates Zip files and container images with the libraries and tools needed to upload those to the selected AWS S3 bucket and AWS Elastic Container Registry (ECR) respectively for respective development and production environment.
- Upon successful build, Another Gitlab CI job will be triggered and it will deploy the artifacts (Containers and Lambda Zip files ) to the Lambda and ECS environments.
- At the end, series of automated tests are executed to verify deployments and, in the event of any glitches, Gitlab CI rollbacks implemented to deploy the previously stable running version of the application.
Several AWS services used as part of the solution, including
AWS S3, AWS ECR, AWS Lambda, AWS ECS Fargate,
Go Live Date: August 2022
- With fully automated CI/CD solution, any possibility of human prone errors was eliminated, which speeded up the entire development cycle
- With automation in the development cycle, the time to market of this SaaS application was reduced to 80% with three to five upgrades on daily basis
- As the development lifecycle was automated, developers can now spend more time in development rather than in operations.
Architecture diagrams of the speciﬁc customer deployment:
We are automation experts, with a majority (>60%) of our workforce AWS-certified. We assist you in applying intelligence to the Cloud and DevOps, as our name suggests. Our AWS certified experts create high-performing cloud apps by utilizing intelligence components and smart integrations to accelerate your digital transformation journey.