{"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 erster Einblick","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In unserem Unternehmen l\u00e4uft der Onboarding-Prozess f\u00fcr das SRE-Team. Ich bin von der Entwicklungsseite in diese Geschichte eingestiegen. W\u00e4hrend dieses Prozesses sind mir Gedanken und Insights gekommen, die ich mit anderen Entwicklern teilen m\u00f6chte. In diesem Artikel reflektiere ich dar\u00fcber, was passiert, wie es passiert, und wie wir alle k\u00fcnftig damit umgehen k\u00f6nnen. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" 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 inspiriert wurde von Vortr\u00e4gen auf unserer internen Veranstaltung <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 Schr\u00f6dingers Katze ohne Box: Das Konsensproblem in verteilten Systemen.<\/a><\/noindex><br \/>\n2. Infrastructure as Code. (Sie sind hier)<br \/>\n3. Generation von Typescript-Vertr\u00e4gen aus C#-Modellen. (In Arbeit\u2026)<br \/>\n4. Einf\u00fchrung in den Raft-Konsensalgorithmus. (In Arbeit\u2026)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nWir haben beschlossen, ein SRE-Team zu bilden, um die Ideen von <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE<\/a><\/noindex>zu verwirklichen. Wir haben Programmierer aus unseren eigenen Entwicklern rekrutiert und sie f\u00fcr mehrere Monate zur Weiterbildung entsendet. <\/p>\n<p>Die folgenden Lernziele standen vor dem Team:<\/p>\n<ul>\n<li>Unsere Infrastruktur, die gr\u00f6\u00dftenteils in Microsoft Azure angesiedelt ist, in Form von Code (Terraform und alles, was dazu geh\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 von Infrastructure as Code ein.<\/h2>\n<p>\nIn einem traditionellen Weltmodell (klassisches Management) befinden sich Infrastrukturwissen an zwei Stellen:<\/p>\n<ol>\n<li>Entweder in Form von Wissen im Kopf von Experten.<img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Oder diese Informationen sind auf gewissen Maschinen gespeichert, von denen einige Experten kennen. Es ist jedoch nicht sicher, dass eine externe Person (f\u00fcr den Fall, dass unser gesamtes Team pl\u00f6tzlich ausf\u00e4llt) verstehen kann, wie alles funktioniert. Auf dieser Maschine k\u00f6nnen viele Informationen vorhanden sein: Zugriffsrechte, Cron-Jobs, gemountete (siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) Festplatte und einfach eine endlose Liste von dem, was geschehen kann. Es ist schwierig zu erkennen, was wirklich vor sich geht.<img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" 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 einer Person, die sterblich ist, anf\u00e4llig f\u00fcr Krankheiten, verliebt, Stimmungsschwankungen unterliegt und einfach gek\u00fcndigt werden kann;<\/li>\n<li>oder von einer physisch operierenden Maschine, die ebenfalls ausfallen kann, gestohlen werden kann und unerwartete Herausforderungen und Unannehmlichkeiten mit sich bringt. <\/li>\n<\/ul>\n<p>\nEs liegt nahe, dass die ideale L\u00f6sung darin besteht, alles in einen menschenlesbaren, wartbaren und qualitativ hochwertigen Code zu \u00fcbertragen. <\/p>\n<p>So ist Infrastructure as Code (IaC) eine Beschreibung der gesamten vorhandenen Infrastruktur in Form von Code sowie begleitende Werkzeuge zur Bearbeitung und Umsetzung dieser Infrastruktur.<\/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 von Menschen und Maschinen ist unterschiedlich. Alles Automatisierte funktioniert potenziell schneller als das, was Menschen tun. Das Wichtigste ist eine einzige Wahrheitsquelle (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Woher kommen die neuen 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 Buch<\/a><\/noindex>) sagt uns: von Entwicklern. Schlie\u00dflich arbeiten sie mit Code, und Sie erreichen den idealen Zustand.<\/p>\n<p>Wir haben lange und intensiv auf dem Arbeitsmarkt au\u00dferhalb unseres Unternehmens nach ihnen gesucht. Wir m\u00fcssen jedoch eingestehen, dass wir keinen einzigen gefunden haben, der unseren Anforderungen entspricht. Wir mussten unter unseren eigenen Mitarbeitern suchen. <\/p>\n<h2>Probleme mit Infrastructure as Code<\/h2>\n<p>\nLasst uns nun Beispiele daf\u00fcr betrachten, wie Infrastruktur in Code eingebettet werden kann. Der Code ist gut geschrieben, von hoher Qualit\u00e4t, mit Kommentaren und Einr\u00fcckungen. <\/p>\n<p>Beispielcode aus Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" 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 erster Einblick\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeine Herren, wenn alles so einfach w\u00e4re! Wir leben schlie\u00dflich in einer realen Welt, die immer bereit ist, uns zu verbl\u00fcffen und \u00dcberraschungen sowie Probleme zu pr\u00e4sentieren. Auch hier kommen wir nicht ohne sie aus.<\/p>\n<p><b>1. Das erste Problem besteht darin, dass IaC in den meisten F\u00e4llen irgendeine Art von DSL ist.<\/b><\/p>\n<p>Und ein DSL ist wiederum eine Strukturbeschreibung. Genauer gesagt, was Sie haben sollten: Json, Yaml, Modifikationen von gro\u00dfen Unternehmen, die ihre eigenen DSLs entwickelt haben (in Terraform wird HCL verwendet). <\/p>\n<p>Das Problem ist, dass darin leicht fehlende, uns vertraute Dinge wie:<\/p>\n<ul>\n<li>Variablen;<\/li>\n<li>Bedingungen;<\/li>\n<li>irgendwo fehlende Kommentare, zum Beispiel gibt es in Json standardm\u00e4\u00dfig keine;<\/li>\n<li>Funktionen;<\/li>\n<li>und ich spreche noch nicht einmal von so hochrangigen Dingen wie Klassen, Vererbung und all dem.<\/li>\n<\/ul>\n<p>\n <b>2. Das zweite Problem bei solchem Code ist, dass es h\u00e4ufig eine heterogene Umgebung darstellt.<\/b>Normalerweise arbeiten Sie mit C#, also einer Sprache, einem Stack, einem \u00d6kosystem. Doch hier haben Sie eine riesige Vielfalt an Technologien. <\/p>\n<p>Eine durchaus reale Situation ist, wenn ein Bash-Skript mit Python einen Prozess startet, in den JSON eingef\u00fcgt wird. Sie analysieren es, und dann erzeugt ein weiterer Generator noch 30 Dateien. F\u00fcr all dies kommen Eingabevariablen aus dem Azure Key Vault, die \u00fcber ein Plugin zu drone.io abgerufen werden, das in Go geschrieben ist, und diese Variablen durchlaufen eine YAML-Datei, die aus einem Template-Generator namens Jsonnet erstellt wurde. Es ist ziemlich schwierig, einen klar strukturierten Code zu haben, wenn man eine so vielf\u00e4ltige Umgebung hat. <\/p>\n<p>In der traditionellen Entwicklung arbeiten wir in der Regel mit einer Sprache an einer einzigen Aufgabe. Hier hingegen arbeiten wir mit einer Vielzahl von Sprachen. <\/p>\n<p><b>3. Das dritte Problem ist das Tooling.<\/b>. Wir sind es gewohnt, leistungsstarke Editoren (Ms Visual Studio, Jetbrains Rider) zu nutzen, die vieles f\u00fcr uns erledigen. Selbst wenn wir einen Fehler machen, weisen sie uns darauf hin. Das scheint normal und nat\u00fcrlich zu sein. <\/p>\n<p>Aber irgendwo in der N\u00e4he gibt es VSCode, das einige Plugins hat, die installiert werden, gewartet oder eben nicht gewartet werden. Neue Versionen sind erschienen, aber wurden nicht unterst\u00fctzt. Ein einfacher \u00dcbergang zur Implementierung einer Funktion (sofern sie \u00fcberhaupt vorhanden ist) wird zu einem komplexen und nicht triviale Problem. Eine einfache Umbenennung einer Variable bedeutet ein Ersetzen in dem Projekt \u00fcber Dutzende von Dateien. Au\u00dferdem besteht die Chance, dass das, was man ersetzen m\u00f6chte, nicht in Ordnung ist. Nat\u00fcrlich gibt es hier und da Syntaxhighlighting, Autovervollst\u00e4ndigung und manchmal auch Formatierung (obwohl es bei mir in Terraform unter Windows nicht funktioniert). <\/p>\n<p>Zum Zeitpunkt des Verfassens des Artikels <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform Plugin<\/a><\/noindex> wurde noch nicht ver\u00f6ffentlicht, um Version 0.12 zu unterst\u00fctzen, obwohl sie bereits seit 3 Monaten ver\u00f6ffentlicht ist.<\/p>\n<h2>Es ist an der Zeit, sich von\u2026<\/h2>\n<p><\/p>\n<ol>\n<li>Debugging.<\/li>\n<li>Refactoring-Tool.<\/li>\n<li>Autocomplete.<\/li>\n<li>Fehlererkennung beim Kompilieren.<\/li>\n<\/ol>\n<p>\nEs ist lustig, aber das erh\u00f6ht die Entwicklungszeit und die Anzahl der unvermeidlichen Fehler. <\/p>\n<p>Das Schlimmste ist, dass wir nicht dar\u00fcber nachdenken sollten, wie wir die Dateien strukturiert ablegen, sie umsetzen, wartbar und lesbar machen und so weiter, sondern eher dar\u00fcber, wie ich diesen Befehl korrekt formulieren kann, denn ich habe ihn irgendwie falsch eingegeben. <\/p>\n<p>Als Neuling versuchen Sie, Terraform zu verstehen, und die IDE hilft Ihnen dabei \u00fcberhaupt nicht. Wenn es Dokumentation gibt \u2013 haben Sie sie aufgerufen und angesehen. Aber wenn Sie in eine neue Programmiersprache einsteigen, w\u00fcrde die IDE Ihnen sagen, dass es diesen Typ gibt und jenen nicht. Zumindest auf der Ebene von int oder string. Das kann oft hilfreich sein. <\/p>\n<h2>Und wie sieht es mit Tests aus?<\/h2>\n<p>\nSie fragen sich: \u201eWie steht es um die Tests, liebe Programmierer?\u201c Ernsthafte Leute testen alles in der Produktion, und das ist hart. Hier ist ein Beispiel f\u00fcr einen Unit-Test f\u00fcr ein Terraform-Modul von der Website. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie haben eine gute Dokumentation. Microsoft hat mir immer wegen ihres Ansatzes zur Dokumentation und Schulung gefallen. Aber man muss kein Onkel Bob sein, um zu erkennen, dass der Code hier nicht perfekt ist. Achten Sie auf die Validierung, die nach rechts verschoben wurde. <\/p>\n<p>Das Problem beim Unit-Test ist, dass wir \u00fcberpr\u00fcfen k\u00f6nnen, ob das Json am Ausgang korrekt ist. Ich habe 5 Parameter \u00fcbergeben, und ich erhielt einen Json-Output mit 2000 Zeilen. Ich kann analysieren, was hier passiert, das Testergebnis validieren\u2026 <\/p>\n<p>Es ist schwierig, JSON in Go zu analysieren. Aber man sollte in Go schreiben, da Terraform in Go eine gute Praxis ist, um in der Programmiersprache, in der man schreibt, auch zu testen. Die Organisation des Codes ist insgesamt sehr schwach. Dennoch ist es 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, kann von Ihnen verbessert werden. Ich k\u00f6nnte mich hinsetzen und innerhalb einer Woche alles reparieren, die VS Code-Plugins open sourcen, Terraform anpassen, ein Plugin f\u00fcr Rider erstellen. Vielleicht ein paar Analyzer schreiben, Linter einbinden und zur Testbibliothek beitragen. Ich kann das alles tun. Aber das sollte nicht meine Hauptbesch\u00e4ftigung sein. <\/p>\n<h2>Best Practices f\u00fcr Infrastructure as Code<\/h2>\n<p>\nLassen Sie uns weitermachen. Wenn es in IaC keine Tests gibt, die IDE schlecht ist und die Werkzeugauswahl unzureichend ist, dann sollten wenigstens die besten Praktiken beachtet werden. Ich habe einfach Google Analytics verwendet und zwei Suchanfragen verglichen: Terraform Best Practices und C# Best Practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWas sehen wir? Eine unerbittliche Statistik, die nicht zu unseren Gunsten spricht. In der C#-Entwicklung sind wir einfach \u00fcberw\u00e4ltigt von Materialien: Wir haben hervorragende Praktiken, es gibt B\u00fccher von Experten und auch Werke, die von anderen Experten verfasst wurden und diese kritisieren. Ein Meer an offizieller Dokumentation, Artikeln, Schulungskursen und jetzt auch noch Open-Source-Entwicklung.<\/p>\n<p>Was die Anfrage zu IaC betrifft: Hier versuchen Sie m\u00fchsam, Informationen aus Vortr\u00e4gen von Highload-Events oder HashiConf, aus der offiziellen Dokumentation und zahlreichen Issues auf GitHub zusammenzutragen. Wie verteilt man diese Module \u00fcberhaupt, was macht man damit? Es scheint, dass dies ein echtes Problem ist... Es gibt eine Community, meine Damen und Herren, die auf jede Frage mit 10 Kommentaren auf GitHub antwortet. Aber das ist nicht sicher. <\/p>\n<p>Leider fangen die Experten gerade erst an, sichtbar zu werden. Im Moment sind sie noch zu rar. Und die Community selbst befindet sich noch in den Kinderschuhen. <\/p>\n<h2>Wohin bewegt sich das alles und was ist zu tun?<\/h2>\n<p>\nMan kann alles hinschmei\u00dfen und zur\u00fcck zu C# gehen, in die Welt des Riders. Aber warum? Warum w\u00fcrden Sie das \u00fcberhaupt tun, wenn es nicht darum geht, eine L\u00f6sung zu finden? Hier sind meine subjektiven Schlussfolgerungen. Sie k\u00f6nnen gerne in den Kommentaren mit mir diskutieren, das w\u00e4re interessant. <\/p>\n<p>Ich setze pers\u00f6nlich auf mehrere Dinge:<\/p>\n<ol>\n<li>Die Entwicklung in diesem Bereich geschieht sehr schnell. Ich m\u00f6chte eine Grafik der Anfragen im Bereich DevOps anf\u00fchren.\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: Ein erster Einblick\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f6glicherweise ist das Thema sehr trendy, aber die Tatsache, dass das Feld w\u00e4chst, gibt einen gewissen Hoffnungsschimmer. <\/p>\n<p>Wenn etwas so schnell w\u00e4chst, werden sich zwangsl\u00e4ufig kluge K\u00f6pfe finden, die sagen, wie es richtig gemacht wird und wie nicht. Die zunehmende Popularit\u00e4t f\u00fchrt dazu, dass vielleicht endlich jemand die Zeit findet, ein Plug-in f\u00fcr jsonnet f\u00fcr vscode zu schreiben, das einen direkten Zugang zur Implementierung von Funktionen erm\u00f6glicht, anstatt sie \u00fcber ctrl+shift+f suchen zu m\u00fcssen. Wenn sich alles weiterentwickelt, entstehen auch mehr Materialien. Ein weiteres Beispiel ist das k\u00fcrzlich erschienene Buch von Google \u00fcber SRE.<\/li>\n<li>Es gibt entwickelte Methoden und Praktiken in der regul\u00e4ren Softwareentwicklung, die wir hier erfolgreich anwenden k\u00f6nnen. Ja, es gibt Nuancen beim Testen und in heterogenen Umgebungen, sowie unzureichende Tools, aber es gibt eine enorme Anzahl von Praktiken, die n\u00fctzlich sein und helfen k\u00f6nnen.\n<p>Ein einfaches Beispiel: die Zusammenarbeit durch Pair Programming. Das hilft enorm, die Dinge zu verstehen. Wenn man einen Kollegen neben sich hat, der ebenfalls versucht, etwas zu begreifen, wird man es gemeinsam besser verstehen.<\/p>\n<p> Das Verst\u00e4ndnis daf\u00fcr, wie Refactoring durchgef\u00fchrt wird, hilft auch in solchen Situationen, es effektiv umzusetzen. Man muss nicht alles auf einmal \u00e4ndern, man kann zun\u00e4chst die Benennungen anpassen, dann die Anordnung \u00e4ndern und schlie\u00dflich vielleicht einen Teil herausstellen. Oh, hier fehlen 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 wir (und Sie) es schaffen werden.<\/p>\n<blockquote><p>In K\u00fcrze folgt der zweite Teil des Artikels. Darin werde ich berichten, 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 4.9.10 - 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. \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\" \/>\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) 4.9.10\" \/>\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. \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\" \/>\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 Einf\u00fchrung | ProHoster","description":"In unserem Unternehmen findet gerade der Onboarding-Prozess des SRE-Teams statt. Ich habe diesen Weg aus der Perspektive der Entwicklung betreten. W\u00e4hrenddessen sind mir Gedanken und Einsichten gekommen, die ich gerne mit anderen Entwicklern teilen m\u00f6chte. In diesem Artikel reflektiere ich dar\u00fcber, was passiert, wie es passiert und wie wir alle damit weiterleben k\u00f6nnen. Dies ist der Anfang einer Artikelreihe, die auf","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. \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","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"},"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}]}}