CI / CD Chain
Currently we are using multiple Cloud vendors to serve our customers such as AWS, Azure, Firebase, IBM, and Exoscale.
High Level Introduction
We have established a toolchain for Agilibo that provides a Continuous Integration, Deployment and Release framework enabling an automated pipeline for digital services and applications. It includes testing tools to ensure the quality of the deliverables. It also enables our strong community of developers, architects, testers etc. to collaborate quickly, yielding faster and automated releases to production.
Our toolchain is designed to support our Agile delivery model. It enables a higher level of flexibility for the changing needs of our API and Agilibo development Scrum teams.
DevOps is the collaboration between software developers and IT operations with the goal of constantly delivering high-quality software that solves customer challenges. It creates a culture and environment where building, testing and releasing software happens rapidly, frequently, and more consistently.
Continuous Delivery, enabled by Agile product development practices, is all about shipping small batches of software to production constantly, through automation. Continuous delivery makes the act of releasing dull and reliable, so organizations can deliver frequently, at less risk, and get feedback faster from end users.
Application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. By abstracting the underlying implementation and only exposing objects or actions the developer needs, an API simplifies programming.
Microservices is an architectural approach to developing an application as a collection of small services; each service implements business capabilities, runs in its own process and communicates via HTTP APIs or messaging. Each microservice can be deployed, upgraded, scaled, and restarted independent of other services in the application, typically as part of an automated system, enabling frequent updates to live applications without impacting end customers.
Containers offer both efficiency and speed compared with standard virtual machines (VMs). Using operating system (OS)-level virtualization, a single OS instance is dynamically divided among one or more isolated containers, each with a unique writable file system and resource quota. The low overhead of creating and destroying containers combined with the high packing density in a single VM makes containers an ideal compute vehicle for deploying individual microservices.
Features & Benefits
The high degree of automation aims to minimize the time and cost of local test, QA and production processes and accelerate delivery of production-ready code. Developers have greater control over the process and can respond more quickly to demands by bringing up new environments and testing against them. Operations benefits as reduced friction in the CI/CD pipeline created by automation, decreases repetitive manual work and mistakes.
Continuous Web Interface, Mobile App, API & Microservices delivery to production and non-production environments
Automated test and quality checks
More stable operating environments
Improved communication and collaboration
Code changes are tracked and peer reviewed
Supports hybrid infrastructure – on-premise and Cloud
Our toolchain uses several open source and licensed products. These tools are then closely integrated to fulfil the requirements of our development teams. Integration between tools provide advantage to track and plan the deliveries. Issues can be analyzed with very little knowledge of underlying complex environment. Some of the major tooling we rely on:
Visual Studio, Eclipse, Cordova, Ionic: Development Environment
Gitlab: Code Repository
Jenkins: Continuous Integration/Deployment Server
Nexus: Image/Container Repository
Sonarqube: Code Quality Management
Jmeter/Wiremock: Code Testing
CI/CD is implemented in Cloud environments.