{"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\/it\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","title":{"rendered":"Da \"startup\" a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell'infrastruttura Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Se la vostra infrastruttura IT cresce troppo rapidamente, prima o poi vi troverete di fronte a una scelta: aumentare linearmente le risorse umane per supportarla o iniziare l'automazione. Fino a un certo punto, abbiamo vissuto nella prima scelta, poi \u00e8 iniziato un lungo percorso verso l'Infrastructure-as-Code.<\/p>\n<p><img decoding=\"async\" alt=\"Da &quot;startup&quot; a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell&#039;infrastruttura Linux\" 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 \/>\nNaturalmente, NSPK non \u00e8 un startup, ma questa atmosfera permeava l'azienda nei primi anni di vita, e sono stati anni molto interessanti. Mi chiamo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/dkorn\/\">Dmitry Koryakov<\/a><\/noindex>, da oltre 10 anni gestisco l'infrastruttura Linux con elevate esigenze di disponibilit\u00e0. Sono entrato nel team di NSPK a gennaio 2016 e, sfortunatamente, non ho vissuto l'inizio dell'azienda, ma sono arrivato in un periodo di grandi cambiamenti.<\/p>\n<p>In generale, si pu\u00f2 dire che il nostro team fornisce all'azienda 2 prodotti. Il primo \u00e8 l'infrastruttura. La posta deve funzionare, il DNS deve lavorare, e i controller di dominio devono permettervi di accedere ai server, che non devono mai bloccarsi. Il paesaggio IT dell'azienda \u00e8 enorme! Si tratta di sistemi critici per il business e per la missione, con requisiti di disponibilit\u00e0 per alcuni del 99,999%. Il secondo prodotto sono i server stessi, fisici e virtuali. \u00c8 necessario monitorare i server esistenti e fornire regolarmente nuovi server ai clienti provenienti da molteplici divisioni. In questo articolo voglio sottolineare come abbiamo sviluppato l'infrastruttura che gestisce il ciclo di vita <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1507\">server<\/a>.<\/p>\n<p><b>Inizio del percorso<\/b><\/p>\n<p>All'inizio del nostro percorso, il nostro stack tecnologico era composto da:<br \/>\n<i>OS CentOS 7<br \/>\nController di dominio FreeIPA<br \/>\nAutomazione \u2014 Ansible(+Tower), Cobbler<\/i><\/p>\n<p>Tutto ci\u00f2 era distribuito su 3 domini, sparsi su diversi data center. In un data center \u2013 sistemi d'ufficio e ambienti di test, negli altri PROD.<\/p>\n<p>La creazione di server in un certo momento si presentava cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Da &quot;startup&quot; a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell&#039;infrastruttura Linux\" src=\"\/wp-content\/uploads\/2020\/07\/2cc6209276489dc6e9d1bf46236d3785.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Nel template VM CentOS minimal e il minimo necessario come un corretto \/etc\/resolv.conf, il resto arriva tramite Ansible.<\/p>\n<p>CMDB \u2013 Excel.<\/p>\n<p>Se il server \u00e8 fisico, invece di copiare una macchina virtuale, veniva installato il sistema operativo tramite Cobbler: negli config di Cobbler si aggiungono gli indirizzi MAC del server target, il server ottiene un indirizzo IP tramite DHCP, e successivamente viene installato il sistema operativo.<\/p>\n<p>Inizialmente abbiamo anche provato a realizzare una sorta di gestione della configurazione in Cobbler. Ma col tempo questo ha iniziato a portare problemi di portabilit\u00e0 delle configurazioni sia verso altri data center che nel codice Ansible per la preparazione delle VM.<\/p>\n<p>Ansible era visto da molti di noi come un comodo ampliamento di Bash, e non ci si \u00e8 trattenuti nell'utilizzare costrutti con shell, sed. In generale, Bashsible. Questo alla fine portava al fatto che, se un playbook per qualche motivo non funzionava sul server, era pi\u00f9 semplice eliminare il server, correggere il playbook e riprovare. In sostanza, non c'era alcun versioning degli script, n\u00e9 portabilit\u00e0 delle configurazioni.<\/p>\n<p>Ad esempio, abbiamo voluto modificare qualche configurazione su tutti i server:<\/p>\n<ol>\n<li>Modifichiamo la configurazione sui server esistenti nel segmento logico\/centro dati. A volte non in un solo giorno: i requisiti di disponibilit\u00e0 e la legge dei grandi numeri non permettono di applicare tutte le modifiche contemporaneamente. Alcune modifiche sono potenzialmente distruttive e richiedono il riavvio di qualcosa, dai servizi fino al sistema operativo stesso.<\/li>\n<li>Correggiamo in Ansible<\/li>\n<li>Correggiamo in Cobbler<\/li>\n<li>Ripetiamo N volte per ogni segmento logico\/centro dati<\/li>\n<\/ol>\n<p>Per garantire che tutte le modifiche avvengano senza intoppi, era necessario tenere conto di numerosi fattori, e le modifiche avvengono costantemente.<\/p>\n<ul>\n<li>Refactoring del codice ansible, dei file di configurazione<\/li>\n<li>Modifica delle best practice interne<\/li>\n<li>Modifiche sulla base di analisi di incidenti\/emergenze<\/li>\n<li>Modifica degli standard di sicurezza, sia interni che esterni. Ad esempio, il PCI DSS ogni anno si arricchisce di nuovi requisiti<\/li>\n<\/ul>\n<p><b>Crescita dell'infrastruttura e inizio del percorso<\/b><\/p>\n<p>Il numero di server\/domini logici\/centri dati cresceva, cos\u00ec come il numero di errori nelle configurazioni. A un certo punto, ci siamo trovati a dover sviluppare configuration management in tre direzioni:<\/p>\n<ol>\n<li>Automazione. Il pi\u00f9 possibile, dobbiamo evitare il fattore umano nelle operazioni ripetitive.<\/li>\n<li>Ripetibilit\u00e0. Gestire l'infrastruttura \u00e8 molto pi\u00f9 semplice quando \u00e8 prevedibile. La configurazione dei server e gli strumenti per la loro preparazione devono essere gli stessi ovunque. Questo \u00e8 altrettanto importante per i team di prodotto: l'applicazione deve garantire di passare in ambiente di produzione dopo i test, configurata in modo analogo all'ambiente di test.<\/li>\n<li>Semplicit\u00e0 e trasparenza nell'introduzione di modifiche nel configuration management.<\/li>\n<\/ol>\n<p>\u00c8 rimasto da aggiungere un paio di strumenti.<\/p>\n<p>Come repository di codice abbiamo scelto GitLab CE, non ultimo per la presenza di moduli CI\/CD integrati.<\/p>\n<p>Il repository dei segreti \u00e8 Hashicorp Vault, anche per l'eccellente API.<\/p>\n<p>Testare le configurazioni e i ruoli ansible \u2013 Molecule+Testinfra. I test procedono molto pi\u00f9 velocemente se si collega mitogen ad ansible. Parallelamente, abbiamo iniziato a scrivere il nostro CMDB e orchestratore per il deployment automatico (nella foto sopra Cobbler), ma questa \u00e8 un'altra storia, di cui in futuro parler\u00e0 il mio collega e capo sviluppatore di questi sistemi.<\/p>\n<p>La nostra scelta:<\/p>\n<p><i>Molecule + Testinfra<br \/>\nAnsible + Tower + AWX<br \/>\nMondo Server + DITNET(Sviluppo Interno)<br \/>\nCobbler<br \/>\nGitlab + GitLab runner<br \/>\nHashicorp Vault<br \/>\n<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Da &quot;startup&quot; a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell&#039;infrastruttura Linux\" src=\"\/wp-content\/uploads\/2020\/07\/e84263618966f757e76d0384c9da276d.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>A proposito dei ruoli ansible. Inizialmente ce n'era uno, dopo diversi refactoring sono diventati 17. Raccomando assolutamente di suddividere il monolite in ruoli idempotenti, che possono essere eseguiti separatamente; \u00e8 possibile aggiungere anche dei tag. Abbiamo suddiviso i ruoli in base alle funzionalit\u00e0 \u2013 network, logging, packages, hardware, molecule ecc. In generale, abbiamo seguito la strategia sottostante. Non pretendo che sia la verit\u00e0 universale, ma ha funzionato per noi.<\/p>\n<ul>\n<li><b>Copiare server da un \"immagine oro\" \u00e8 un male!<\/b>Tra i principali svantaggi \u2013 non si sa esattamente in che stato siano le immagini adesso, e che tutte le modifiche arriveranno a tutte le immagini in tutte le fattorie di virtualizzazione.<\/li>\n<li><b>Utilizzate i file di configurazione di default il meno possibile e concordate con gli altri dipartimenti che siete voi a responsabilizzarvi per i principali file di sistema<\/b>, per esempio:\n<ol>\n<li>Lasciate vuoto \/etc\/sysctl.conf, le impostazioni devono trovarsi solo in \/etc\/sysctl.d\/. Il vostro default in un file, la personalizzazione per l'applicazione in un altro.<\/li>\n<li>Utilizzate i file di override per modificare le unit\u00e0 systemd.<\/li>\n<\/ol>\n<\/li>\n<li><b>Templatezzate tutte le configurazioni e inseritele interamente, evitando per quanto possibile sed e i suoi equivalenti nei playbook<\/b><\/li>\n<li><b>Refactoring del codice del sistema di gestione delle configurazioni:<\/b>\n<ol>\n<li>Suddividete i compiti in entit\u00e0 logiche e riscrivete il monolite in ruoli<\/li>\n<li>Usate i linters! Ansible-lint, yaml-lint, ecc.<\/li>\n<li>Cambiati l'approccio! Niente pi\u00f9 bashsible. Bisogna descrivere lo stato del sistema<\/li>\n<\/ol>\n<\/li>\n<li><b>Per tutti i ruoli Ansible bisogna scrivere dei test in molecule e generare rapporti una volta al giorno.<\/b><\/li>\n<li>Nel nostro caso, dopo la preparazione dei test (di cui oltre 100), sono stati trovati circa 70000 errori. Abbiamo corretto per mesi.<img decoding=\"async\" alt=\"Da &quot;startup&quot; a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell&#039;infrastruttura Linux\" src=\"\/wp-content\/uploads\/2020\/07\/afa87e6305ef99a7ed6bdab0bc78a433.jpg\" style=\"display:block;margin: 0 auto;\"><\/li>\n<\/ul>\n<p><b>La nostra implementazione<\/b><\/p>\n<p>Quindi, i ruoli ansible erano pronti, templatezzati e verificati dai linters. E anche i git erano attivi ovunque. Ma la questione della consegna affidabile del codice in diversi segmenti \u00e8 rimasta aperta. Abbiamo deciso di sincronizzare tramite script. Ecco come appare:<\/p>\n<p><img decoding=\"async\" alt=\"Da &quot;startup&quot; a migliaia di server in dieci datacenter. Come abbiamo inseguito la crescita dell&#039;infrastruttura Linux\" src=\"\/wp-content\/uploads\/2020\/07\/7c850301b5838b295d75834374e09b9f.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Dopo che \u00e8 arrivata la modifica, viene avviato CI, viene creato un server di test, vengono applicati i ruoli e viene testato con molecola. Se tutto va bene, il codice viene inviato nel ramo di produzione. Tuttavia, non applichiamo il nuovo codice ai server esistenti automaticamente. Questo \u00e8 un tipo di fermo necessario per l'alta disponibilit\u00e0 dei nostri sistemi. E quando l'infrastruttura diventa enorme, entra in gioco anche la legge dei grandi numeri: anche se sei sicuro che la modifica sia innocua, pu\u00f2 portare a conseguenze spiacevoli.<\/p>\n<p>Ci sono molte opzioni per la creazione di server. Alla fine, abbiamo scelto script personalizzati in Python. E per CI Ansible:<\/p>\n<pre><code class=\"json\">- name: create1.yml - Crea una VM da un modello\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>Ecco dove siamo arrivati, il sistema continua a vivere e a svilupparsi.<\/p>\n<ul>\n<li>17 ruoli ansible per la configurazione del server. Ciascuno dei ruoli \u00e8 destinato a risolvere un compito logico specifico (logging, audit, autorizzazione degli utenti, monitoraggio, ecc.).<\/li>\n<li>Testing dei ruoli. Molecola + TestInfra.<\/li>\n<li>Sviluppo interno: CMDB + Orchestratore.<\/li>\n<li>Tempo di creazione del server ~30 minuti, automatizzato e praticamente non dipendente dalla coda delle attivit\u00e0.<\/li>\n<li>Stato\/nome uniforme dell'infrastruttura in tutti i segmenti \u2013 playbook, repository, elementi di virtualizzazione.<\/li>\n<li>Controllo quotidiano dello stato dei server con generazione di report sulle discrepanze rispetto al modello di riferimento.<\/li>\n<\/ul>\n<p>Spero che il mio racconto sia utile a chi \u00e8 all'inizio del percorso. Quale stack di automazione utilizzate voi?<\/p>\n<p>Fonte: <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.1.1 - 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\/it\/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) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Da \"startup\" a migliaia di server in una decina di DC. Come abbiamo inseguito la crescita dell'infrastruttura Linux | ProHoster","description":"Se la vostra infrastruttura IT cresce troppo velocemente, prima o poi vi troverete di fronte alla scelta \u2013 aumentare linearmente le risorse umane per il suo supporto o iniziare l'automazione.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/87282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=87282"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/87282\/revisions"}],"predecessor-version":[{"id":158751,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/87282\/revisions\/158751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/87283"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=87282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=87282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=87282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}