Minimize administration effort
It is curious that in the field of software development, in which developers create something new every day, the “never change a running system” approach is very widely followed when it comes to the underlying toolchain. Downtime is too expensive, whether something goes wrong when updating an important system and the developers are unable to work for some period of time or if even the most recent work status is lost. Already the activities that are generally required to operate a toolchain necessitate a lot of effort and entail a number of personnel costs. The DevOps 2.0 in Deutschland in Germany that was conducted by the IDC, for example, has shown that personnel costs are one of the largest cost blocks for operating a DevOps optimized infrastructure.
In addition, the administration of a toolchain is not an immediate value-adding activity. During this time, you could instead be doing something for a customer and thus invoicing billable time for the work. So it happens that often the used toolchain is set up once, and then it is kept running only with minimal effort.
The downside to this approach is that you do not receive new features for existing tools or even completely new tools that could make your work more efficient or improve the quality of the developed product. However, in order to survive on the market over the long term, you should not fall too far behind. Otherwise, you will wake up one day and realize that you have overslept an important trend. If that’s the case, you will have to invest more effort into updating your tools, processes, and ways of working.
Installation of a DevOps toolchain
In this article, we want to show how it takes minimal effort to set up our Cloudogu EcoSystem as a platform to set up and operate a toolchain with minimal effort, freeing up more capacity for value-adding activities. Our platform makes it possible to adapt a DevOps toolchain to new circumstances so that you can flexibly follow important trends and thus develop software efficiently over the long term. To illustrate this, we will compare the effort that is required to set up and run an on-premises toolchain using three possible methods:
- The Cloudogu EcoSystem: Using a preconfigured toolchain
- Docker: Setting up a toolchain using Docker containers
- Conventional: The tools are installed “from scratch”
We include the conventional method in the comparison, because in our experience many of the currently used tools have been installed in this way, and in many organizations this is still the usual way in which tools are installed. We consciously did not consider SaaS toolchains because they address a completely different target audience, namely one for which retaining complete control over the transactional data plays a subordinate role.
The goal of the comparison is to provide a basic toolchain without many extras or doodads. It should contain an LDAP server for authentication as well as servers for build, source code management, issue tracking, static code analysis, and an artifact repository.
Effort that is required to install the toolchain
As described above, we want to compare the amount of effort that is required to set up a basic toolchain for software development using three different methods. Of course, the effort we have estimated depends heavily on the experience of the person carrying out the work. A very experienced administrator can set up a toolchain much faster than someone who is inexperienced. Therefore, we have tried to calculate the times based on our own experiences and interviews with moderately experienced administrators. All three methods essentially consist of the following two steps:
- Installation of the tools and basic configuration
- Connecting the applications with plugins and configuration
After that, the toolchain can be further customized. However, the effort that is required is heavily dependent on previous knowledge and the complexity or number of steps that are involved in the processes. Moreover, it is more affected by the design decisions of the software developers, and it is thus independent of operational concerns. Moreover, the amount of effort that is spent on customization is identical for all three methods, so this will not be considered here.
Comparison of the installation approaches
1. Toolchain with Docker
You can probably set up a toolchain from scratch with Docker within half a week or less.
The installation of the applications includes the selection of the containers for the applications and any databases or other secondary applications that may be required as well as the configuration of ports and system users that are required for basic operation of the applications, for example. When linking applications, for example, the connections to the LDAP server are configured and additional plugins to allow the applications to interact with other software are installed and configured.
2. Toolchain with the Cloudogu EcoSystem
If you use the Cloudogu EcoSystem for your toolchain, you can deploy it within an hour.
Once you have installed the EcoSystem, there is no other required basic configuration, since the desired tools are already configured and all essential plugins are installed.
3. Installation of a toolchain according to the conventional method
It has become much more efficient to administer applications through containerization. In order to demonstrate this, we also want to show the conventional way of setting up an application “from scratch”. Generally speaking, it can be assumed that it takes about a week to configure the basic toolchain by following this method.
For this, we assume that as soon as the applications are running, the same amount of time will be needed to configure and customize the toolchain. The difference is simply the significantly higher cost of installing the applications.
As can be seen from the graphs, the Cloudogu EcoSystem requires the least amount of time to set up a base toolchain. The conventional method is by far the most time-consuming, whereas the Docker method is definitely much faster than the conventional one in any case. The two big advantages of the Cloudogu EcoSystem are the pre-installed and preconfigured tools. This saves a lot of time. In addition, the Cloudogu EcoSystem offers additional features that can be used without any additional effort.
Even after setting up the toolchain for everyday operation, different amounts of effort are required in order to update the toolchain depending on the way it was set up. Just like the task of comparing the amount of effort that is needed to install a toolchain, we will also compare how updates are installed and the individual steps that are involved. Again, the amount of time that is required depends heavily on your own experience, and the frequency of updates is also different for each tool. We assume that every toolchain tool will be updated once. Whether you do it once a month, quarter or year is up to you.
Normally, an update begins with checking for whether an update is available and the changes it contains. Afterwards you will install the update, and lastly the update must be tested.
Operation in detail
You need to spend about 5 to 10 minutes conducting research for each application to find out if there is a new version, to read the release notes, and to evaluate if you should install the update. The Cloudogu EcoSystem eliminates this step, because it ensures that you get all of the relevant updates automatically.
Installing the updates
When updating with the Cloudogu EcoSystem (CES), only the Dogus need to be updated, and the process is exactly the same for each application:
- See list of all available updates with cesapp list-upgrades
- Install the Dogu updates with cesapp upgrade jenkins
That’s why the update installation is a bit faster than with Docker, since you may have to take special circumstances into account in the applications. In addition, it is often advisable to update the installed plugins for the applications. For applications that are not containerized, the updates can take even longer, because in some cases they have to be completely reinstalled.
One case that we have not yet considered here is the installation of a major update. In this case, an installation that may require a mandatory migration of the data or that may cause the plugins to become incompatible may be extremely expensive, regardless of whether you use the conventional or Docker methods. Thanks to the Cloudogu EcoSystem, the amount of effort required for installation is just as low as if you were performing minor updates.
Testing the new versions
After the update, the new versions of the applications must be tested to ensure that all of the processes continue to work as expected. These tests are the same for both the conventional and Docker toolchains. When you use the toolchain with CES, these tests are a bit shorter, because we regularly test the updates before releasing the new version of Dogus. Therefore, you only need to check your individual customizations.
Summary of the updates
Of course, the assumptions that we have made here are greatly simplified, since there may be large differences between minor and major updates to the applications and even between the updates themselves. The time expenditure is heavily dependent on the experience of the administrator.
However, in general we can say that implementing updates using the Cloudogu EcoSystem is much less expensive. As a result, these can be performed regularly, which in turn always ensures that applications are provided with all of their security features, bug fixes, and features.
Backup and restore
In addition to updating applications, it is still a generally accepted rule that you must still occasionally restore data when using the tools in order to avoid data loss. The Cloudogu EcoSystem has an integrated backup and restore system that allows you to easily back up the entire system and restore it when needed. You can conveniently access all of these features via a web interface.
We will not compare the cost of performing backups and restoring data here, since these systems are typically created individually. Some implementations are almost completely manual whereas others are almost completely automated. But we can say that with the Cloudogu EcoSystem backup and restore can be configured and performed very easily and quickly via a web interface without requiring any additional effort on the part of users.
Efficient installation and operation with the Cloudogu EcoSystem
It can be seen that both the one-time installation and the continuous operation of a toolchain based on the Cloudogu EcoSystem require significantly less effort than comparable toolchains based on Docker containers or “from scratch” installed tools.
During the installation, apart from selecting the tools, no further configuration or research is necessary. In addition, no research concerning updates is necessary during operation, since the updates for the tools are already pre-tested in the Dogus. In addition, the update process itself is standardized.
Additional features of the Cloudogu EcoSystem
As we mentioned at the beginning of this post, we examined the installation and operation of a very rudimentary toolchain. In addition to the described toolchain, CES offers additional features and tools that can be used without additional installation and operating costs and that further simplify your everyday work.
On the one hand, we offer simplified navigation between the applications with the Warp Menu for all tools, all with a single sign-on and not just the same directory service. In addition, there are other tools, such as the Wiki Smeagol with PlantUML integration or the cockpit. You can easily create your own personalized dashboards using drag-n-drop. Another advantage is the simple duplication of CES instances. That way, you can easily operate several completely separate instances of its toolchain at the same time. In addition, more tools can be easily installed from the available Dogu pool to extend the toolchain.
As was already mentioned in the Updates and Operations section, the Cloudogu EcoSystem comes with a backup and restore system that is available to users without any extra expenditure of effort. This saves a lot of effort when installing the toolchain, because you do not have to worry about worst case scenario. Often smaller organizations often fail to consider this until they are standing in front of a pile of rubble and thinking, “If only we had set up our backups…”
You can now see that the Cloudogu EcoSystem not only saves a lot of time installing and running a toolchain, but it also has a lot of features that add value.