- News & Publications
The CI/CD architecture that we offer our clients.
The design and implementation of a continuous integration and deployment system is one of the most important keys for developing and deploying products in the cloud.
The technologies we use at SNGULAR are integrated with the tools our clients use to develop. These tools can usually be task and ticket managers (like JIRA), code versioning tools like GIT, or deployment managers like JENKINS.
Here, we’ll go through the the tools we use in each phase:
During the first phase, we use gradle to manage compiled code. This scripting tool is currently one of the most powerful and we also use it in other phases of the architecture. For the tests, if they are unitary we use spock, and if they are layered, we use REST-assured, spring and/or mockito.
We validate and certify project quality (QA) using SONAR. Every time a modification is made to the project and it passes the QA tests, the executables are built with gradle and the container images are created using Docker + JFrog.
Once we have the image with the latest version, we use gradle to prepare the deployment in the test environment in the container service. Here, we like to use Kubernetes.
The next step is the execution of contract tests, and here we use WM. If these test results are positive, we create the stage environment that is prior to production with Kubernetes. We use Gatling to run the performance tests in this environment.
Once we’ve gotten through the first two phases, we’re ready for the production deployment. We usually use git to trigger the process. We update the branch of the project that has been tested and proven to work. A “CANARY” version is created, which is tested and monitored with real users. If all goes well, the production version is deployed on Kubernetes.