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.
Within the wide range of technologies and products used, the following stand out as being common to most Cloud Adoption implementations that we work on:
- Lifecycle Management (ALM): JIRA, Confluence
- Git-based code repository: Gitlab, GitHub
- Artefactors repositories: Nexus, Artifactory
- Integration engines: Jenkins
- Code quality checkers: Sonar
- Infrastructure-as-Code (IaC) languages: Terraform, Ansible
- Container orchestrators: Kubernetes or derivative versions of Kubernetes
- Functional testing: Gherkin, Cucumber, Selenium
- Performance testing: Gatling, jMeter
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.