DevOps Toolchain Cloudogu EcoSystem DevStarter
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, 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.
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
- 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.
The source code management tool SCM-Manager 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:
- Pulling the current state of the source code from the version management (SCM-Manager).
- Performing the build and running unit tests using artifacts (Nexus Repository)
- Start of a static code analysis (SonarQube)
- Upon successful code analysis, storing the built version (Nexus Repository)
- Deployment of the built version
SonarQube is an open source tool that can be used to perform static code analysis. The tool provides a variety of tests 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 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 deployed. It can also be used to manage binaries, providing a centralized source of information within the organization and speeding up builds.
Elasticsearch can be used to collect and process a wide variety of monitoring data and to use that data for alerting.
Further DevOps tools
As an addition to the tools included in the Cloudogu EcoSystem DevStarter, 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.