{"id":930,"date":"2019-09-09T11:04:25","date_gmt":"2019-09-09T09:04:25","guid":{"rendered":"https:\/\/blog.zeit.de\/dev\/?p=930"},"modified":"2020-11-12T14:28:24","modified_gmt":"2020-11-12T13:28:24","slug":"reden-im-bundestag-auf-knopfdruck-skalierbar","status":"publish","type":"post","link":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/","title":{"rendered":"Reden im Bundestag auf Knopfdruck skalierbar"},"content":{"rendered":"<p class=\"part\" data-startline=\"3\" data-endline=\"3\">Zum 70-j\u00e4hrigen Jubil\u00e4um des Bundestages hat ZEIT ONLINE <a href=\"https:\/\/www.zeit.de\/politik\/deutschland\/2019-09\/bundestag-jubilaeum-70-jahre-parlament-reden-woerter-sprache-wandel\">alle Reden des Parlaments<\/a> verarbeitet und nach Worth\u00e4ufigkeiten geordnet.<\/p>\n<p><!--more--><\/p>\n<p class=\"part\" data-startline=\"3\" data-endline=\"3\">Eine solche Menge von Texten bezeichnet man als Textkorpus. In diesem Fall lag das Korpus in einer strukturierten digitalen Form vor und war daher leicht zu verarbeiten. F\u00fcr unseren Zweck haben wir die Texte in einzelne W\u00f6rter zerlegt und f\u00fcr jedes Wort ein neues Dokument erzeugt, welches neben der absoluten H\u00e4ufigkeit auch die H\u00e4ufigkeit pro Jahr enthielt. Diese Dokumente haben wir mithilfe von <a href=\"https:\/\/github.com\/elastic\/elasticsearch\">Elasticsearch (ES)<\/a> indexiert. Dabei handelt es sich um eine weit verbreitete Open-Source-Suchtechnologie, die prinzipiell jedem zur Verf\u00fcgung steht. ES bietet nicht nur schnelle Suchm\u00f6glichkeiten f\u00fcr Texte, sondern hat selbst etliche Features, um diese Texte zu zerlegen (<em>tokenizing<\/em>) und zu analysieren. So realisierten wir beispielsweise unsere Wortvorschl\u00e4ge bei der Eingabe mit dem sogenannten <a href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/search-suggesters.html#completion-suggester\">Completion Suggester<\/a>.<\/p>\n<p class=\"part\" data-startline=\"5\" data-endline=\"5\">W\u00e4hrend Elasticsearch f\u00fcr uns als Content-Anbieter bew\u00e4hrte Technologie ist, haben wir in Hinblick auf dessen Betrieb bei diesem Projekt neue Wege beschritten. \u00dcblicherweise wird Elasticsearch in einem Rechnerverbund, einem sogenannten Cluster, betrieben. Ein solches Cluster ist darauf ausgelegt, kontinuierlich neue Daten entgegenzunehmen, zu indexieren und redundant zu verteilen. Hierf\u00fcr ist eine umfangreiche Koordination der einzelnen Knoten des Verbundes n\u00f6tig, was zwar viele Vorteile, aber auch Komplexit\u00e4t und damit Aufwand beim Aufbau des Clusters mit sich bringt.<\/p>\n<p class=\"part\" data-startline=\"7\" data-endline=\"7\">Im konkreten Fall ging es jedoch darum, mit \u00fcberschaubarem Projektaufwand einen nicht mehr ver\u00e4nderlichen Datenbestand nach festen Kriterien hochperformant durchsuchbar zu machen und die daf\u00fcr ben\u00f6tigte Rechenkapazit\u00e4t punktgenau zur Verf\u00fcgung zu stellen.<\/p>\n<p class=\"part\" data-startline=\"9\" data-endline=\"9\">Die pragmatische L\u00f6sung lag in einer auf das Wesentliche reduzierten Nutzung von Elasticsearch. Hierf\u00fcr haben wir den Elasticsearch-Suchkern inklusive der fertig indexierten Daten in einen sogenannten Docker-Container verpackt. Derartige Container sind kleine Einheiten startbereiter Software. Sie sind leicht zu betreiben, weil sie nur wenige, aber klar definierte Anforderungen an die Umgebung stellen, in der sie laufen. Au\u00dferdem starten sie vergleichsweise schnell, was sie sehr gut skalierbar macht. Die grobe Idee: Wenn ein Container 200 Requests in einer bestimmten Zeit verarbeiten kann, dann schaffen zwei Container 400 und zwanzig Container 4.000 Requests.<\/p>\n<p class=\"part\" data-startline=\"11\" data-endline=\"11\">Das stimmt grob, aber abstrahiert ein wesentliches Detail: Ebenso wenig wie in der analogen Welt Schiffscontainer aus eigener Kraft von Hafen zu Hafen kommen, laufen digitale Container ohne zugrunde liegende Infrastruktur nicht. Sie ben\u00f6tigen mindestens Rechenkapazit\u00e4t und Netzwerkanbindung, und diese bekommen sie in unserem Fall (was naheliegend und \u00fcblich ist) aus der Cloud. Was es als recht schwammiger Begriff schon vor einigen Jahren ins \u00f6ffentliche Bewusstsein geschafft hat, bedeutet hier: Angebote f\u00fcr Rechenkapazit\u00e4t, Speicher und Netzwerkanbindung, die in kleinsten Einheiten und praktisch unbegrenzter Menge buchbar sind von Anbietern wie Google, Amazon und Microsoft.<\/p>\n<p data-startline=\"11\" data-endline=\"11\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-933 aligncenter\" src=\"https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-620x324.png\" alt=\"Worth\u00e4ufigkeit Cloud\" width=\"620\" height=\"324\" srcset=\"https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-620x324.png 620w, https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-768x401.png 768w, https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-1024x535.png 1024w, https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41.png 1026w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p class=\"part\" data-startline=\"13\" data-endline=\"13\">Und in genau dieser Kombination liegt der Clou: Container als Laufzeiteinheit, die sich auf Knopfdruck innerhalb weniger Sekunden erzeugen und wieder stoppen lassen. Und die Cloud als Betriebsumgebung, in der die genutzte Kapazit\u00e4t minuten- beziehungsweise bytegenau abgerechnet wird. F\u00fcr Projekte wie dieses hei\u00dft das: Die Budgetplanung r\u00fcckt weiter nach hinten und die technische und journalistische Planung weiter nach vorn. Das schafft Raum zum Ausprobieren und beseitigt H\u00fcrden, Projekte in ihrem Verlauf gr\u00f6\u00dfer werden zu lassen. Vor einigen Jahren w\u00e4re es notwendig gewesen, f\u00fcr mehrere Wochen oder Monate die maximale Rechenleistung zu buchen, die \u2013 m\u00f6glicherweise nur f\u00fcr wenige Stunden \u2013 f\u00fcr ein bestimmtes Projekt ben\u00f6tigt wird. Mit der heute verf\u00fcgbaren Technologie ist es per Knopfdruck m\u00f6glich, die ben\u00f6tigte Kapazit\u00e4t kurzfristig und passgenau abzurufen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zum 70-j\u00e4hrigen Jubil\u00e4um des Bundestages hat ZEIT ONLINE alle Reden des Parlaments verarbeitet und nach Worth\u00e4ufigkeiten geordnet.<\/p>\n","protected":false},"author":1111,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[16],"tags":[],"class_list":["post-930","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog\" \/>\n<meta property=\"og:description\" content=\"Zum 70-j\u00e4hrigen Jubil\u00e4um des Bundestages hat ZEIT ONLINE alle Reden des Parlaments verarbeitet und nach Worth\u00e4ufigkeiten geordnet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/\" \/>\n<meta property=\"og:site_name\" content=\"Dev-Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-09T09:04:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-12T13:28:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-620x324.png\" \/>\n<meta name=\"author\" content=\"Stephan Scheying\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stephan Scheying\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/\",\"url\":\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/\",\"name\":\"Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zeit.de\/dev\/#website\"},\"datePublished\":\"2019-09-09T09:04:25+00:00\",\"dateModified\":\"2020-11-12T13:28:24+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/b0ebcf68742f5549e9dbeb7a3f4fa1d5\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zeit.de\/dev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reden im Bundestag auf Knopfdruck skalierbar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zeit.de\/dev\/#website\",\"url\":\"https:\/\/blog.zeit.de\/dev\/\",\"name\":\"Dev-Blog\",\"description\":\"Entwicklungsblog von ZEIT ONLINE\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zeit.de\/dev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/b0ebcf68742f5549e9dbeb7a3f4fa1d5\",\"name\":\"Stephan Scheying\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d44167237ce6e96a326a15df84d956e33106084bc3be0d14e57af02d9689378e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d44167237ce6e96a326a15df84d956e33106084bc3be0d14e57af02d9689378e?s=96&d=mm&r=g\",\"caption\":\"Stephan Scheying\"},\"url\":\"https:\/\/blog.zeit.de\/dev\/author\/stephanscheying\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog","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:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/","og_locale":"de_DE","og_type":"article","og_title":"Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog","og_description":"Zum 70-j\u00e4hrigen Jubil\u00e4um des Bundestages hat ZEIT ONLINE alle Reden des Parlaments verarbeitet und nach Worth\u00e4ufigkeiten geordnet.","og_url":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/","og_site_name":"Dev-Blog","article_published_time":"2019-09-09T09:04:25+00:00","article_modified_time":"2020-11-12T13:28:24+00:00","og_image":[{"url":"https:\/\/blog.zeit.de\/dev\/files\/2019\/09\/Bildschirmfoto-2019-09-09-um-09.30.41-620x324.png"}],"author":"Stephan Scheying","twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"Stephan Scheying","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/","url":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/","name":"Reden im Bundestag auf Knopfdruck skalierbar - Dev-Blog","isPartOf":{"@id":"https:\/\/blog.zeit.de\/dev\/#website"},"datePublished":"2019-09-09T09:04:25+00:00","dateModified":"2020-11-12T13:28:24+00:00","author":{"@id":"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/b0ebcf68742f5549e9dbeb7a3f4fa1d5"},"breadcrumb":{"@id":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zeit.de\/dev\/reden-im-bundestag-auf-knopfdruck-skalierbar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zeit.de\/dev\/"},{"@type":"ListItem","position":2,"name":"Reden im Bundestag auf Knopfdruck skalierbar"}]},{"@type":"WebSite","@id":"https:\/\/blog.zeit.de\/dev\/#website","url":"https:\/\/blog.zeit.de\/dev\/","name":"Dev-Blog","description":"Entwicklungsblog von ZEIT ONLINE","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zeit.de\/dev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/b0ebcf68742f5549e9dbeb7a3f4fa1d5","name":"Stephan Scheying","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blog.zeit.de\/dev\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d44167237ce6e96a326a15df84d956e33106084bc3be0d14e57af02d9689378e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d44167237ce6e96a326a15df84d956e33106084bc3be0d14e57af02d9689378e?s=96&d=mm&r=g","caption":"Stephan Scheying"},"url":"https:\/\/blog.zeit.de\/dev\/author\/stephanscheying\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/posts\/930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/users\/1111"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/comments?post=930"}],"version-history":[{"count":6,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/posts\/930\/revisions"}],"predecessor-version":[{"id":945,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/posts\/930\/revisions\/945"}],"wp:attachment":[{"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/media?parent=930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/categories?post=930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zeit.de\/dev\/wp-json\/wp\/v2\/tags?post=930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}