{"id":87282,"date":"2020-07-06T13:44:51","date_gmt":"2020-07-06T11:44:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury"},"modified":"2021-02-01T11:41:48","modified_gmt":"2021-02-01T09:41:48","slug":"ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","title":{"rendered":"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Wenn Ihre IT-Infrastruktur zu schnell w\u00e4chst, stehen Sie irgendwann vor der Wahl \u2013 entweder die personellen Ressourcen linear zu erh\u00f6hen oder mit der Automatisierung zu beginnen. Bis zu einem gewissen Punkt lebten wir in der ersten Paradigme, bevor der lange Weg zur Infrastruktur als Code begann.<\/p>\n<p><img decoding=\"async\" alt=\"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.\" src=\"\/wp-content\/uploads\/2020\/07\/adbcf170e3e0f794355eb1eb052585c1.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNat\u00fcrlich ist NSPK kein Startup, aber eine solche Atmosph\u00e4re herrschte in den ersten Jahren des Unternehmens, und es waren sehr interessante Jahre. Ich hei\u00dfe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/dkorn\/\">Dmitry Koryakov<\/a><\/noindex>, ich unterst\u00fctze seit \u00fcber 10 Jahren eine hochverf\u00fcgbare Linux-Infrastruktur. Ich trat dem NSPK-Team im Januar 2016 bei und hatte leider nicht die Gelegenheit, die Anf\u00e4nge des Unternehmens zu erleben, kam jedoch in einer Phase gro\u00dfer Ver\u00e4nderungen.<\/p>\n<p>Insgesamt l\u00e4sst sich sagen, dass unser Team zwei Produkte f\u00fcr das Unternehmen bereitstellt. Das erste ist die Infrastruktur. Die E-Mails m\u00fcssen zugestellt werden, DNS muss funktionieren, und die Domain Controller m\u00fcssen Ihnen den Zugang zu Servern erm\u00f6glichen, die nie ausfallen sollten. Die IT-Landschaft des Unternehmens ist riesig! Es handelt sich um business- und mission-critical Systeme, f\u00fcr die einige eine Verf\u00fcgbarkeitsanforderung von 99,999 % haben. Das zweite Produkt sind die Server selbst, sowohl physische als auch virtuelle. Bestehende Server m\u00fcssen \u00fcberwacht und neue regelm\u00e4\u00dfig an Kunden aus vielen Abteilungen geliefert werden. In diesem Artikel m\u00f6chte ich hervorheben, wie wir die Infrastruktur entwickelt haben, die f\u00fcr den Lebenszyklus verantwortlich ist. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1507\">Server<\/a>.<\/p>\n<p><b>Der Beginn des Weges<\/b><\/p>\n<p>Zu Beginn sah unser Technologie-Stack folgenderma\u00dfen aus:<br \/>\n<i>OS CentOS 7<br \/>\nDomain Controller FreeIPA<br \/>\nAutomatisierung \u2013 Ansible (+Tower), Cobbler<\/i><\/p>\n<p>All dies war auf drei Dom\u00e4nen verteilt, die in mehreren Rechenzentren untergebracht waren. In einem Rechenzentrum \u2013 B\u00fcrosysteme und Testumgebungen, in den anderen PROD.<\/p>\n<p>Die Erstellung von Servern sah zu einem bestimmten Zeitpunkt so aus:<\/p>\n<p><img decoding=\"async\" alt=\"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.\" src=\"\/wp-content\/uploads\/2020\/07\/2cc6209276489dc6e9d1bf46236d3785.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Im VM-Template CentOS minimal und das notwendige Minimum, wie z.B. eine korrekte \/etc\/resolv.conf, der Rest wird \u00fcber Ansible bereitgestellt.<\/p>\n<p>CMDB \u2013 Excel.<\/p>\n<p>Wenn der Server physisch ist, wurde anstelle der Kopie einer virtuellen Maschine das Betriebssystem mit Hilfe von Cobbler installiert \u2013 dabei werden die MAC-Adressen des Zielservers in die Cobbler-Konfiguration eingef\u00fcgt, der Server erh\u00e4lt per DHCP seine IP-Adresse und das Betriebssystem wird anschlie\u00dfend installiert.<\/p>\n<p>Anfangs haben wir sogar versucht, eine Art Konfigurationsmanagement in Cobbler zu betreiben. Doch im Laufe der Zeit brachte dies Probleme mit der Portabilit\u00e4t der Konfigurationen sowohl zu anderen Rechenzentren als auch zu dem Ansible-Code zur VM-Vorbereitung.<\/p>\n<p>Zu diesem Zeitpunkt sch\u00e4tzten viele von uns Ansible als eine praktische Erweiterung von Bash und nutzten bereitwillig Konstruktionen mit Shell und sed \u2013 kurz gesagt, Bashsible. Das f\u00fchrte letztendlich dazu, dass, wenn das Playbook aus irgendeinem Grund nicht auf dem Server funktionierte, es einfacher war, den Server zu l\u00f6schen, das Playbook anzupassen und alles erneut durchzuf\u00fchren. Es gab im Grunde kein Versionsmanagement f\u00fcr Skripte und auch keine Portabilit\u00e4t der Konfigurationen.<\/p>\n<p>Zum Beispiel wollten wir eine bestimmte Konfiguration auf allen Servern \u00e4ndern:<\/p>\n<ol>\n<li>Wir \u00e4ndern die Konfiguration auf bestehenden Servern im logischen Segment\/Rechenzentrum. Manchmal nicht an einem Tag \u2013 die Verf\u00fcgbarkeit und das Gesetz der gro\u00dfen Zahlen erlauben es nicht, alle \u00c4nderungen gleichzeitig umzusetzen. Einige \u00c4nderungen sind potenziell destruktiv und erfordern einen Neustart \u2013 von Diensten bis hin zum Betriebssystem.<\/li>\n<li>Korrekturen in Ansible<\/li>\n<li>Korrekturen in Cobbler<\/li>\n<li>Wiederholung N-mal f\u00fcr jedes logische Segment\/Rechenzentrum<\/li>\n<\/ol>\n<p>Damit alle \u00c4nderungen reibungslos ablaufen, mussten zahlreiche Faktoren ber\u00fccksichtigt werden, und Ver\u00e4nderungen treten st\u00e4ndig auf.<\/p>\n<ul>\n<li>Refactoring des Ansible-Codes, der Konfigurationsdateien<\/li>\n<li>\u00c4nderung interner Best Practices<\/li>\n<li>\u00c4nderungen basierend auf der Analyse von Vorf\u00e4llen\/Notf\u00e4llen<\/li>\n<li>\u00c4nderung der Sicherheitsstandards, sowohl intern als auch extern. Zum Beispiel werden die Anforderungen des PCI DSS jedes Jahr um neue Vorschriften erg\u00e4nzt.<\/li>\n<\/ul>\n<p><b>Wachstum der Infrastruktur und der Beginn des Weges<\/b><\/p>\n<p>Die Anzahl der Server\/logischen Dom\u00e4nen\/Rechenzentren wuchs, ebenso wie die Anzahl der Fehler in den Konfigurationen. Irgendwann kamen wir zu drei Bereichen, in die wir das Configuration Management weiterentwickeln m\u00fcssen:<\/p>\n<ol>\n<li>Automatisierung. Soweit m\u00f6glich, sollte der menschliche Faktor bei sich wiederholenden Vorg\u00e4ngen vermieden werden.<\/li>\n<li>Vorhersehbarkeit. Das\u7ba1\u7406en von Infrastruktur wird erheblich einfacher, wenn sie vorhersehbar ist. Die Konfiguration von Servern und den daf\u00fcr erforderlichen Tools sollte \u00fcberall einheitlich sein. Dies ist ebenso wichtig f\u00fcr Produkt-Teams \u2013 die Anwendung muss sicher nach der Testphase in eine produktive Umgebung \u00fcberf\u00fchrt werden, die \u00e4hnlich wie die Testumgebung konfiguriert ist.<\/li>\n<li>Einfachheit und Transparenz bei \u00c4nderungen im Konfigurationsmanagement.<\/li>\n<\/ol>\n<p>Wir m\u00fcssen nur noch ein paar Werkzeuge hinzuf\u00fcgen.<\/p>\n<p>F\u00fcr die Codeverwaltung haben wir GitLab CE gew\u00e4hlt, nicht zuletzt wegen der integrierten CI\/CD-Module.<\/p>\n<p>Das Geheimnis-Management erfolgt \u00fcber Hashicorp Vault, insbesondere aufgrund der hervorragenden API.<\/p>\n<p>Konfigurations- und Ansible-Rollentests \u2013 Molecule + Testinfra. Die Tests verlaufen deutlich schneller, wenn Sie Mitogen mit Ansible koppeln. Parallel dazu haben wir begonnen, unsere eigene CMDB und einen Orchestrator f\u00fcr automatische Deployments zu schreiben (im Bild \u00fcber Cobbler), aber das ist eine ganz andere Geschichte, \u00fcber die in Zukunft mein Kollege und Hauptentwickler dieser Systeme berichten wird.<\/p>\n<p>Unsere Auswahl:<\/p>\n<p><i>Molecule + Testinfra<br \/>\nAnsible + Tower + AWX<br \/>\nWelt der Server + DITNET (Eigenentwicklung)<br \/>\nCobbler<br \/>\nGitLab + GitLab Runner<br \/>\nHashicorp Vault<br \/>\n<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.\" src=\"\/wp-content\/uploads\/2020\/07\/e84263618966f757e76d0384c9da276d.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>\u00dcbrigens zu Ansible-Rollen. Zuerst gab es nur eine, nach mehreren Refaktorisierungen sind es nun 17. Ich empfehle dringend, das Monolithische in idempotente Rollen zu zerlegen, die dann separat ausgef\u00fchrt werden k\u00f6nnen. Zudem k\u00f6nnen Tags hinzugef\u00fcgt werden. Wir haben die Rollen nach Funktionalit\u00e4t aufgeteilt \u2013 Netzwerk, Logging, Pakete, Hardware, Molecule usw. Im \u00dcbrigen haben wir uns an der folgenden Strategie orientiert. Ich behaupte nicht, dass dies die einzige Wahrheit ist, aber es hat bei uns gut funktioniert.<\/p>\n<ul>\n<li><b>Das Kopieren von Servern aus einem \"Gold-Image\" ist eine schlechte Idee!<\/b>Zu den Hauptnachteilen geh\u00f6rt, dass Sie genau nicht wissen, in welchem Zustand sich die Images derzeit befinden, und dass alle \u00c4nderungen auf alle Images in allen Virtualisierungsfarmen angewendet werden.<\/li>\n<li><b>Verwenden Sie Standardkonfigurationsdateien nur minimal und vereinbaren Sie mit anderen Abteilungen, dass Sie f\u00fcr die Hauptsystemdateien verantwortlich sind.<\/b>, zum Beispiel:\n<ol>\n<li>Halten Sie \/etc\/sysctl.conf leer. Die Einstellungen sollten nur in \/etc\/sysctl.d\/ liegen. Ihre Standardkonfiguration in einer Datei, individuelle Anpassungen f\u00fcr die Anwendung in einer anderen.<\/li>\n<li>Verwenden Sie \u00dcberschreibungsdateien zur Bearbeitung von systemd-Einheiten.<\/li>\n<\/ol>\n<\/li>\n<li><b>Templateisieren Sie alle Konfigurationen und integrieren Sie sie vollst\u00e4ndig, soweit m\u00f6glich, keine sed- oder \u00e4hnliche Scripting-Tools in Playbooks verwenden.<\/b><\/li>\n<li><b>Beim Refaktorisieren des Konfigurationsmanagement-Codes:<\/b>\n<ol>\n<li>Zerteilen Sie Aufgaben in logische Einheiten und \u00fcberarbeiten Sie das Monolithische System nach Rollen.<\/li>\n<li>Nutzen Sie Linter! Ansible-lint, yaml-lint usw.<\/li>\n<li>\u00c4ndern Sie den Ansatz! Kein Bashsible. Der Zustand des Systems muss beschrieben werden.<\/li>\n<\/ol>\n<\/li>\n<li><b>F\u00fcr alle Ansible-Rollen sollten Tests in Molecule geschrieben werden, und einmal t\u00e4glich sollten Berichte erstellt werden.<\/b><\/li>\n<li>In unserem Fall, nach der Vorbereitung von \u00fcber 100 Tests, fanden wir etwa 70.000 Fehler. Die Korrekturen dauerten mehrere Monate.<img decoding=\"async\" alt=\"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.\" src=\"\/wp-content\/uploads\/2020\/07\/afa87e6305ef99a7ed6bdab0bc78a433.jpg\" style=\"display:block;margin: 0 auto;\"><\/li>\n<\/ul>\n<p><b>Unsere Umsetzung<\/b><\/p>\n<p>Die Ansible-Rollen waren also bereit, templatisiert und durch Linter \u00fcberpr\u00fcft. Und auch die Git-Repositories wurden \u00fcberall eingerichtet. Doch die Frage der zuverl\u00e4ssigen Bereitstellung des Codes in verschiedene Segmente blieb offen. Wir entschieden uns, dies mit Skripten zu synchronisieren. So sieht es aus:<\/p>\n<p><img decoding=\"async\" alt=\"Von einem \u201eStartup\u201c zu Tausenden von Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorangetrieben haben.\" src=\"\/wp-content\/uploads\/2020\/07\/7c850301b5838b295d75834374e09b9f.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Sobald die \u00c4nderung eintrifft, wird CI gestartet, ein Testserver erstellt, die Rollen angewendet und mit Molecule getestet. Wenn alles in Ordnung ist, geht der Code in den Produktionsbranch. Wir wenden den neuen Code jedoch nicht automatisch auf bestehende Server an. Das ist eine Art Stopper, der f\u00fcr die hohe Verf\u00fcgbarkeit unserer Systeme notwendig ist. Wenn die Infrastruktur dann riesig wird, kommt auch das Gesetz der gro\u00dfen Zahlen ins Spiel \u2013 selbst wenn Sie sicher sind, dass die \u00c4nderung harmlos ist, kann sie zu unerfreulichen Konsequenzen f\u00fchren.<\/p>\n<p>Es gibt viele M\u00f6glichkeiten zur Erstellung von Servern. Am Ende haben wir uns f\u00fcr ma\u00dfgeschneiderte Skripte in Python entschieden. F\u00fcr CI verwenden wir Ansible:<\/p>\n<pre><code class=\"json\">- name: create1.yml - VM aus einer Vorlage erstellen\n  vmware_guest:\n    hostname: \"{{datacenter}}\".domain.de\n    username: \"{{ username_vc }}\"\n    password: \"{{ password_vc }}\"\n    validate_certs: no\n    cluster: \"{{cluster}}\"\n    datacenter: \"{{datacenter}}\"\n    name: \"{{ name }}\"\n    state: poweredon\n    folder: \"\/{{folder}}\"\n    template: \"{{template}}\"\n    customization:\n      hostname: \"{{ name }}\"\n      domain: domain.de\n      dns_servers:\n        - \"{{ ipa1_dns }}\"\n        - \"{{ ipa2_dns }}\"\n    networks:\n      - name: \"{{ network }}\"\n        type: static\n        ip: \"{{ip}}\"\n        netmask: \"{{netmask}}\"\n        gateway: \"{{gateway}}\"\n        wake_on_lan: True\n        start_connected: True\n        allow_guest_control: True\n    wait_for_ip_address: yes\n    disk:\n      - size_gb: 1\n        type: thin\n        datastore: \"{{datastore}}\"\n      - size_gb: 20\n        type: thin\n        datastore: \"{{datastore}}\"<\/code><\/pre>\n<p>Das ist das Ergebnis, unser System lebt und entwickelt sich weiter.<\/p>\n<ul>\n<li>17 Ansible-Rollen zur Serverkonfiguration. Jede Rolle ist daf\u00fcr ausgelegt, eine bestimmte logische Aufgabe zu l\u00f6sen (Protokollierung, Auditing, Benutzerautorisierung, Monitoring usw.).<\/li>\n<li>Testen der Rollen. Molecule + TestInfra.<\/li>\n<li>Eigenentwicklung: CMDB + Orchestrator.<\/li>\n<li>Die Servererstellungszeit betr\u00e4gt etwa 30 Minuten, automatisiert und nahezu unabh\u00e4ngig von der Warteschlange.<\/li>\n<li>Gleichbleibender Zustand\/Bezeichnung der Infrastruktur in allen Segmenten \u2013 Playbooks, Repositories, Virtualisierungselemente.<\/li>\n<li>T\u00e4gliche \u00dcberpr\u00fcfung des Serverstatus mit der Erstellung von Berichten \u00fcber Abweichungen vom Standard.<\/li>\n<\/ul>\n<p>Ich hoffe, mein Bericht ist hilfreich f\u00fcr diejenigen, die am Anfang ihres Weges stehen. Welchen Automatisierungs-Stack verwenden Sie?<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nspk\/blog\/509460\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 IT \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u0442\u0451\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e, \u0432\u044b \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0435\u0441\u044c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u2013 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0434\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0435\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043b\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u0414\u043e \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0436\u0438\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c \u043a Infrastructure-as-Code. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u041d\u0421\u041f\u041a \u2013 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0430\u043f, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0430 \u0446\u0430\u0440\u0438\u043b\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u044b\u0435 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87283,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87282","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=\"\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 IT \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u0442\u0451\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e, \u0432\u044b \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0435\u0441\u044c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u2013 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0434\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0435\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043b\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u0414\u043e \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0436\u0438\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c \u043a Infrastructure-as-Code. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u041d\u0421\u041f\u041a \u2013 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0430\u043f, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0430 \u0446\u0430\u0440\u0438\u043b\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u044b\u0435 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f,\" \/>\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\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury\" \/>\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\udd47\u041e\u0442 \u201c\u0441\u0442\u0430\u0440\u0442\u0430\u043f\u0430\u201d \u0434\u043e \u0442\u044b\u0441\u044f\u0447 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0426\u041e\u0414. \u041a\u0430\u043a \u043c\u044b \u0433\u043d\u0430\u043b\u0438\u0441\u044c \u0437\u0430 \u0440\u043e\u0441\u0442\u043e\u043c Linux \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 IT \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u0442\u0451\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e, \u0432\u044b \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0435\u0441\u044c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u2013 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0434\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0435\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043b\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u0414\u043e \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0436\u0438\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c \u043a Infrastructure-as-Code. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u041d\u0421\u041f\u041a \u2013 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0430\u043f, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0430 \u0446\u0430\u0440\u0438\u043b\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u044b\u0435 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury\" \/>\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=\"2020-07-06T11:44:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-01T09:41:48+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\udd47Vom \u201eStartup\u201c zu tausenden Servern in Dutzenden von Rechenzentren. Wie wir das Wachstum der Linux-Infrastruktur vorantrieben | ProHoster","description":"Wenn Ihre IT-Infrastruktur zu schnell w\u00e4chst, stehen Sie fr\u00fcher oder sp\u00e4ter vor der Wahl \u2013 die personellen Ressourcen zur Unterst\u00fctzung linear zu erh\u00f6hen oder mit der Automatisierung zu beginnen. Bis zu einem gewissen Punkt lebten wir im ersten Paradigma, bevor der lange Weg zu Infrastructure-as-Code begann. Nat\u00fcrlich ist NSPK kein Startup, aber eine solche Atmosph\u00e4re herrschte in den ersten Jahren des Unternehmens.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","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\udd47\u041e\u0442 \u201c\u0441\u0442\u0430\u0440\u0442\u0430\u043f\u0430\u201d \u0434\u043e \u0442\u044b\u0441\u044f\u0447 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0426\u041e\u0414. \u041a\u0430\u043a \u043c\u044b \u0433\u043d\u0430\u043b\u0438\u0441\u044c \u0437\u0430 \u0440\u043e\u0441\u0442\u043e\u043c Linux \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 IT \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0440\u0430\u0441\u0442\u0451\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u043e, \u0432\u044b \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u0442\u0435\u0441\u044c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u2013 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0434\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0435\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043b\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u0414\u043e \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0436\u0438\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c \u043a Infrastructure-as-Code. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u041d\u0421\u041f\u041a \u2013 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0430\u043f, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0430 \u0446\u0430\u0440\u0438\u043b\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u043f\u0435\u0440\u0432\u044b\u0435 \u0433\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f,","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","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":"2020-07-06T11:44:51+00:00","article:modified_time":"2021-02-01T09:41:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87282","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:55:30","updated":"2026-02-09 16:50:33"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87282","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=87282"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87282\/revisions"}],"predecessor-version":[{"id":158751,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87282\/revisions\/158751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/87283"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}