DevOps Tools as a module of Onesait Platform
In this release 6.1.0-Warcraft of Onesait Platform we have incorporated a new module called ‘DevOps Tools’ which includes a set of open source CI/CD tools standardised in its scope to offer a complete DevOps system to the project in Service mode in Platform installations where these do not exist or are not accessible.
We consider DevOps Tools to be another component of the Platform, applying the same subscription model as the rest of the Onesait Platform components.
That said, what does this new module include? We analyse it below.
GitLab as a centralised code repository
GitLab is a code repository management platform that uses the Git version control system. In addition to source code management, GitLab also offers tools for project management, code review and continuous integration.
The main characteristics of Gitlab are:
- Flexibility and scalability: It is a platform that can be used in both small projects and large developments, being able to adapt to the needs of each specific moment.
- Git repository: It uses the Git distributed version control system to manage and track changes in the source code of a project.
- Project management: Allows the organisation and management of software development projects, such as the creation and management of tasks, the tracking and resolution of problems, the milestones achieved, etc. (like the Git repositories).
- Collaborative tools: Provides functionalities that facilitate collaboration between the different members of a development team (commenting on problems, development of specific lines of code, etc.).
- Continuous Integration (CI) and Continuous Deployment (CD): Adds integrated CI/CD capabilities to automate the building, testing and deployment of applications.
- Access control and security: Makes it easy to configure access levels and roles to control who can perform specific actions in the repository.
- Efficient logging and tracking system: Provides detailed logs of all project-related activities, making it easy to track changes and actions taken in the repository.
- Project documentation: Includes tools for creating and managing project-related documentation.
Jenkins as a Software Build Server
Jenkins is an open source Continuous Integration, Continuous Delivery and Deployment (CI/CD) automation software DevOps tool written in the Java programming language.
It is used to implement CI/CD workflows, called pipelines.
Its functionalities and features include:
- As an extensible automation server, Jenkins can be used as a simple CI server or become the continuous delivery hub for any project.
- Jenkins is a standalone Java-based program, ready to run out-of-the-box, with packages for Windows, Linux, macOS and other Unix-like operating systems.
- Jenkins can be easily installed and configured through its web interface, which includes on-the-fly error checking and integrated help.
- With hundreds of plug-ins in the update centre, Jenkins integrates with virtually every tool in the continuous integration and delivery tool chain.
- Jenkins is extensible through its plug-in architecture, providing almost infinite possibilities for what Jenkins can do.
- Jenkins can easily distribute work across multiple machines, which helps drive builds, tests and deployments across multiple platforms more quickly..
ArgoCD as a Kubernetes distribution tool
ArgoCD is a declarative GitOps continuous delivery tool for Kubernetes.
ArgoCD offers several functionalities among which stand out:
- Metrics with Prometheus.
- Automatic application deployment.
- Management of several Kubernetes clusters.
- Multitenant.
- Compatibility with different repositories: Git, Helm repositories.
- SSO integration.
- Authorisation policies with RBAC.
- Synchronisation with deployed applications.
- Simple and intuitive UI.
- CLI to integrate with other CI/CD tools.
- Webhooks..
Docker Private Registry as an image repository
This Registry allows us to store confidential or proprietary container images that are not intended for public distribution.
By requiring authentication, these registries restrict who can extract and send images, creating a more secure development environment.
Among the features to be highlighted:
- SHA digest.
- Possibility of having different ingress for the UI and registry.
- Deletion of images from the UI.
- Multi-user authentication for UI and registry.
- User interface with information about the images:
- Creation date.
- Image size.
- Full Dockerfile.
Nexus as an artefact repository
Sonatype’s Nexus is a repository that organises, stores and distributes the artefacts needed for development. With Nexus, developers can fully control the access and deployment of each artefact in an organisation from a single location, facilitating the distribution of the software.
Nexus offers functionalities such as:
- Single sign-on (SSO), role-based access controls and full auditability.
- Publishing and caching in a central repository, which connects natively to all popular package managers.
- Lifecycle control of staged builds and custom metadata directly from your CI/CD server.
Header Image: İsmail Enes Ayhan at Unsplash