{"id":31976,"date":"2024-04-22T14:31:45","date_gmt":"2024-04-22T12:31:45","guid":{"rendered":"https:\/\/risc.web-email.at\/fachbeitraege\/containerisierung-in-der-software-revolution-der-bereitstellungsprozesse\/"},"modified":"2026-03-10T14:24:11","modified_gmt":"2026-03-10T13:24:11","slug":"containerization-in-software-revolution-in-deployment-processes","status":"publish","type":"publication","link":"https:\/\/risc.web-email.at\/en\/technicalarticles\/containerization-in-software-revolution-in-deployment-processes\/","title":{"rendered":"Containerization in software: revolution in deployment processes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-medium-font-size\">How software containers simplify the delivery and operation of modern solutions<\/h2>\n\n<p class=\"has-medium-font-size\"><strong>from Paul Heinzlreiter<\/strong><\/p>\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>How do you deliver a new software solution to customers so that it is easy to use and operate? The word container conjures up images of efficient mass freight transport on large cargo ships or similar logistics chains, which are made possible by the standardized dimensions of the containers. This image also applies to containers in software development. Similar to the use of containers in classic logistics, software containers also enable the flexible use of software in a wide variety of system environments. Software packages can be packaged and executed together with the associated libraries via a defined interface. This approach can be used for standard software packages such as web servers or databases as well as for newly developed individual software.     <\/p>\n\n\n\n<p>Containerization means that no direct software installation is necessary on the underlying system, only a service for running containers needs to be installed. By packaging services such as a database and the libraries it requires in a container, it is easily possible for different versions of the same library to be used in different containers without causing conflicts. <\/p>\n<\/div>\n<\/div>\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p><strong>Contents<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Differentiation from virtualization and cloud computing<\/li>\n\n\n\n<li>Clustered container solutions<\/li>\n\n\n\n<li>Application scenarios\n<ul class=\"wp-block-list\">\n<li>Automatic scaling of services<\/li>\n\n\n\n<li>Management and evaluation of software systems<\/li>\n\n\n\n<li>Automated build pipelines in software development<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Use in the projects of RISC Software GmbH<\/li>\n\n\n\n<li>Author<\/li>\n\n\n\n<li>Read more<\/li>\n<\/ul>\n<\/div><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"1024\" height=\"666\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-1024x666.jpg\" alt=\"\" class=\"wp-image-31109 size-full\" srcset=\"https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-1024x666.jpg 1024w, https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-300x195.jpg 300w, https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-768x500.jpg 768w, https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-1536x999.jpg 1536w, https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Differentiation from virtualization and cloud computing<\/h3>\n\n\n\n<p><br\/>Virtualization is another common method of isolating software installations from the basic system of the executing computer. However, this involves replicating an entire computer including virtual hardware and operating system, which leads to significant main memory and processor usage as well as longer start times. In contrast, only a specific service &#8211; such as a web server or a database &#8211; is usually delivered in a container.  <\/p>\n\n\n\n<p>In the area of cloud computing &#8211; especially with Infrastructure as a Service &#8211; virtualized computers are usually used. However, this also brings with it the limitations mentioned above. Of course, the large public cloud providers now also offer specialized runtime environments for containers. However, it is also possible to operate a self-managed, scalable container environment. In this scenario, the container runtime environment is set up and configured as part of the installation activities. The basis here is a number of computers, which are either available directly at the customer&#8217;s premises (on premise) or can also be rented in a data center (dedicated hosting).     <\/p>\n<\/div>\n<\/div><div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Clustered container solutions<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p><a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener\">Docker<\/a> and <a href=\"https:\/\/podman.io\/\" target=\"_blank\" rel=\"noopener\">Podman<\/a> are widely used solutions for containerizing software. These are usually used to run containers on individual computers. Several containers can also be started and managed together. An example of this is a database and the web server on which the web application runs, which displays data from the database.   <\/p>\n\n\n\n<p>As the limitation to one computer severely restricts the expandability of a solution, a cluster of computers is usually used to host containers in production environments. This can be achieved using <a href=\"https:\/\/kubernetes.io\/\" target=\"_blank\" rel=\"noopener\">Kubernetes<\/a> as an execution platform, for example. <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"670\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482-1024x670.jpg\" alt=\"Hall\" class=\"wp-image-1430\" srcset=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482-1024x670.jpg 1024w, https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482-300x196.jpg 300w, https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482-768x502.jpg 768w, https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482-1536x1005.jpg 1536w, https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/iStock-155667482.jpg 1920w\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<p>When using computer clusters to run containers, the available capacity for running containers can be easily increased by adding additional compute nodes. An appropriately configured Kubernetes cluster also increases the reliability of the overall system, as individual computers can fail if sufficient redundant computers are available. The flexible execution of containers on a Kubernetes cluster enables the efficient use of existing hardware, especially when the workload of the systems fluctuates. Thanks to its technological flexibility, Kubernetes also enables the integration of a wide variety of storage solutions such as local hard disks as well as storage accessible via the network. If no cloud servers are to be used, the use of containers enables the flexible replacement of deployed services such as databases in order to easily implement new technical requirements.    <\/p>\n\n\n\n<p>By using Kubernetes, it is also possible to flexibly adapt the execution location of the software. On the one hand, the widespread cloud offerings from Amazon, Microsoft or Google, as well as European clouds, can be used for this. On the other hand, a Kubernetes cluster can also be installed on local hardware in order to retain maximum control over your own programs and data. The particular advantage of Kubernetes in this context is that the existing software and service setup can be transferred from one infrastructure to another without any additional effort or changes to the configuration. This means that a vendor lock-in (= barrier due to switching costs or barriers to changing the product or provider) can be avoided, as is the case with the direct use of specific cloud services, for example.    <\/p>\n<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\">Application scenarios<\/h3>\n<div class=\"accordion\">\n  <div class=\"accordion-header p-1.5 md:px-3 md:py-2 flex items-center justify-between \" id=\"headingblock_423415efb96bea5705970fcc86f7ed84\">\n    <h3 class=\" inline-block \">\n        Automatische Skalierung von Services    <\/h3>\n    <span class=\"accordion-icon-toggle inline-block\"><\/span>\n  <\/div>\n  <div id=\"collapseblock_423415efb96bea5705970fcc86f7ed84\" class=\"collapse\" aria-labelledby=\"headingblock_423415efb96bea5705970fcc86f7ed84\">\n    <div class=\"accordion-body p-1.5 md:p-3 \">\n      <p>Der Einsatz von Containern erm\u00f6glicht es, durch die Verwendung von vorkonfigurierten Standardabbildern den Konfigurationsaufwand f\u00fcr die einzelnen Services zu minimieren. Dar\u00fcber hinaus kann flexibel auf sich \u00e4ndernde Anforderungen reagiert werden. Ein typischer Anwendungsfall daf\u00fcr ist die automatische Skalierung von Services, wenn beispielsweise bei einem Online-H\u00e4ndler im Weihnachtsgesch\u00e4ft mehr Anfragen eintreffen und mehr Webserver hochgefahren werden, um diese zu behandeln. Genauso kann die Menge der Container wieder reduziert werden, wenn weniger Anfragen eintreffen.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"accordion\">\n  <div class=\"accordion-header p-1.5 md:px-3 md:py-2 flex items-center justify-between \" id=\"headingblock_3c31a4ec3cd3fc23306a8706eac39a73\">\n    <h3 class=\" inline-block \">\n        Management und Evaluierung von Softwaresystemen    <\/h3>\n    <span class=\"accordion-icon-toggle inline-block\"><\/span>\n  <\/div>\n  <div id=\"collapseblock_3c31a4ec3cd3fc23306a8706eac39a73\" class=\"collapse\" aria-labelledby=\"headingblock_3c31a4ec3cd3fc23306a8706eac39a73\">\n    <div class=\"accordion-body p-1.5 md:p-3 \">\n      <p>Genauso kommt es gerade bei komplexeren Softwarearchitekturen, welche aus vielen verschiedenen Komponenten bestehen und \u00fcber lange Zeit produktiv eingesetzt werden, oft zu einer evolution\u00e4ren Weiterentwicklung der eingesetzten Technologie. Durch Containerisierung und Services wie Kubernetes wird es m\u00f6glich, einzelne Systemkomponenten flexibel auszutauschen, ohne das (De)Installationen von Softwarepaketen oder Bibliotheken direkt auf den ausf\u00fchrenden Servern durchgef\u00fchrt werden m\u00fcssen. Dies ist wegen Abh\u00e4ngigkeiten zu verschiedenen Versionen derselben Biblithek oft problematisch, gerade bei Software, welche \u00fcber mehrere Jahre eingesetzt wird.<\/p>\n<p>Ein weiteres Anwendungsfeld sind Evaluierungen von Softwaresystemen, welche eine fundierte technische Grundlage f\u00fcr Technologieentscheidungen liefern. Damit kann einfach untersucht werden, welche Systeme die vorliegenden Kundenanforderungen am besten erf\u00fcllen. Gerade im Bereich des Data Engineering stellt sich zu Beginn eines Projekts oft die Frage, mit welcher Technologie man die Anforderungen der Kund*innen am besten erf\u00fcllen kann. W\u00e4hrend man manchmal \u2013 oft aufgrund nicht-technischer Kriterien \u2013 manche L\u00f6sungen schnell ausschliessen kann, ist es oft f\u00fcr eine fundierte Entscheidung notwendig, verschiedene Ans\u00e4tze mit dem Anwendungsfall der Kund*innen zu testen. Gr\u00fcnde daf\u00fcr daf\u00fcr k\u00f6nnen spezielle Anforderungen wie die Datenmenge, welche pro Zeiteineinheit in das System eingebracht werden soll oder speziell notwendige Vorverarbeitungsschritte sein.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"accordion\">\n  <div class=\"accordion-header p-1.5 md:px-3 md:py-2 flex items-center justify-between \" id=\"headingblock_3c948da9655559ee67f62776439f0a6e\">\n    <h3 class=\" inline-block \">\n        Automatisierte Build-Pipelines in der Softwareentwicklung    <\/h3>\n    <span class=\"accordion-icon-toggle inline-block\"><\/span>\n  <\/div>\n  <div id=\"collapseblock_3c948da9655559ee67f62776439f0a6e\" class=\"collapse\" aria-labelledby=\"headingblock_3c948da9655559ee67f62776439f0a6e\">\n    <div class=\"accordion-body p-1.5 md:p-3 \">\n      <p><!-- wp:paragraph --><\/p>\n<p>In der Softwareentwicklung sowie bei der Ausrollung der entwickelten Software in den Betrieb kann Containerisierung im Allgemeinen und Kubernetes im Speziellen wesentliche Beitr\u00e4ge liefern. In einem modernen agilen Softwareentwicklungsprozess spielen automatisierte Tests eine zentrale Rolle, da sie das Softwareentwicklungsteam vor allem gegen unabsichtlich wieder eingef\u00fchrte Implementierungsfehler absichern. Um die regelm\u00e4\u00dfige Durchf\u00fchrung dieser Tests zu gew\u00e4hrleisten, werden Tests automatisiert sp\u00e4testens nach dem Abschluss der Implementierung einer Teilfunktionalit\u00e4t durchgef\u00fchrt. Da hierf\u00fcr auch oft eine spezifische Testumgebung notwendig ist, bietet es sich an, die Tests in Containern durchzuf\u00fchren, welche die aktuellste Version der entwickelten Software und die ben\u00f6tigten Bibliotheken beinhalten. Zus\u00e4tzlich ben\u00f6tigte Ressourcen wie beispielsweise Datenbanken werden hierbei als Teil des Testsetups konfiguriert und automatisch als separater Container mit ausgef\u00fchrt. Der Einsatz von Containern vereinfacht dadurch die Entwicklung hochqualitativer Software.<\/p>\n<p><!-- \/wp:paragraph --> <!-- wp:paragraph --><\/p>\n<p>F\u00fcr eine vereinfachte Softwareinstallation bei Kund*innen unabh\u00e4ngig von einem effektiven Softwareentwicklungsprozess ist auch die Containerisierung der fertig entwickelten Software erstrebenswert, da sie die Ausrollung in den verschiedensten Systemumgebungen bei den Kund*innen extrem vereinfacht. Damit ist es ausreichend, eine standardisierte Container-Runtime zu installieren, und die Software kann direkt ohne weitere Installation benutzt werden. Dies ist m\u00f6glich, weil der Container bereits alle Bibliotheken und Abh\u00e4ngigkeiten mitbringt, welche f\u00fcr die neue Software ben\u00f6tigt werden. Beispielsweise kann beim Einsatz von Docker ein Softwarewerkzeug, das f\u00fcr eine Linux-Umgebung entwickelt wurde, ohne Probleme auf einem Windows System ausgef\u00fchrt werden.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"wp-block-group-container alignfull \">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\"><br\/>Use in the projects of RISC Software GmbH<\/h4>\n\n\n\n<p>A Kubernetes cluster was set up for productive operation at the Leichtmetallkompetenzzentrum Ranshofen (LKR). This is used for data analysis tasks and for the simulation of continuous aluminum casting. In addition, the simulation code developed at the LKR as part of the FFG-funded project <a href=\"https:\/\/projekte.ffg.at\/projekt\/3192411\" target=\"_blank\" rel=\"noopener\"><strong>FReSgO<\/strong> <\/a>was adapted to <a href=\"https:\/\/risc.web-email.at\/en\/referenceprojects\/software-product-for-production-in-continuous-casting-of-aluminum\/\">run in containers <\/a>. The Kubernetes setup enables the LKR to react flexibly to new data processing requirements that arise in the course of research activities with variable processes in the simulation of continuous aluminum casting, data collection in mechanical material treatment and data analysis. This forms the basis for the further development of the system and the integration of machine learning approaches in the FFG project <strong><a href=\"https:\/\/projekte.ffg.at\/projekt\/4641718\" target=\"_blank\" rel=\"noopener\">opt1mus<\/a><\/strong>.    <\/p>\n\n\n\n<p>A NoSQL database was set up for <strong>MOWIS GmbH <\/strong>as part of an <a href=\"https:\/\/risc.web-email.at\/en\/referenceprojects\/scaleable-weather-database\/\">earlier project<\/a> to support the ongoing integration of weather data from various sources. This system was initially strongly designed for batch operation (= packet\/batch transmission or processing of data). The batch approach here refers to both data import and export, as the data was delivered in bulk and the calculated weather forecasts were also delivered in blocks. When an interactive web service interface was added as an additional requirement, the aim was to expand the existing system to include the new functionality. The critical factor here was not to overload the system with the expected number of interactive requests. However, modern web service interfaces are expected to respond as quickly as possible. Queries often run over many layers from the interface service via an abstraction layer, via a business logic layer, then often via further abstraction layers until the data is read or written from the storage location. If a large number of services are involved, the query takes even longer.       <\/p>\n\n\n\n<p>Caches can accelerate such queries as intermediate storage. The <a href=\"https:\/\/redis.io\/\" target=\"_blank\" rel=\"noopener\">Redis<\/a> in-memory cache allows any structured key-value pairs to be stored in the main memory, each of which can be assigned an expiry time. On a computer network, Redis can combine the main memory of several computers into one large cache.  <\/p>\n\n\n\n<p>Since a Kubernetes cluster had already been set up on the system as part of an earlier expansion, it was an obvious decision to also run the Redis cache for accelerating the weather queries on the Kubernetes cluster, which made it much easier to roll out the system, even though the new requirements were not yet known at the time of system design.<\/p>\n\n\n\n<p>RISC Software GmbH has many years of experience with the containerization of applications, the installation and configuration of Kubernetes-based environments, as well as their use in various scenarios. We will be happy to advise you on the best solution for your project and support you during implementation. <\/p>\n<\/div>\n<\/div>\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Ansprechperson<\/h2>\n\n\n\n<div class=\"wp-block-contact-form-7-contact-form-selector\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f663-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"663\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/publication\/31976#wpcf7-f663-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"663\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f663-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-name\">Your name <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-email\">Your email<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" id=\"your-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"E-Mail\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-company\">Company <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"your-company\" aria-invalid=\"false\" placeholder=\"Unternehmen\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-position\">Position<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-position\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Position\" value=\"\" type=\"text\" name=\"your-position\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-subject\"> Subject <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-subject\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-subject\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Thema\" value=\"\" type=\"text\" name=\"your-subject\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<p><span id=\"wpcf7-69de248c76587-wrapper\" class=\"wpcf7-form-control-wrap phone-95-wrap\" style=\"display:none !important; visibility:hidden !important;\"><label for=\"wpcf7-69de248c76587-field\" class=\"hp-message\">Please leave this field empty.<\/label><input id=\"wpcf7-69de248c76587-field\"  class=\"wpcf7-form-control wpcf7-text\" type=\"text\" name=\"phone-95\" value=\"\" size=\"40\" tabindex=\"-1\" autocomplete=\"new-password\" \/><\/span><br \/>\n<label class=\"sr-only\" for=\"your-message\"> Your message (optional)<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" id=\"your-message\" aria-invalid=\"false\" placeholder=\"Ihre Nachricht an uns\" name=\"your-message\"><\/textarea><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"hcap-cf7\">\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tclass=\"hcaptcha-widget-id\"\n\t\t\t\tname=\"hcaptcha-widget-id\"\n\t\t\t\tvalue=\"eyJzb3VyY2UiOlsiY29udGFjdC1mb3JtLTdcL3dwLWNvbnRhY3QtZm9ybS03LnBocCJdLCJmb3JtX2lkIjo4fQ==-87b48f281889db60dae4720b9dc28d55\">\n\t\t\t\t<span id=\"hcap_cf7-69de248c76c4e6.69470023\" class=\"wpcf7-form-control h-captcha \"\n\t\t\tdata-sitekey=\"3a6a81c1-2b2e-4b2a-b1eb-d9446bc09afb\"\n\t\t\tdata-theme=\"light\"\n\t\t\tdata-size=\"normal\"\n\t\t\tdata-auto=\"false\"\n\t\t\tdata-ajax=\"false\"\n\t\t\tdata-force=\"false\">\n\t\t<\/span>\n\t\t<input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"83fc09d92f\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/publication\/31976\" \/><\/span><input class=\"wpcf7-form-control wpcf7-submit has-spinner btn\" type=\"submit\" value=\"Senden\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<h2 class=\"wp-block-heading\">Author<\/h2>\n\n\n<div class=\"contact-person\">\n      <picture>\n      \n      \n      \n      \n      <img decoding=\"async\" data-aos=\"fade-zoom-in\"\n           data-aos-offset=\"0\" class=\"w-full\" width=\"212\" height=\"293\"\n           src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/06\/pheinzlr1-removebg-preview.png\"\n           alt=\"\">\n    <\/picture>\n    \n\n<h5 class=\"wp-block-heading\">DI Paul Heinzlreiter<\/h5>\n\n\n\n<p>Senior Data Scientist<\/p>\n\n  <\/div>\n<\/div>\n<\/div>\n\n<h2 class=\"wp-block-heading\">Read more<\/h2>\n<div class=\"posts-slider-block\" data-aos=\"fade-up\" data-aos-offset=\"0\" data-aos-anchor-placement=\"top-bottom\">\n        <section class=\"splide posts-slider\" aria-label=\"Gallery Slides\">\n            <div class=\"splide__arrows\">\n                <button class=\"splide__arrow splide__arrow--prev\">\n                    <span class=\"sr-only\">Previous<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/risc.web-email.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Previous\">\n                <\/button>\n                <button class=\"splide__arrow splide__arrow--next\">\n                    <span class=\"sr-only\">Next<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/risc.web-email.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Next\">\n                <\/button>\n            <\/div>\n            <div class=\"inner\">\n                <div class=\"splide__track\">\n                    <div class=\"splide__list\">\n\n                                                    <a href=\"https:\/\/risc.web-email.at\/en\/referenceprojects\/opt1mus\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/09\/2023-04-24-opt1mus_Projektstart-360x214.png\"\n                                                 alt=\"Project opt1mus\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Project opt1mus<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        The opt1mus project is developing a holistic system for the light metals industry that will use digital twins and artificial intelligence to make production more efficient and lower emissions.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/risc.web-email.at\/en\/referenceprojects\/scaleable-weather-database\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/10\/iStock_foto-deckblatt-360x214.jpg\"\n                                                 alt=\"Scalable weather database for wetter.at and wetter-deutschland.com\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Scalable weather database for wetter.at and wetter-deutschland.com<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        Reliable and accurate weather forecasts are essential for planning personal leisure activities as well as for numerous companies and organizations. Mobile World Information Systems GmbH (MOWIS) provides weather data services, including operating the wetter.at and wetter-deutschland.com websites.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/risc.web-email.at\/en\/referenceprojects\/software-product-for-production-in-continuous-casting-of-aluminum\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-360x214.jpg\"\n                                                 alt=\"From development to product maturity with Docker\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>From development to product maturity with Docker<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        RISC Software GmbH supported the LKR Leichtmetallkompetenzzentrum Ranshofen in rolling out a software product for production in continuous aluminum casting. In order to unite different user environments and versions, the Docker platform was used.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/risc.web-email.at\/projektstart-opt1mus\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/risc.web-email.at\/app\/uploads\/2023\/09\/2023-04-24-opt1mus_Projektstart-360x214.png\"\n                                                 alt=\"Projektstart &quot;opt1mus&quot; - ein digitaler Zwilling f\u00fcr den Aluminiumstrangguss\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Projektstart &#8220;opt1mus&#8221; &#8211; ein digitaler Zwilling f\u00fcr den Aluminiumstrangguss<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        Anfang M\u00e4rz startete das Projekt \u201copt1mus\u201d: Es entwickelt am Beispiel eines horizontalen Aluminium-Stranggusses einen digitalen Zwilling von Produktionsanlagen, um die Herstellung effizienter und auch emissions\u00e4rmer zu gestalten.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>How do you deliver a new software solution to customers so that it is easy to use and operate?<\/p>\n","protected":false},"featured_media":31110,"template":"","publication-category":[53,49],"class_list":["post-31976","publication","type-publication","status-publish","has-post-thumbnail","hentry","publication-category-software-reengineering-en","publication-category-software-development"],"acf":[],"portrait_thumb_url":"https:\/\/risc.web-email.at\/app\/uploads\/2024\/04\/iStock-183240308-360x214.jpg","_links":{"self":[{"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/publication\/31976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/publication"}],"about":[{"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/types\/publication"}],"version-history":[{"count":2,"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/publication\/31976\/revisions"}],"predecessor-version":[{"id":36146,"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/publication\/31976\/revisions\/36146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/media\/31110"}],"wp:attachment":[{"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/media?parent=31976"}],"wp:term":[{"taxonomy":"publication-category","embeddable":true,"href":"https:\/\/risc.web-email.at\/en\/wp-json\/wp\/v2\/publication-category?post=31976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}