{"id":37586,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/infrastructure-as-code-pervoe-znakomstvo\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"infrastructure-as-code-pervoe-znakomstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastructure as Code: Ein erstes Kennenlernen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In unserem Unternehmen findet der Onboarding-Prozess des SRE-Teams statt. Ich bin von der Entwicklerseite in diese Geschichte eingestiegen. Dabei sind mir Gedanken und Einsichten gekommen, die ich gerne mit anderen Entwicklern teilen m\u00f6chte. In diesem Artikel, der mehr einem Nachdenken gleicht, spreche ich dar\u00fcber, was passiert, wie es passiert und wie wir alle weiterhin damit leben k\u00f6nnen. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/d154a2fbbd0dd846c763db178f02702e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Fortsetzung der Artikelreihe, die auf den Vortr\u00e4gen unserer internen Veranstaltung basieren. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/462033\/\">DevForum<\/a><\/noindex><\/b>: <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/463469\/\">1. Die Katze von Schr\u00f6dinger ohne Kiste: Das Konsensproblem in verteilten Systemen.<\/a><\/noindex><br \/>\n2. Infrastruktur als Code. (Sie sind hier)<br \/>\n3. Generierung von Typescript-Vertr\u00e4gen aus C#-Modellen. (In Bearbeitung\u2026)<br \/>\n4. Einf\u00fchrung in den Raft-Konsensalgorithmus. (In Bearbeitung\u2026)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nWir haben beschlossen, ein SRE-Team zu bilden, indem wir die Ideen von <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>aufgreifen. Wir haben Programmierer aus unseren eigenen Entwicklern rekrutiert und sie f\u00fcr mehrere Monate zur Weiterbildung geschickt. <\/p>\n<p>Vor dem Team standen die folgenden Lernziele:<\/p>\n<ul>\n<li>Unsere Infrastruktur, die gr\u00f6\u00dftenteils in Microsoft Azure besteht, in Form von Code (Terraform und alles, was dazugeh\u00f6rt) zu beschreiben. <\/li>\n<li>Die Entwickler im Umgang mit der Infrastruktur zu schulen. <\/li>\n<li>Die Entwickler auf den Bereitschaftsdienst vorzubereiten.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Wir f\u00fchren das Konzept Infrastruktur als Code ein.<\/h2>\n<p>\nIn einem normalen Weltmodell (klassische Verwaltung) befinden sich die Kenntnisse \u00fcber die Infrastruktur an zwei Orten:<\/p>\n<ol>\n<li>Entweder in den K\u00f6pfen der Experten.<img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Oder diese Informationen sind auf bestimmten Maschinen gespeichert, von denen einige den Experten bekannt sind. Doch es steht nicht fest, dass eine au\u00dfenstehende Person (falls unser ganzes Team pl\u00f6tzlich stirbt) in der Lage ist herauszufinden, was und wie funktioniert. Auf der Maschine kann es viele Informationen geben: Zug\u00e4nge, Cronjobs, das teilweise montierte (siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) Laufwerk und einfach eine endlose Liste dessen, was passieren kann. Es ist schwer zu verstehen, was tats\u00e4chlich passiert.<img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nIn beiden F\u00e4llen befinden wir uns in einer Falle und werden abh\u00e4ngig:<\/p>\n<ul>\n<li>entweder von einem Menschen, der sterblich ist und Krankheiten, Verliebtheiten, Stimmungsschwankungen und einfach banalen K\u00fcndigungen unterliegt;<\/li>\n<li>oder von einer physisch arbeitenden Maschine, die ebenfalls ausf\u00e4llt, gestohlen wird, unerwartete Probleme und Unannehmlichkeiten bringt. <\/li>\n<\/ul>\n<p>\nEs naht die L\u00f6sung, dass idealerweise alles in lesbaren, wartbaren, qualitativ hochwertig geschriebenen Code \u00fcberf\u00fchrt werden sollte. <\/p>\n<p>So ist Infrastruktur als Code (Infrastructure as Code \u2013 IaC) die Beschreibung der gesamten vorhandenen Infrastruktur in Form von Code sowie begleitende Mittel, um mit ihr zu arbeiten und sie in die reale Infrastruktur umzusetzen.<\/p>\n<p><b class=\"spoiler_title\">Warum alles in Code \u00fcbersetzen?<\/b>Menschen sind keine Maschinen. Sie k\u00f6nnen sich nicht alles merken. Die Reaktion eines Menschen und einer Maschine ist unterschiedlich. Alles Automatisierte arbeitet potenziell schneller als das, was ein Mensch tut. Das Wichtigste ist eine einzige Quelle der Wahrheit (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Woher kommen neue SRE-Ingenieure?<\/b>Also, wir haben uns entschieden, neue SRE-Ingenieure einzustellen, aber woher bekommen wir sie? Das Buch mit den richtigen Antworten (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) sagt uns: von den Entwicklern. Schlie\u00dflich arbeiten sie mit Code, und Sie erreichen den idealen Zustand.<\/p>\n<p>Wir haben lange und ausgiebig gesucht, aber mussten leider feststellen, dass wir keinen einzigen passenden Kandidaten auf dem Arbeitsmarkt gefunden haben. Wir mussten unter unseren eigenen Leuten suchen. <\/p>\n<h2>Probleme bei Infrastructure as Code<\/h2>\n<p>\nLassen Sie uns nun Beispiele daf\u00fcr anschauen, wie Infrastruktur in Code implementiert werden kann. Der Code ist gut geschrieben, qualitativ hochwertig, mit Kommentaren und Einr\u00fcckungen. <\/p>\n<p>Beispielcode aus Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBeispielcode aus Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeine Damen und Herren, aber wenn alles so einfach w\u00e4re! Wir leben in einer realen Welt, und sie ist immer bereit, Ihnen \u00dcberraschungen und Probleme zu pr\u00e4sentieren. Auch hier geht es nicht ohne diese.<\/p>\n<p><b>1. Das erste Problem ist, dass IaC in den meisten F\u00e4llen eine Art DSL ist.<\/b><\/p>\n<p>Ein DSL wiederum ist eine Beschreibung der Struktur. Genauer gesagt, das, was Sie haben sollten: JSON, YAML, Modifikationen von einigen gro\u00dfen Unternehmen, die ihr eigenes DSL entwickelt haben (in Terraform wird HCL verwendet). <\/p>\n<p>Das Problem ist, dass es darin leicht an so vertrauten Dingen fehlen kann wie:<\/p>\n<ul>\n<li>Variablen;<\/li>\n<li>Bedingungen;<\/li>\n<li>Manchmal fehlen Kommentare, zum Beispiel sind sie in JSON standardm\u00e4\u00dfig nicht vorgesehen;<\/li>\n<li>Funktionen;<\/li>\n<li>und ich spreche noch nicht von solchen hochgradigen Dingen wie Klassen, Vererbung und dergleichen.<\/li>\n<\/ul>\n<p>\n <b>2. Das zweite Problem dieses Codes ist, dass es meistens eine heterogene Umgebung ist.<\/b>Normalerweise arbeiten Sie mit C#, also mit einer Sprache, einem Stack, einem \u00d6kosystem. Und hier haben Sie eine riesige Vielfalt an Technologien. <\/p>\n<p>Eine durchaus realistische Situation, in der ein Bash-Skript mit Python einen Prozess startet, in den Json eingespeist wird. Sie analysieren ihn, danach generiert ein anderer Generator weitere 30 Dateien. F\u00fcr all dies kommen Eingangsvariablen aus dem Azure Key Vault, die mit einem in Go geschriebenen Plugin f\u00fcr drone.io abgerufen werden, und diese Variablen laufen durch eine YAML-Datei, die aus einem Template-Generator namens jsonnet erstellt wurde. Es ist ziemlich schwierig, einen streng gut beschriebenen Code zu haben, wenn Sie eine so vielf\u00e4ltige Umgebung haben. <\/p>\n<p>Traditionelle Entwicklung in einem einzigen Projekt erfolgt mit einer einzigen Sprache. Hier arbeiten wir jedoch mit vielen verschiedenen Sprachen. <\/p>\n<p><b>3. Das dritte Problem ist das Tooling.<\/b>Wir sind an gro\u00dfartige Editoren (Ms Visual Studio, Jetbrains Rider) gew\u00f6hnt, die alles f\u00fcr uns erledigen. Selbst wenn wir uns vertun, sagen sie uns, dass wir falsch liegen. Das scheint normal und nat\u00fcrlich zu sein. <\/p>\n<p>Aber irgendwo in der N\u00e4he gibt es VSCode, in dem es einige Plugins gibt, die irgendwie installiert werden, unterst\u00fctzt oder nicht unterst\u00fctzt werden. Neue Versionen kommen heraus und werden nicht unterst\u00fctzt. Der banale \u00dcbergang zur Implementierung einer Funktion (auch wenn sie vorhanden ist) wird zu einem komplizierten und nicht trivialen Problem. Eine einfache Umbenennung einer Variablen ist ein Replace in einem Projekt aus einem Dutzend Dateien. Es ist Gl\u00fcck, wenn es das ersetzt, was ersetzt werden muss. Nat\u00fcrlich gibt es hier und da Syntaxhervorhebung, es gibt Autocompletion, und irgendwo gibt es Formatierung (das hat bei mir in Terraform unter Windows nicht geklappt). <\/p>\n<p>Zum Zeitpunkt des Schreibens des Artikels <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform plugin<\/a><\/noindex> wurde noch nicht f\u00fcr die Unterst\u00fctzung von Version 0.12 ver\u00f6ffentlicht, obwohl sie bereits vor 3 Monaten ver\u00f6ffentlicht wurde.<\/p>\n<h2>Es ist an der Zeit, \u00fcber\u2026 nachzudenken.<\/h2>\n<p><\/p>\n<ol>\n<li>Debugging.<\/li>\n<li>Refactoring-Tool.<\/li>\n<li>Auto-Vervollst\u00e4ndigung.<\/li>\n<li>Fehlererkennung beim Kompilieren.<\/li>\n<\/ol>\n<p>\nEs ist lustig, aber das erh\u00f6ht die Entwicklungszeit und die Anzahl der Fehler, die unvermeidlich auftreten. <\/p>\n<p>Das Schrecklichste ist, dass wir nicht dar\u00fcber nachdenken m\u00fcssen, wie wir das Design planen, Dateien in Ordnern anordnen, den Code modularisieren und wartbar, lesbar usw. machen, sondern dar\u00fcber, wie ich diesen Befehl korrekt schreibe, weil ich ihn irgendwie falsch geschrieben habe. <\/p>\n<p>Als Anf\u00e4nger versuchen Sie, Terraform zu erlernen, und die IDE hilft Ihnen dabei \u00fcberhaupt nicht. Wenn es Dokumentation gibt \u2013 treten Sie ein, sehen Sie sich um. Aber wenn Sie in eine neue Programmiersprache einsteigen, w\u00fcrde die IDE Ihnen sagen, dass es solchen Typ gibt, aber diesen nicht. Zumindest auf der Ebene von int oder string. Das ist oft n\u00fctzlich. <\/p>\n<h2>Und wie w\u00e4re es mit Tests?<\/h2>\n<p>\nIhr fragt euch: \u201eWie sieht es mit Tests aus, meine Herren Programmierer?\u201c Ernsthafte Leute testen alles im Produktivbetrieb, und das ist hart. Hier ein Beispiel f\u00fcr einen Unit-Test f\u00fcr ein Terraform-Modul von der Webseite <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">von Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSie haben eine gute Dokumentation. Microsoft hat mir schon immer mit ihrem Ansatz zur Dokumentation und Schulung gefallen. Aber man muss kein Uncle Bob sein, um zu verstehen, dass der Code hier nicht ideal ist. Achtet auf die Validierung, die nach rechts verschoben wurde. <\/p>\n<p>Das Problem mit dem Unit-Test ist, dass wir die Korrektheit des JSON-Ausgangs \u00fcberpr\u00fcfen k\u00f6nnen. Ich habe 5 Parameter eingegeben, und ich bekam ein JSON mit 2000 Zeilen zur\u00fcck. Ich kann analysieren, was hier passiert, das Testergebnis validieren... <\/p>\n<p>Es ist schwierig, JSON in Go zu analysieren. Man muss jedoch in Go schreiben, weil Terraform in Go eine gute Praxis ist, um in der Sprache zu testen, in der man schreibt. Die Organisation des Codes selbst ist sehr schwach. Trotzdem ist dies die beste Bibliothek f\u00fcr Tests. <\/p>\n<p>Selbst Microsoft schreibt seine Module und testet sie auf diese Weise. Nat\u00fcrlich ist das Open Source. Alles, wor\u00fcber ich spreche, k\u00f6nnt ihr kommen und reparieren. Ich kann mich hinsetzen und alles in einer Woche reparieren, die VS-Code-Plugins open sourcen, Terraform aktualisieren und ein Plugin f\u00fcr Rider erstellen. Vielleicht schreibe ich ein paar Parser, f\u00fcge Linter hinzu und kontribuiere zur Testbibliothek. Ich kann alles machen. Aber das sollte nicht mein Fokus sein. <\/p>\n<h2>Beste Praktiken f\u00fcr Infrastruktur als Code<\/h2>\n<p>\nGehen wir weiter. Wenn es in IaC keine Tests gibt, wenn IDE und Tooling schlecht sind, dann sollten es zumindest beste Praktiken geben. Ich habe einfach Google Analytics aufgerufen und einen Vergleich von zwei Suchanfragen durchgef\u00fchrt: Terraform Best Practices und C# Best Practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWas sehen wir? Eine gnadenlose Statistik, die nicht in unserem Sinne ist. Was die Menge an Material betrifft \u2013 dasselbe. In der C#-Entwicklung schwimmen wir f\u00f6rmlich in Materialien, wir haben herausragende Best Practices, B\u00fccher von Experten sowie B\u00fccher, die B\u00fccher anderer Experten kritisieren. Ein Meer an offizieller Dokumentation, Artikeln, Schulungskursen und jetzt auch Open Source-Entwicklung.<\/p>\n<p>Was die Suche nach IaC betrifft: Hier versucht ihr, Information St\u00fcck f\u00fcr St\u00fcck aus Vortr\u00e4gen von Highload oder HashiConf, aus der offiziellen Dokumentation und zahlreichen Issues auf GitHub zu sammeln. Wie diese Module \u00fcberhaupt verteilt werden, was man mit ihnen machen kann? Es scheint, dass das ein echtes Problem ist\u2026 Es gibt jedoch eine Community, meine Herren, in der jede Frage 10 Kommentare auf GitHub hervorruft. Aber das ist nicht sicher. <\/p>\n<p>Leider fangen die Experten im Moment erst an, sich zu zeigen. Zurzeit sind es noch zu wenige. Und die Community befindet sich auf einem sehr fr\u00fchen Stand. <\/p>\n<h2>Wohin geht das alles und was sollen wir tun<\/h2>\n<p>\nMan k\u00f6nnte alles hinschmei\u00dfen und zur\u00fcck zu C# gehen, in die Welt der Rider. Aber das ist nicht die Frage. Warum sollten Sie sich \u00fcberhaupt damit besch\u00e4ftigen, wenn nicht um eine L\u00f6sung zu finden? Im Folgenden pr\u00e4sentiere ich meine subjektiven Schlussfolgerungen. Sie k\u00f6nnen mir in den Kommentaren widersprechen, ich f\u00e4nde das interessant. <\/p>\n<p>Ich setze pers\u00f6nlich auf einige Dinge:<\/p>\n<ol>\n<li>Die Entwicklung in diesem Bereich passiert sehr schnell. Ich zeige das Diagramm der Anfragen zu DevOps.\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erstes Kennenlernen\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f6glicherweise ist das Thema sehr angesagt, aber die Tatsache, dass das Feld w\u00e4chst, gibt Hoffnung. <\/p>\n<p>Wenn etwas so schnell w\u00e4chst, werden zwangsl\u00e4ufig kluge K\u00f6pfe auftauchen, die sagen, wie es richtig gemacht wird, und wie nicht. Die zunehmende Beliebtheit f\u00fchrt dazu, dass vielleicht jemand endlich die Zeit findet, ein Plugin f\u00fcr jsonnet f\u00fcr vscode zu schreiben, das den Zugang zur Implementierung einer Funktion erm\u00f6glicht, anstatt sie \u00fcber ctrl+shift+f zu suchen. Wenn sich alles entwickelt, gibt es mehr Materialien. Derselbe neue Buchausgang von Google \u00fcber SRE ist ein hervorragendes Beispiel daf\u00fcr.<\/li>\n<li>Es gibt entwickelte Methoden und Praktiken in der gew\u00f6hnlichen Entwicklung, die wir hier erfolgreich anwenden k\u00f6nnen. Ja, es gibt Nuancen beim Testen und in einer heterogenen Umgebung sowie unzureichende Werkzeuge, aber eine riesige Anzahl von Praktiken wurde angesammelt, die n\u00fctzlich sein und helfen k\u00f6nnen.\n<p>Ein banales Beispiel: gemeinsame Arbeit durch Pair Programming. Es hilft sehr, die Sache zu kl\u00e4ren. Wenn du einen Nachbarn hast, der auch versucht, etwas zu verstehen, werdet ihr zusammen besser verstehen.<\/p>\n<p> Das Verst\u00e4ndnis davon, wie Refaktorisierung funktioniert, hilft sogar in einer solchen Situation, sie durchzuf\u00fchren. Das bedeutet, dass du nicht alles auf einmal \u00e4ndern musst, sondern den Namen \u00e4ndern, dann die Position ver\u00e4ndern, dann vielleicht einen bestimmten Teil hervorheben; oh, hier fehlen auch Kommentare. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Fazit<\/h2>\n<p>\nObwohl meine \u00dcberlegungen pessimistisch erscheinen m\u00f6gen, blicke ich hoffnungsvoll in die Zukunft und hoffe aufrichtig, dass es uns (und Ihnen) gelingen wird.<\/p>\n<blockquote><p>Die zweite Teil des Artikels wird bald ver\u00f6ffentlicht. Darin werde ich erl\u00e4utern, wie wir versucht haben, agile Praktiken anzuwenden, um unseren Lernprozess und die Arbeit mit der Infrastruktur zu verbessern.<\/p><\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Infrastructure as Code: Erste Begegnung | ProHoster","description":"In unserem Unternehmen l\u00e4uft der Onboarding-Prozess des SRE-Teams. Ich habe diesen Prozess aus der Perspektive der Entwicklung betreten. W\u00e4hrend dieses Prozesses kamen mir Gedanken und Erkenntnisse, die ich mit anderen Entwicklern teilen m\u00f6chte.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster","og:description":"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37586","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:24:24","updated":"2026-01-23 18:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}