CI/CD Implementation for a Smart Retail Digital Signage Solution
The Customer is a North American startup that offers an innovative digital signage product comprising the hardware part and the SaaS part for smart retail and entertainment. It enables interactive communication with the visitors of shopping and entertainment areas.
The Customer was in the process of extending their product with a cloud-deployed web administration application to manage the content displayed on the smart retail devices. The Customer needed to launch their product on multiple regional markets simultaneously and within a tight schedule, with some regional markets, such as China, requiring the deployment of the SaaS part of the product to their local cloud platforms.
To achieve the desired time to market, the Customer needed to streamline code delivery with the help of DevOps practices backed up with an efficient CI/CD pipeline. The CI/CD pipeline was required to be compatible with such cloud platforms as AWS, Azure, Alibaba Cloud, and Google Cloud Platform (GCP).
ScienceSoft’s team of 7 members was working on the development of the Customer’s web administration application for AR content management. The app consisted of 4 layers: the administration panel (UI), the Node.js backend, the SaltStack-based configuration manager, and the middleware API connecting the backend and the configuration manager. To speed up code delivery and enable the Customer to reduce time to market, ScienceSoft’s team leveraged their DevOps expertise to create continuous delivery pipelines compatible with multiple clouds.
With CI/CD pipelines set up, ScienceSoft’s team ensured a seamless introduction of frequent code changes (up to 100 commits a day). For the CI/CD workflow, the team chose the Drone CI platform, which uses delivery protocols standard for most cloud platforms to adhere to the Customer’s requirements for broad cloud compatibility. Every pipeline had a standard Gitflow branching model with each pipeline step launched in a separate AWS-hosted Docker image to maximize fault isolation and prevent them from affecting each other.
To save time on recovery procedures, ScienceSoft’s team added a possibility to take backup snapshots of code assembly environments for each pipeline step of the feature, release, and master branches. The timestamped snapshots contained the actual operable state of each code assembly environment. This enabled the developers to easily recover any previous functioning state of the code assembly environment if the current step’s environment did not operate as planned.
Having relied on ScienceSoft, the Customer benefited from:
- Code delivery pipelines ensuring delivery on a tight schedule.
- The opportunity to deploy their SaaS tool for the digital signage solution in AWS, Azure, Alibaba Cloud, and GCP at sight, which has broadened access to the global market and new investors.
Technologies and Tools
AWS, Drone CI, Docker, Kubernetes, MariaDB, Go, Ansible, SaltStack, CMake, GNU Make, Atlassian Bitbucket.