{"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\/da\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","title":{"rendered":"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hvis din IT-infrastruktur vokser for hurtigt, vil du f\u00f8r eller senere st\u00e5 over for valget - enten at \u00f8ge bemandingen line\u00e6rt for at st\u00f8tte den eller begynde at automatisere. Indtil et vist punkt levede vi i den f\u00f8rste paradigme, hvorefter den lange rejse mod Infrastructure-as-Code begyndte.<\/p>\n<p><img decoding=\"async\" alt=\"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen\" 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 \/>\nSelvf\u00f8lgelig er NSPK ikke en startup, men s\u00e5dan en atmosf\u00e6re herskede i virksomheden de f\u00f8rste \u00e5r af dens eksistens, og det var meget sp\u00e6ndende \u00e5r. Mit navn er <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/dkorn\/\">Korjakov Dmitrij<\/a><\/noindex>, jeg har i over 10 \u00e5r underst\u00f8ttet Linux-infrastruktur med h\u00f8je tilg\u00e6ngelighedskrav. Jeg sluttede mig til NSPK-teamet i januar 2016 og, desv\u00e6rre, fik jeg ikke opleve virksomhedens tidlige dage, men kom ind i en fase med store \u00e6ndringer.<\/p>\n<p>Generelt kan man sige, at vores team leverer to produkter til virksomheden. Det f\u00f8rste er infrastrukturen. E-mail skal fungere, DNS skal fungere, og dom\u00e6necontrollere skal give dig adgang til serverne, som ikke m\u00e5 g\u00e5 ned. IT-landskabet i virksomheden er enormt! Det drejer sig om business &amp; mission critical systemer, nogle med tilg\u00e6ngelighedskrav p\u00e5 99,999. Det andet produkt er selve serverne, b\u00e5de fysiske og virtuelle. De eksisterende skal overv\u00e5ges, og nye skal regelm\u00e6ssigt leveres til kunderne fra mange afdelinger. I denne artikel vil jeg fokusere p\u00e5, hvordan vi udviklede infrastrukturen, der er ansvarlig for livscyklussen <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/da\/server\/\"   title=\"servere\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1507\">servere<\/a>.<\/p>\n<p><b>Starten p\u00e5 rejsen<\/b><\/p>\n<p>I starten s\u00e5 vores teknologi-stack s\u00e5dan ud:<br \/>\n<i>OS CentOS 7<br \/>\nDom\u00e6necontrollere FreeIPA<br \/>\nAutomatisering \u2014 Ansible(+Tower), Cobbler<\/i><\/p>\n<p>Alt dette var placeret i 3 dom\u00e6ner, spredt over flere datacentre. I \u00e9t datacenter - kontorsystemer og testmilj\u00f8er, i de andre PROD.<\/p>\n<p>Oprettelse af servere s\u00e5 p\u00e5 et tidspunkt s\u00e5dan ud:<\/p>\n<p><img decoding=\"async\" alt=\"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen\" src=\"\/wp-content\/uploads\/2020\/07\/2cc6209276489dc6e9d1bf46236d3785.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>I VM-skabelonen CentOS minimal og det n\u00f8dvendige minimum som korrekt \/etc\/resolv.conf, resten kommer gennem Ansible.<\/p>\n<p>CMDB \u2013 Excel.<\/p>\n<p>Hvis serveren er fysisk, blev OS installeret ved hj\u00e6lp af Cobbler i stedet for at kopiere den virtuelle maskine til den - MAC-adresserne p\u00e5 den m\u00e5lserver tilf\u00f8jes til Cobbler-konfigurationen, serveren f\u00e5r en IP-adresse via DHCP, og derefter installeres OS.<\/p>\n<p>I starten fors\u00f8gte vi endda at lave en form for konfigurationsstyring i Cobbler. Men med tiden begyndte det at medf\u00f8re problemer med portabiliteten af konfigurationerne b\u00e5de til andre datacentre og til Ansible-koden til forberedelse af VM.<\/p>\n<p>Ansible blev dengang opfattet af mange af os som en praktisk udvidelse af Bash, og vi var ikke tilbageholdende med at bruge konstruktioner med shell og sed. Generelt som Bashsible. Dette f\u00f8rte til, at hvis en playbook af en eller anden grund ikke fungerede p\u00e5 serveren, var det lettere at slette serveren, rette playbooken og k\u00f8re den igennem igen. Der var i praksis ingen versionering af scripts, og konfigurationens portabilitet var ogs\u00e5 frav\u00e6rende.<\/p>\n<p>For eksempel \u00f8nskede vi at \u00e6ndre en konfiguration p\u00e5 alle servere:<\/p>\n<ol>\n<li>\u00c6ndrer konfigurationen p\u00e5 eksisterende servere i det logiske segment\/datacenter. Nogle gange ikke p\u00e5 en dag \u2013 kravene til tilg\u00e6ngelighed og loven om store tal tillader ikke at anvende alle \u00e6ndringer p\u00e5 \u00e9n gang. Nogle \u00e6ndringer er potentielt destruktive og kr\u00e6ver genstart af noget \u2013 fra tjenester til selve operativsystemet.<\/li>\n<li>Retter i Ansible<\/li>\n<li>Retter i Cobbler<\/li>\n<li>Gentager N gange for hver logisk sektion\/datacenter<\/li>\n<\/ol>\n<p>For at sikre, at alle \u00e6ndringer forl\u00f8ber glat, var det n\u00f8dvendigt at tage h\u00f8jde for adskillige faktorer, og \u00e6ndringerne forekommer konstant.<\/p>\n<ul>\n<li>Refactoring af Ansible-kode, konfigurationsfiler<\/li>\n<li>\u00c6ndring af interne best practices<\/li>\n<li>\u00c6ndringer baseret p\u00e5 gennemgang af h\u00e6ndelser\/uheld<\/li>\n<li>\u00c6ndring af sikkerhedsstandarder, b\u00e5de interne og eksterne. For eksempel bliver PCI DSS hvert \u00e5r suppleret med nye krav.<\/li>\n<\/ul>\n<p><b>V\u00e6kst af infrastrukturen og begyndelsen af vejen<\/b><\/p>\n<p>Antallet af servere\/logiske dom\u00e6ner\/datacentre voksede, og dermed ogs\u00e5 antallet af fejl i konfigurationerne. P\u00e5 et tidspunkt kom vi til tre omr\u00e5der, som vi skulle udvikle configuration management i retning af:<\/p>\n<ol>\n<li>Automatisering. I det omfang det er muligt, skal den menneskelige faktor undg\u00e5s i gentagne operationer.<\/li>\n<li>Gentagelighed. Det er meget lettere at administrere infrastrukturen, n\u00e5r den er forudsigelig. Konfigurationen af servere og v\u00e6rkt\u00f8jer til deres ops\u00e6tning skal v\u00e6re ens overalt. Dette er ogs\u00e5 vigtigt for produktteams \u2013 applikationen skal garanteret efter testning komme ind i produktionsmilj\u00f8et, som er konfigureret p\u00e5 samme m\u00e5de som testmilj\u00f8et.<\/li>\n<li>Simplicity and transparency in making changes in configuration management.<\/li>\n<\/ol>\n<p>Det er tid til at tilf\u00f8je et par v\u00e6rkt\u00f8jer.<\/p>\n<p>Som kodeopbevaring valgte vi GitLab CE, ikke mindst p\u00e5 grund af tilstedev\u00e6relsen af indbyggede CI\/CD-moduler.<\/p>\n<p>Opbevaring af hemmeligheder \u2014 Hashicorp Vault, bl.a. for det fantastiske API.<\/p>\n<p>Test af konfigurationer og ansible-roller \u2013 Molecule+Testinfra. Testene k\u00f8rer meget hurtigere, n\u00e5r du tilslutter ansible mitogen. Samtidig er vi begyndt at skrive vores egen CMDB og orkestrator til automatisk udrulning (p\u00e5 billedet over Cobbler), men det er en helt anden historie, som min kollega og hovedudvikler af disse systemer vil fort\u00e6lle om i fremtiden.<\/p>\n<p>Vores valg:<\/p>\n<p><i>Molecule + Testinfra<br \/>\nAnsible + Tower + AWX<br \/>\nVerden af Servere + DITNET (Egen udvikling)<br \/>\nCobbler<br \/>\nGitlab + GitLab runner<br \/>\nHashicorp Vault<br \/>\n<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen\" src=\"\/wp-content\/uploads\/2020\/07\/e84263618966f757e76d0384c9da276d.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>For resten om ansible-roller. F\u00f8r var der kun \u00e9n, efter flere refaktoreringer er der blevet 17. Jeg anbefaler kategorisk at opdele monolitten i idempotente roller, som derefter kan k\u00f8res separat, og der kan desuden tilf\u00f8jes tags. Vi har opdelt rollerne efter funktionalitet \u2013 netv\u00e6rk, logging, pakker, hardware, molecule osv. Generelt fulgte vi strategien nedenfor. Jeg p\u00e5st\u00e5r ikke, at dette er den eneste sandhed, men det virkede for os.<\/p>\n<ul>\n<li><b>Kopiering af servere fra \"guldbilledet\" \u2013 ondt!<\/b>Blandt de vigtigste ulemper \u2013 du ved pr\u00e6cist ikke, hvilken tilstand billederne er i nu, og at alle \u00e6ndringer vil komme til alle billeder i alle virtualiseringsfarmene.<\/li>\n<li><b>Brug som minimum de standard konfigurationsfiler, og aftal med andre afdelinger, at du er ansvarlig for de vigtigste systemfiler.<\/b>, for eksempel:\n<ol>\n<li>Hold \/etc\/sysctl.conf tomt, indstillingerne skal kun ligge i \/etc\/sysctl.d\/. Din standard i \u00e9n fil, tilpasning til applikationen i en anden.<\/li>\n<li>Brug override-filer til redigering af systemd-enheder.<\/li>\n<\/ol>\n<\/li>\n<li><b>Template alle konfigurationer og inds\u00e6t dem helt, s\u00e5 vidt muligt ingen sed og dens analoger i playbooks.<\/b><\/li>\n<li><b>Refaktorerer koden for konfigurationsstyringssystemer:<\/b>\n<ol>\n<li>Opdel opgaverne i logiske enheder og omskriv monolitten til roller.<\/li>\n<li>Brug linters! Ansible-lint, yaml-lint osv.<\/li>\n<li>\u00c6ndre tilgangen! Ingen bashsible. Det er n\u00f8dvendigt at beskrive systemets tilstand.<\/li>\n<\/ol>\n<\/li>\n<li><b>For alle Ansible-roller skal der skrives tests i molecule, og rapporter skal genereres \u00e9n gang om dagen.<\/b><\/li>\n<li>I vores tilf\u00e6lde, efter forberedelse af tests (som er mere end 100), blev der fundet omkring 70.000 fejl. Det tog flere m\u00e5neder at rette.<img decoding=\"async\" alt=\"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen\" src=\"\/wp-content\/uploads\/2020\/07\/afa87e6305ef99a7ed6bdab0bc78a433.jpg\" style=\"display:block;margin: 0 auto;\"><\/li>\n<\/ul>\n<p><b>Vores implementering<\/b><\/p>\n<p>S\u00e5 ansible-rollerne var klar, templated og verificeret af linters. Og endda var git-repositorierne h\u00e6vet overalt. Men sp\u00f8rgsm\u00e5let om p\u00e5lidelig levering af koden til forskellige segmenter var stadig \u00e5bent. Vi besluttede at synkronisere med scripts. Det ser s\u00e5ledes ud:<\/p>\n<p><img decoding=\"async\" alt=\"Fra \u2018startup\u2019 til tusind servere i ti datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen\" src=\"\/wp-content\/uploads\/2020\/07\/7c850301b5838b295d75834374e09b9f.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>N\u00e5r \u00e6ndringen ankommer, starter CI'en, der oprettes en testserver, rollerne k\u00f8res, og der testes med Molecule. Hvis alt er i orden, g\u00e5r koden videre til produktionsgrenen. Men vi anvender ikke ny kode automatisk p\u00e5 eksisterende servere. Dette er en form for stop, der er n\u00f8dvendig for at sikre h\u00f8j tilg\u00e6ngelighed af vores systemer. Og n\u00e5r infrastrukturen bliver enorm, spiller loven om store tal ind \u2013 selv hvis du er sikker p\u00e5, at \u00e6ndringen er harml\u00f8s, kan den f\u00f8re til triste konsekvenser.<\/p>\n<p>Der er mange m\u00e5der at oprette servere p\u00e5. Vi valgte i sidste ende tilpassede scripts i Python. Og til CI Ansible:<\/p>\n<pre><code class=\"json\">- name: create1.yml - Opret en VM fra en skabelon\n  vmware_guest:\n    hostname: \"{{datacenter}}\".domain.ru\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.ru\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>Her er vi n\u00e5et til, systemet forts\u00e6tter med at eksistere og udvikle sig.<\/p>\n<ul>\n<li>17 Ansible-roller til serverkonfiguration. Hver rolle er designet til at l\u00f8se en bestemt logisk opgave (logging, revision, brugergodkendelse, overv\u00e5gning osv.).<\/li>\n<li>Testning af roller. Molecule + TestInfra.<\/li>\n<li>Egenudvikling: CMDB + Orkestrator.<\/li>\n<li>Tiden til oprettelse af en server er ca. 30 minutter, automatiseret og n\u00e6sten uafh\u00e6ngig af opgavelisten.<\/li>\n<li>Ensartet stat\/navn p\u00e5 infrastrukturen i alle segmenter \u2013 playbooks, repositories, virtualiseringselementer.<\/li>\n<li>Daglig kontrol af servernes tilstand med generering af rapporter om forskelle fra referencen.<\/li>\n<\/ul>\n<p>Jeg h\u00e5ber, at min fort\u00e6lling vil v\u00e6re nyttig for dem, der er i begyndelsen af deres rejse. Hvilket automatiseringsstack bruger I?<\/p>\n<p>Kilde: <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 5.0.3 - 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.\" \/>\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\/da\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/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\udd47Fra 'startup' til tusindvis af servere i et dusin datacentre. Hvordan vi jagede v\u00e6ksten af Linux-infrastrukturen | ProHoster","description":"Hvis din IT-infrastruktur vokser for hurtigt, vil du f\u00f8r eller senere st\u00e5 over for valget \u2013 at \u00f8ge menneskelige ressourcer line\u00e6rt for at st\u00f8tte den eller begynde automatiseringen.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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.","og:url":"https:\/\/prohoster.info\/da\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/87282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=87282"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/87282\/revisions"}],"predecessor-version":[{"id":158751,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/87282\/revisions\/158751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/87283"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=87282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=87282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=87282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}