Resource optimisation: a factor that applies in all manufacturing industries worldwide and is becoming increasingly important in the wake of the 'energy transition' is equally relevant in the digital world. Well-known car manufacturers do not ship every car individually, but rather ship them in huge container ships. Similar approaches are also possible in the software sector.
Containerisation is nothing more than the packaging of individual software into so-called containers. This is always an image at the outset – a blueprint for the respective software. The image includes all the important components required to run specific software (program code, libraries, etc.). This image can be used as often as required and is provided by most established software vendors.
When a new database is started, additional individual parameters, such as storage location and IP address, are specified along with the image. At Marketing Factory, we manage databases across clusters by means of container orchestration to ensure fail-safe, redundant operation. This practice ensures that we always have at least two servers working together within a cluster, an orchestration that manages this cooperation, and any number of containers managed within this set-up. In the event of a hardware failure, the cluster can absorb the impact and distribute enquiries to the linked servers.
Containerisation and clustering are all about optimising existing resources. Resources are used more sustainably, can scale better and more easily, and errors and failures are detected more quickly.
Here are a few examples to illustrate this:
- There is no need to emulate a separate operating system, as containers share the core of a host's operating system. This results in significant savings in terms of computing power and power consumption.
- Centralised image management reduces the workload considerably.
- Security problems are detected and corrected much faster.
- If an image requires a version update, the affected image can simply be replaced instead of being updated at great expense.
- The failure of one container does not affect other containers, resulting in a greater continuity of operation.
- If there is malicious code within a container, its isolation means that it does not penetrate the host system.
Containerisation and clustering is a key technology in agile software development. Their use means that we can create new development and automated test environments on demand, reducing the workload in development and quality assurance alike. Clients and project managers can review and approve multiple developments in parallel within individual test environments, obviating the waiting times caused by a singular environment.
This practice offers an extremely high degree of fail-safety as well as various other security benefits, which have proved themselves time and again in our everyday work.