{"id":10608,"date":"2024-02-21T12:00:51","date_gmt":"2024-02-21T11:00:51","guid":{"rendered":"https:\/\/www.cloudandheat.com\/?p=10608"},"modified":"2024-06-25T09:58:27","modified_gmt":"2024-06-25T07:58:27","slug":"server-test-routine-automation","status":"publish","type":"post","link":"https:\/\/www.cloudandheat.com\/en\/server-test-routine-automation\/","title":{"rendered":"Server test routine (automation)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"10608\" class=\"elementor elementor-10608\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4b647e6a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4b647e6a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6e22a534\" data-id=\"6e22a534\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-69afcf elementor-widget elementor-widget-text-editor\" data-id=\"69afcf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Introduction<\/h3><p>The <a href=\"https:\/\/www.cloudandheat.com\/server-test-routine-load-and-benchmarking\/\">previous article<\/a> explained which tools can be used to load a server and which benchmarks can be used. This article explains how these parts can be combined and automated into a unified approach.<\/p><h3>Automate the test routine<\/h3><p>A bash script was developed to automate the test process and to utilise the server over a defined period of time, to read out CPU temperatures and to perform benchmarks. The script enables the tests to be carried out efficiently and reliably. The script is listed below:<\/p><pre>#!\/bin\/bash<br \/>echo \"Please enter the name of the output file:\" <br \/>read output_file<\/pre><p>echo &#8222;Please enter the number of repetitions:&#8220; <br \/>read iteration_count<br \/>echo &#8222;Datum,openssl\/sign,openssl\/verify,RNnoise,ramspeed,Temperatur&#8220; &gt;&gt; &#8222;$output_file&#8220;.csv<br \/>for i in $(seq 1 &#8222;$iteration_count&#8220;)<br \/>do<br \/>$(.\/FIRESTARTER -i 21 -t 7200)<br \/>#fuege die Temperaturdaten hinzu<br \/>date_value=$(date +%Y-%m-%d_%H-%M-%S)<br \/>temperatur=$(sensors | grep &#8222;Core&#8220; | awk &#8218;{print $3}&#8216; | sed &#8217;s\/+\/\/&#8216; | sed &#8217;s\/\\degreeC\/\/&#8216; | tr &#8218;\\n&#8216; &#8218;,&#8216;)<br \/>temperatur=$(echo &#8222;$temperatur&#8220; | awk &#8218;{printf $1 &#8222;,&#8220;}&#8216;)<br \/>temperatur=$(echo &#8222;$temperatur&#8220; | sed &#8217;s\/,$\/\/g&#8216;)<br \/>#fuehre Benchmark aus<br \/>result_openssl=$(echo &#8222;1&#8220; | phoronix-test-suite batch-benchmark openssl | awk &#8218;\/Average\/ {print $2}&#8216;)<br \/>result_openssl=$(echo &#8222;1&#8220; | phoronix-test-suite batch-benchmark openssl | awk &#8218;\/Average\/ {print $2}&#8216;)<br \/>result_openssl=$(echo &#8222;$result_openssl&#8220; | sed &#8217;s\/\\x1B[[0-9;]*[JKmsu]\/\/g&#8216;)<br \/>result_openssl=$(echo &#8222;$result_openssl&#8220; | awk &#8218;{printf $1 &#8222;,&#8220;}&#8216;)<br \/>result_openssl=$(echo &#8222;$result_openssl&#8220; | sed &#8217;s\/,$\/\/g&#8216;)<br \/>result=$(echo n | phoronix-test-suite benchmark standard-testing | awk &#8218;\/Average\/ {print $2}&#8216;)<br \/>result=$(echo &#8222;$result&#8220; | sed &#8217;s\/\\x1B[[0-9;]*[JKmsu]\/\/g&#8216;)<br \/>result=$(echo &#8222;$result&#8220; | awk &#8218;{printf $1 &#8222;,&#8220;}&#8216;)<br \/>result=$(echo &#8222;$result&#8220; | sed &#8217;s\/,$\/\/g&#8216;)<\/p><p>echo &#8222;${date_value},${result_openssl},${result},${temperatur}&#8220; &gt;&gt; &#8222;$output_file&#8220;.csv<\/p><p>done<\/p><h3>Automate the automation<\/h3><p>This bash script already works as a stand-alone. However, it is a bit clunky in use because the benchmarks have to be adjusted manually. In addition, the automation can be further advanced here. To avoid setting up each server individually and manually, it is recommended to automate the entire process via Ansible.<\/p><p>The following structure is recommended:<\/p><ul><li>config &#8211; This directory contains configuration files for the test suite Phoronix as well as a configuration files for the default execution values for its tests.<\/li><li>scripts &#8211; This directory contains additional (python) scripts that are mostly used as helpers for the automatic execution.<\/li><li>tests &#8211; This contains the tests, which serve as the primary means to run different tests on the machine-under-test.<\/li><\/ul><h4>Config<\/h4><p>The config.yml contains only a list of benchmarks with the options that are selected. For example:<\/p><pre>tests:<br \/>- name: ramspeed<br \/>expects:<br \/>- \"Type:\" <br \/>- \"Benchmark:\" <br \/>inputs:<br \/>- 6<br \/>- 2<\/pre><p>Runs the RAMSPEED benchmark and passes the 6 and 2, which are used for copying floating points and not saving the results.<\/p><h4>Scripts<\/h4><p>Scripts contains a wrapper for phoronix, which is called in an adapted version of the previously explained bash script and loads and executes the benchmarks with the desired options from the config. The exact content would exceed the scope of this blog article.<\/p><h4>Tests<\/h4><p>Tests contains the above-mentioned Bash file in a modified version and another speciality called &#8222;Errorrate Testing&#8220;. This is another proprietary development that continuously checks whether arithmetic operations permanently produce correct results. This is carried out because there were indications that high chip temperatures generate bit flips and thus deliver incorrect results. This is checked and recorded when and how many errors occur in order to identify any increases in the course of the test. The operation in the background is a simple calculation with comparison:<\/p><pre>while [ $SECONDS -lt $end ]; do\n    a=$((2+3))\n    if [ $a -ne 5 ]\n    then\n        errors=$((errors+1))\n        echo $a\n    fi\n    operations=$((operations+1))\ndone\n<\/pre><h4>Ansible Playbook<\/h4><p>Using the ansible Playblook, the process is brought together and fully automated. The playbook installs all the necessary packages, performs the setup, tests the hardware, saves all the results on the local machine that initiated the test and then cleans up the server. The first thing that is needed is an inventory, containing for example:<\/p><pre>all:<br \/>vars:<br \/>packages:<br \/>- build-essential<br \/>- unzip<br \/>- python3<br \/>(...)<br \/>- tmux<br \/>- htop<br \/>phoronix:<br \/>tests:<br \/>- openssl<br \/>- rnnoise<br \/>- ramspeed<br \/>test:<br \/>duration: 10<br \/>iterations: 1<br \/>filename: test<br \/>cleanup: true<\/pre><p>hosts:<br \/>testserver:<br \/>ansible_ssh_host: 192.168.100.150<br \/>ansible_user: &lt;user&gt;<br \/>ansible_ssh_pass: &lt;pw&gt;<br \/>ansible_become_pass: &lt;pw&gt;<\/p><p>Then the playbook can be set up. This would also be too extensive, so here are just a few individual parts. Tasks can be passed, for example, Phoronix is downloaded via the following lines:<\/p><pre>- name: Download Phoronix<br \/>ansible.builtin.get_url:<br \/>url: https:\/\/phoronix-test-suite.com\/releases\/repo\/pts.debian\/files\/phoronix-test-suite_10.8.4_all.deb<br \/>dest: \/home\/ubuntu\/phoronix-test-suite_10.8.4_all.deb<\/pre><p>Commands are then required to install and configure Phoronix-Test-Suite. This is to be done for all necessary packages. Afterwards, the tests must be performed. The following lines can be used to create the server test bash:<\/p><pre>- name: Run `servertest.sh`<br \/>become: true<br \/>become_user: ubuntu<br \/>ansible.builtin.shell: |<br \/>chmod +x .\/servertest\/servertest.sh<br \/>.\/servertest\/servertest.sh -d {{ test.duration }} -o {{ test.filename }} -i {{ test.iterations }} -f ~\/firestarter -t \"{{ phoronix.tests }}\" <br \/>register: test_result<\/pre><p>Similarly, tasks can be set up that copy the results to the target computer and then delete everything from the server.<\/p><h3>Conclusion<\/h3><p>This article shows how to automate a test routine. It starts with a simple Bash script, which only takes over the test procedure itself, and ends with a fully automated one. The Ansible playbook allows the test procedure to be set up and executed on several servers at the same time. The only requirement is an initialised operating system and working SSH access.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In this article, we address the utilisation of the servers and the benchmarks used. We show how we continuously optimise the performance of our liquid cooling solutions (part 2)<\/p>","protected":false},"author":3,"featured_media":10613,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"5307,5282,5377,5211,5368,5236","_relevanssi_noindex_reason":"","inline_featured_image":false,"footnotes":""},"categories":[83,84],"tags":[],"class_list":["post-10608","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-services","category-digitale-infrastrukturen"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Server test routine (automation)<\/title>\n<meta name=\"description\" content=\"Cloud&amp;Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cloudandheat.com\/en\/server-test-routine-automation\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Server test routine (automation)\" \/>\n<meta property=\"og:description\" content=\"Cloud&amp;Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudandheat.com\/en\/server-test-routine-automation\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloud &amp; Heat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CloudandHeat\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-21T11:00:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-25T07:58:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2292\" \/>\n\t<meta property=\"og:image:height\" content=\"1313\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Franziska Feldmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:site\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Franziska Feldmann\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/\"},\"author\":{\"name\":\"Franziska Feldmann\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/398eb07e00302d87774683583e3c47af\"},\"headline\":\"Server test routine (automation)\",\"datePublished\":\"2024-02-21T11:00:51+00:00\",\"dateModified\":\"2024-06-25T07:58:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/\"},\"wordCount\":773,\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png\",\"articleSection\":[\"Cloud Services\",\"Digitale Infrastrukturen\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/\",\"url\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/\",\"name\":\"Server test routine (automation)\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png\",\"datePublished\":\"2024-02-21T11:00:51+00:00\",\"dateModified\":\"2024-06-25T07:58:27+00:00\",\"description\":\"Cloud&Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance\",\"breadcrumb\":{\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png\",\"width\":2292,\"height\":1313,\"caption\":\"Blod Header | Server Test Routine (Automation)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/www.cloudandheat.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Server test routine (automation)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cloudandheat.com\/#website\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"name\":\"Cloud & Heat Technolgies GmbH\",\"description\":\"Cloud-Service- und Cloud-Technologie-Provider\",\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"alternateName\":\"Cloud and Heat Technologies GmbH\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cloudandheat.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\",\"name\":\"Cloud&Heat Technologies GmbH\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"width\":907,\"height\":1782,\"caption\":\"Cloud&Heat Technologies GmbH\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/CloudandHeat\",\"https:\/\/x.com\/cloudandheat\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/398eb07e00302d87774683583e3c47af\",\"name\":\"Franziska Feldmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/45b8402609a2f78f4601e1d175ed707a5919c16ec5c2aa611a4b0b9f68a54742?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/45b8402609a2f78f4601e1d175ed707a5919c16ec5c2aa611a4b0b9f68a54742?s=96&d=mm&r=g\",\"caption\":\"Franziska Feldmann\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Server test routine (automation)","description":"Cloud&amp;Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cloudandheat.com\/en\/server-test-routine-automation\/","og_locale":"en_GB","og_type":"article","og_title":"Server test routine (automation)","og_description":"Cloud&Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance","og_url":"https:\/\/www.cloudandheat.com\/en\/server-test-routine-automation\/","og_site_name":"Cloud &amp; Heat","article_publisher":"https:\/\/www.facebook.com\/CloudandHeat","article_published_time":"2024-02-21T11:00:51+00:00","article_modified_time":"2024-06-25T07:58:27+00:00","og_image":[{"width":2292,"height":1313,"url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png","type":"image\/png"}],"author":"Franziska Feldmann","twitter_card":"summary_large_image","twitter_creator":"@cloudandheat","twitter_site":"@cloudandheat","twitter_misc":{"Written by":"Franziska Feldmann"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#article","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/"},"author":{"name":"Franziska Feldmann","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/398eb07e00302d87774683583e3c47af"},"headline":"Server test routine (automation)","datePublished":"2024-02-21T11:00:51+00:00","dateModified":"2024-06-25T07:58:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/"},"wordCount":773,"publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"image":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png","articleSection":["Cloud Services","Digitale Infrastrukturen"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/","url":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/","name":"Server test routine (automation)","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage"},"image":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png","datePublished":"2024-02-21T11:00:51+00:00","dateModified":"2024-06-25T07:58:27+00:00","description":"Cloud&amp;Heat | Blog | Server test routine (automation) | Server Testing | Benchmarks to evaluate IT performance","breadcrumb":{"@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cloudandheat.com\/server-test-routine-automation\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#primaryimage","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2024\/02\/2023-09-Server-Testroutine-Teil-2-Header.png","width":2292,"height":1313,"caption":"Blod Header | Server Test Routine (Automation)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cloudandheat.com\/server-test-routine-automation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.cloudandheat.com\/"},{"@type":"ListItem","position":2,"name":"Server test routine (automation)"}]},{"@type":"WebSite","@id":"https:\/\/www.cloudandheat.com\/#website","url":"https:\/\/www.cloudandheat.com\/","name":"Cloud &amp; Heat Technolgies GmbH","description":"Cloud service and cloud technology providers","publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"alternateName":"Cloud and Heat Technologies GmbH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cloudandheat.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.cloudandheat.com\/#organization","name":"Cloud&amp;Heat Technologies GmbH","url":"https:\/\/www.cloudandheat.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","width":907,"height":1782,"caption":"Cloud&Heat Technologies GmbH"},"image":{"@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CloudandHeat","https:\/\/x.com\/cloudandheat"]},{"@type":"Person","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/398eb07e00302d87774683583e3c47af","name":"Franziska Feldmann","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/45b8402609a2f78f4601e1d175ed707a5919c16ec5c2aa611a4b0b9f68a54742?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/45b8402609a2f78f4601e1d175ed707a5919c16ec5c2aa611a4b0b9f68a54742?s=96&d=mm&r=g","caption":"Franziska Feldmann"}}]}},"_links":{"self":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/10608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/comments?post=10608"}],"version-history":[{"count":1,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/10608\/revisions"}],"predecessor-version":[{"id":15781,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/10608\/revisions\/15781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media\/10613"}],"wp:attachment":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media?parent=10608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/categories?post=10608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/tags?post=10608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}