{"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":"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito la crescita dell'infrastruttura Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Se la tua infrastruttura IT cresce troppo rapidamente, prima o poi ti troverai di fronte a una scelta: aumentare linearmente le risorse umane per supportarla o iniziare ad automatizzarla. Fino a un certo punto, abbiamo vissuto nella prima parabola, e poi \u00e8 iniziato un lungo percorso verso l'Infrastructure-as-Code.<\/p>\n<p><img decoding=\"async\" alt=\"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito 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 una startup, ma un'atmosfera simile regnava in azienda nei primi anni della sua esistenza, ed erano anni molto interessanti. Mi chiamo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/dkorn\/\">Dmitrij Korneyakov<\/a><\/noindex>, da oltre 10 anni supporto un'infrastruttura Linux con elevate esigenze di disponibilit\u00e0. Sono entrato a far parte del team di NSPK a gennaio 2016 e, purtroppo, non ho vissuto l'inizio dell'esistenza dell'azienda, ma ho fatto il mio ingresso in un periodo di grandi cambiamenti.<\/p>\n<p>In generale, si pu\u00f2 dire che il nostro team fornisce due prodotti per l'azienda. Il primo \u00e8 l'infrastruttura. La posta deve funzionare, il DNS deve essere attivo e i controller di dominio devono permettervi di accedere ai server, i quali non devono mai andare offline. Il panorama IT dell'azienda \u00e8 vasto! Si tratta di sistemi critici per il business e la missione, con requisiti di disponibilit\u00e0 per alcuni pari al 99,999. Il secondo prodotto sono i server stessi, fisici e virtuali. \u00c8 necessario monitorare quelli esistenti e fornire regolarmente nuovi server ai clienti di diversi dipartimenti. In questo articolo voglio mettere in evidenza 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 viaggio<\/b><\/p>\n<p>All'inizio del percorso, il nostro stack tecnologico era cos\u00ec composto:<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 suddiviso in 3 domini, distribuiti su vari data center. In un data center si trovavano i sistemi per ufficio e i laboratori di test, negli altri invece i sistemi di produzione.<\/p>\n<p>La creazione dei server a un certo punto appariva cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito 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 indispensabile 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, il sistema operativo veniva installato utilizzando Cobbler: gli indirizzi MAC del server di destinazione vengono aggiunti alla configurazione di Cobbler, il server ottiene un indirizzo IP tramite DHCP e poi viene installato il sistema operativo.<\/p>\n<p>All'inizio abbiamo anche provato a gestire la configurazione tramite Cobbler. Ma col tempo, ci\u00f2 ha iniziato a causare problemi con la portabilit\u00e0 delle configurazioni, sia per i diversi data center che per il codice Ansible per la preparazione delle VM.<\/p>\n<p>All'epoca, molti di noi consideravano Ansible come un'estensione utile di Bash e non esitavano ad usare costrutti con shell e sed. Insomma, era una specie di Bashsible. Questo 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 eseguirlo nuovamente. Di fatto non c'era versione dei script e neanche 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\/CED. A volte non in un giorno: le esigenze di disponibilit\u00e0 e la legge dei grandi numeri non consentono di applicare tutte le modifiche contemporaneamente. Alcuni cambiamenti sono potenzialmente distruttivi e richiedono il riavvio di qualcosa, dai servizi al sistema operativo stesso.<\/li>\n<li>Correzioni in Ansible<\/li>\n<li>Correzioni in Cobbler<\/li>\n<li>Ripetiamo N volte per ogni segmento logico\/CED<\/li>\n<\/ol>\n<p>Per garantire che tutte le modifiche avvengano senza problemi, \u00e8 necessario considerare numerosi fattori, e i cambiamenti sono costanti.<\/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 a seguito di incidenti\/eventi di emergenza<\/li>\n<li>Modifica degli standard di sicurezza, sia interni che esterni. Ad esempio, il PCI DSS viene aggiornato ogni anno con nuovi requisiti<\/li>\n<\/ul>\n<p><b>Crescita dell'infrastruttura e inizio di un percorso<\/b><\/p>\n<p>Il numero di server\/domini logici\/CED \u00e8 aumentato, cos\u00ec come il numero di errori nelle configurazioni. A un certo punto siamo giunti a tre direzioni verso cui sviluppare la gestione della configurazione:<\/p>\n<ol>\n<li>Automazione. Per quanto possibile, \u00e8 necessario evitare il fattore umano in operazioni ripetitive.<\/li>\n<li>Ripetibilit\u00e0. Gestire l'infrastruttura diventa molto pi\u00f9 semplice quando \u00e8 prevedibile. La configurazione dei server e degli strumenti per la loro preparazione deve essere uniforme ovunque. Questo \u00e8 altrettanto importante per i team di prodotto: l'applicazione deve garantire di passare in produzione, configurata in modo analogo a quella di test dopo i collaudi.<\/li>\n<li>Semplicit\u00e0 e trasparenza nella gestione delle modifiche nella configuration management.<\/li>\n<\/ol>\n<p>Manca solo l'aggiunta di alcuni strumenti.<\/p>\n<p>Come repository per il codice abbiamo scelto GitLab CE, non da ultimo per la disponibilit\u00e0 di moduli CI\/CD integrati.<\/p>\n<p>Il nostro sistema di gestione delle segreti \u00e8 Hashicorp Vault, anche per la sua eccellente API.<\/p>\n<p>Testare le configurazioni e i ruoli Ansible \u2013 Molecule+Testinfra. I test sono molto pi\u00f9 veloci se si usa Ansible con mitogen. Nel frattempo, abbiamo iniziato a scrivere il nostro CMDB e un orchestratore per il deployment automatico (nella figura sopra Cobbler), ma questa \u00e8 un'altra storia, di cui parler\u00e0 in futuro il mio collega e principale 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=\"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito 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 c'era solo un ruolo, dopo diversi refactoring sono diventati 17. Raccomando categoricamente di suddividere il monolite in ruoli idempotenti, che possono poi essere eseguiti separatamente, potete anche aggiungere dei tag. Abbiamo suddiviso i ruoli in base alle funzionalit\u00e0 - rete, logging, pacchetti, hardware, molecola, ecc. In generale, ci siamo attenuti alla strategia qui sotto. Non insisto sul fatto che sia la verit\u00e0 in un'unica istanza, ma ha funzionato per noi.<\/p>\n<ul>\n<li><b>La copia dei server da un 'immagine d'oro' \u00e8 un male!<\/b>Tra i principali difetti, non sai esattamente in che stato si trovano le immagini attualmente e che tutte le modifiche si riflettono su tutte le immagini in tutte le farm di virtualizzazione.<\/li>\n<li><b>Utilizza i file di configurazione di default il meno possibile e accordati con le altre divisioni su quali file di sistema principali sei responsabile tu.<\/b>, ad esempio:\n<ol>\n<li>Tieni vuoto il file \/etc\/sysctl.conf, le impostazioni devono trovarsi solo in \/etc\/sysctl.d\/. Il tuo default in un file, il custom per l'applicazione in un altro.<\/li>\n<li>Utilizza file di override per modificare le unit\u00e0 systemd.<\/li>\n<\/ol>\n<\/li>\n<li><b>Template tutte le configurazioni e inseriscile interamente, evita in modo possibile comandi sed e simili nei playbook.<\/b><\/li>\n<li><b>Refactoring del codice del sistema di gestione delle configurazioni:<\/b>\n<ol>\n<li>Suddividi i compiti in entit\u00e0 logiche e riscrivi il monolite in ruoli<\/li>\n<li>Usa i linter! Ansible-lint, yaml-lint, ecc.<\/li>\n<li>Cambia approccio! Niente bashsible. \u00c8 necessario descrivere lo stato del sistema<\/li>\n<\/ol>\n<\/li>\n<li><b>Per ogni ruolo Ansible \u00e8 necessario scrivere test in molecule e generare report una volta al giorno.<\/b><\/li>\n<li>Nel nostro caso, dopo aver preparato i test (che sono pi\u00f9 di 100) sono state trovate circa 70.000 errori. Ci siamo messi a correggere per diversi mesi.<img decoding=\"async\" alt=\"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito 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, templati e controllati dai linter. E anche i repository sono stati sollevati ovunque. Ma la questione della consegna affidabile del codice in diverse aree \u00e8 rimasta aperta. Abbiamo deciso di sincronizzarci tramite script. Ecco come appare:<\/p>\n<p><img decoding=\"async\" alt=\"Dallo \u2018startup\u2019 a migliaia di server in una decina di data center. Come abbiamo perseguito 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 la modifica \u00e8 arrivata, si avvia il CI, si crea un server di test, si applicano i ruoli e si testano le molecole. Se tutto \u00e8 a posto, il codice viene inviato nel ramo di produzione. Tuttavia, non applichiamo il nuovo codice sui server esistenti in modo automatico. Questo funge da freno, necessario per garantire 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 certo che la modifica sia innocua, potrebbe portare a conseguenze spiacevoli.<\/p>\n<p>Esistono molte opzioni per creare server. Alla fine, abbiamo scelto script personalizzati in Python. E per il CI, Ansible:<\/p>\n<pre><code class=\"json\">- name: create1.yml - Creare 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 svilupparsi.<\/p>\n<ul>\n<li>17 ruoli Ansible per la configurazione del server. Ognuno dei ruoli \u00e8 progettato per risolvere un compito logico specifico (registrazione, audit, autorizzazione utenti, monitoraggio, ecc.).<\/li>\n<li>Test dei ruoli. Molecule + TestInfra.<\/li>\n<li>Sviluppo interno: CMDB + Orchestratore.<\/li>\n<li>Tempo di creazione del server ~30 minuti, automatizzato e praticamente indipendente dalla coda delle attivit\u00e0.<\/li>\n<li>Stato e denominazione uniformi dell'infrastruttura in tutti i segmenti \u2013 playbook, repository, elementi di virtualizzazione.<\/li>\n<li>Verifica quotidiana dello stato dei server con generazione di report sulle discrepanze rispetto allo standard.<\/li>\n<\/ul>\n<p>Spero che la mia esperienza sia utile a chi \u00e8 all'inizio del proprio percorso. E 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 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\/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) 4.9.10\" \/>\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. \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\/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 dozzina di data center. Come abbiamo inseguito la crescita dell'infrastruttura Linux | ProHoster","description":"Se la tua infrastruttura IT cresce troppo rapidamente, prima o poi dovrai affrontare la scelta tra l'aumento lineare delle risorse umane per supportarla o iniziare ad automatizzare. Fino a un certo punto, abbiamo vissuto nella prima paradossi, e poi \u00e8 iniziato un lungo cammino verso l'Infrastructure-as-Code. Ovviamente, NSPK non \u00e8 una startup, ma tale atmosfera regnava nell'azienda nei primi anni di esistenza.","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. \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\/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"},"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}]}}