DevOps Toolchain Cloudogu EcoSystem DevStarter
Tags: devops, tooling, opensource, news
Published: 2022-08-18 15:30:00

DevOps is a methodology or collection of approaches, practices and methods to deliver new software features faster. Depending on how the previous ways of working were in an organization, adopting DevOps can mean a fundamental change in ways of working and, consequently, can take a long time. It is important to note that DevOps cannot be introduced by simply using certain tools, because tools only support the implementation of the ways of working, the mindset however needs to be developed independently. Nevertheleess, choosing the right tools can help significantly with the introduction of DevOps.

Since working methods and processes are often changed when DevOps is introduced, new tools are usually also required to support these changes and support the automation of processes. That’s why it’s important to have both a flexible infrastructure that allows tools to be added easily and to use flexible tools per se that are intuitive and support cross-functional sharing.

That’s why we’re introducing the [Cloudogu EcoSystem DevStarter](https://partner.cloudogu.com/devstarter/?mtm_source=devTo&mtm_medium=onpage&mtm_content=DevStarter-page&mtm_placement=textlink), a platform that, even in its basic form, runs a variety of tools that users need for DevOps. The following graphic shows you which tools can be used in which DevOps phases.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pv1ccugvasltzztgs33.jpg)

## Easy Redmine (Plan, Code and Operate)

The Easy Redmine project management tool offers, in addition to classic project management functions for Agile and Waterfall, other helpful features:

* Issue tracker
* Time tracking
* Resource planning
* Dashboards
* Project planning via Agile board, Gantt chart and more.

Also, Easy Redmine offers a help desk extension, making it particularly helpful in the phases **plan** and **code** (task planning and processing) as well as **operate** (help desk).

## BlueSpice MediaWiki (Plan and Code)

BlueSpice is an easy-to-use wiki that can be used in any department or task area in a company to document information or collect and discuss ideas. In software development, the wiki can be used to collect detailed requirements in the **plan** phase so that they can then be referred to during development (**code** phase). Of course, the wiki can also be used in other phases of the software lifecycle to record information.

## SCM-Manager (Code)

The source code management tool [SCM-Manager](https://scm-manager.org) can be used to manage Git, Mercurial as well as Subversion repositories. This makes the tool much more flexible than other solutions that only support one kind of repositories, e,g, Git. This makes the tool particularly valuable for companies that still have Mercurial repositories, for example, but would like to switch to Git. But even if only one repository type is used, SCM-Manager has many advantages:

* Variety of integrations with issue trackers like Easy Redmine available.
* Easy integration into continuous development processes
* Many functions of the tool can also be used via a GUI
* Extensive code review process available
* Simple operation

The tool is used by teams in the **code** phase to version the source code of software applications and then use it for builds.

## Jenkins (Build and Deploy)

The continuous integration server Jenkins is the central building block of the development pipeline. The tool can be connected to a variety of other tools and used to automate steps. Automated builds as well as deployments of applications are only the most obvious functions. A development pipeline can consist of these steps:

1. Pulling the current state of the source code from the version management (SCM-Manager).
1. Performing the **build** and running unit tests using artifacts (Nexus Repository)
1. Start of a static code analysis (SonarQube)
1. Upon successful code analysis, storing the built version (Nexus Repository)
1. **Deploy**ment of the built version

## SonarQube (Test)

SonarQube is an open source tool that can be used to perform static code analysis. The tool provides a variety of **test**s for many programming languages and allows quality gates to be set to enforce minimum code quality requirements. Examples of quality gates are

* % coverage of code with unit tests
* Rate of comments in the code
* Number of (potential) bugs in the code

## Nexus Lifecycle (Test)

Recently we have been shown several times the extent that security vulnerabilities in open source components can have. In the case of security vulnerabilities in very popular components, the news even makes it to the big media. For the majority of open source components, however, it can be very time-consuming to keep up to date on possible vulnerabilities. This is where Nexus Lifecycle comes in. The tool analyzes dependencies in your software projects and automatically informs you about known vulnerabilities. It also gives you information about possible licensing restrictions of open source software.

## Nexus Repository (Build and Release)

The Nexus Repository tool is an artifact repository management tool that can be used, among other things, to manage and store **build** artifacts before they are **deploy**ed. It can also be used to manage binaries, providing a centralized source of information within the organization and speeding up builds.

## Elasticsearch (Monitor)

Elasticsearch can be used to collect and process a wide variety of **monitor**ing data and to use that data for alerting.

## Further DevOps tools

As an addition to the tools included in the [Cloudogu EcoSystem DevStarter](https://partner.cloudogu.com/devstarter/?mtm_source=devTo&mtm_medium=onpage&mtm_content=DevStarter-page&mtm_placement=textlink), there are of course other tools widely used in the DevOps environment to enable even better collaboration between development and operations:

* Kubernetes, a system for deploying, scaling and managing container applications.
* Docker, a tool for isolating applications through container virtualization.
* Terraform, an infrastructure-as-code tool that can be used to create, modify and improve infrastructure.
* Selenium, a framework for creating automated tests for web applications.
* Nagios, a tool for monitoring services in complex IT infrastructures.