{"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\/hr\/blog\/administrirovanie\/ot-startapa-do-tysyach-serverov-v-desyatke-czod-kak-my-gnalis-za-rostom-linux-infrastruktury","title":{"rendered":"Od 'startup-a' do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ako va\u0161a IT infrastruktura raste prebrzo, \u0440\u0430\u043d\u043e ili kasno \u0107ete se suo\u010diti s odabirom \u2013 linearno pove\u0107avati ljudske resurse za njezinu podr\u0161ku ili zapo\u010deti automatizaciju. Do nekog trenutka \u017eivjeli smo u prvoj paradigmi, a zatim je po\u010deo dug put ka Infrastructure-as-Code.<\/p>\n<p><img decoding=\"async\" alt=\"Od &#039;startup-a&#039; do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.\" 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 \/>\nNaravno, NSPK nije startup, ali atmosfera u tvrtki bila je takva u prvim godinama postojanja, a to su bila vrlo zanimljiva vremena. Zovem se <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/users\/dkorn\/\">Dmitry Koryakov<\/a><\/noindex>, vi\u0161e od 10 godina podr\u017eavam Linux infrastrukturu s visokim zahtjevima dostupnosti. Timu NSPK pridru\u017eio sam se u sije\u010dnju 2016. godine i, na\u017ealost, nisam do\u017eivio sam po\u010detak postojanja tvrtke, ali sam do\u0161ao u fazi velikih promjena.<\/p>\n<p>Sve u svemu, mo\u017ee se re\u0107i da na\u0161a ekipa pru\u017ea dva proizvoda za tvrtku. Prvi \u2013 to je infrastruktura. Po\u0161ta mora raditi, DNS treba funkcionirati, a domeni kontroleri \u2013 omogu\u0107iti vam pristup serverima koji ne bi smjeli padati. IT krajolik tvrtke je ogroman! To su business&amp;mission critical sustavi, a zahtjevi dostupnosti nekih \u2013 99,999. Drugi proizvod \u2013 sami serveri, fizi\u010dki i virtualni. O postoje\u0107ima treba brinuti, a nove redovito isporu\u010divati klijentima iz mnogih odjela. U ovom \u010dlanku \u017eelim istaknuti kako smo razvijali infrastrukturu koja je odgovorna za \u017eivotni ciklus <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hr\/server\/\"   title=\"poslu\u017eitelja\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1507\">poslu\u017eitelja<\/a>.<\/p>\n<p><b>Po\u010detak puta<\/b><\/p>\n<p>Na po\u010detku na\u0161eg puta na\u0161 tehnologijski paket izgledao je ovako:<br \/>\n<i>OS CentOS 7<br \/>\nKontroleri domena FreeIPA<br \/>\nAutomatizacija \u2014 Ansible(+Tower), Cobbler<\/i><\/p>\n<p>Sve je to bilo raspore\u0111eno u 3 domene, raspore\u0111ene na nekoliko podatkovnih centara. U jednom podatkovnom centru \u2013 uredski sustavi i testne platforme, u ostalima PRODUCTION.<\/p>\n<p>Kreiranje servera u nekom trenutku izgledalo je ovako:<\/p>\n<p><img decoding=\"async\" alt=\"Od &#039;startup-a&#039; do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.\" src=\"\/wp-content\/uploads\/2020\/07\/2cc6209276489dc6e9d1bf46236d3785.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>U predlo\u0161ku VM CentOS minimalan i nu\u017eni minimum poput ispravnog \/etc\/resolv.conf, ostatak dolazi putem Ansible.<\/p>\n<p>CMDB \u2013 Excel.<\/p>\n<p>Ako je server fizi\u010dki, umjesto kopiranja virtualne ma\u0161ine na njega, OS se instalira uz pomo\u0107 Cobbler \u2013 u Cobbler konfiguraciju dodaju se MAC adrese ciljanog servera, server putem DHCP-a dobiva IP adresu, a zatim se instalira OS.<\/p>\n<p>U po\u010detku smo \u010dak poku\u0161avali raditi neku vrstu upravljanja konfiguracijom u Cobbleru. No s vremenom su se po\u010deli pojavljivati problemi s prenosivo\u0161\u0107u konfiguracija, kako u druge podatkovne centre, tako i u Ansible kod za pripremu VM.<\/p>\n<p>Mnogi od nas su u to vrijeme Ansible do\u017eivljavali kao korisno pro\u0161irenje Bash-a, a nisu \u0161tedjeli na konstrukcijama koriste\u0107i shell i sed. U su\u0161tini, to je bio Bashsible. To je na kraju rezultiralo time da, ako playbook iz bilo kojeg razloga nije radio na serveru, bilo je lak\u0161e obrisati server, ispraviti playbook i ponovo ga primijeniti. U su\u0161tini nije bilo verzioniranja skripti niti prenosivosti konfiguracija.<\/p>\n<p>Na primjer, \u017eeljeli smo promijeniti neku konfiguraciju na svim serverima:<\/p>\n<ol>\n<li>Mijenjamo konfiguraciju na postoje\u0107im serverima u logi\u010dkom segmentu\/ data centra. Ponekad ne za jedan dan \u2013 zahtjevi za dostupnost i zakon velikih brojeva ne dopu\u0161taju primjenu svih promjena odjednom. A neke promjene su potencijalno destruktivne i zahtijevaju ponovni pokretanje ne\u010dega \u2013 od servisa do samog operativnog sustava.<\/li>\n<li>Ispravljamo u Ansible-u<\/li>\n<li>Ispravljamo u Cobbler-u<\/li>\n<li>Ponovimo N puta za svaki logi\u010dki segment\/ data centar<\/li>\n<\/ol>\n<p>Kako bi sve promjene pro\u0161le glatko, bilo je potrebno uzeti u obzir mnoge faktore, a promjene se konstantno doga\u0111aju.<\/p>\n<ul>\n<li>Refaktoriranje Ansible koda, konfiguracijskih datoteka<\/li>\n<li>Promjena unutarnjih najboljih praksi<\/li>\n<li>Izmjene na temelju analize incidenata\/nesre\u0107a<\/li>\n<li>Promjena sigurnosnih standarda, kako unutarnjih, tako i vanjskih. Na primjer, PCI DSS se svake godine dopunjava novim zahtjevima<\/li>\n<\/ul>\n<p><b>Rast infrastrukture i po\u010detak puta<\/b><\/p>\n<p>Broj servera\/logi\u010dkih domena\/ data centara je rastao, a s njima i broj gre\u0161aka u konfiguracijama. U nekom trenutku do\u0161li smo do tri smjera u kojima treba razvijati upravljanje konfiguracijama:<\/p>\n<ol>\n<li>Automatizacija. Koliko je mogu\u0107e, treba izbjegavati ljudski faktor u ponavljaju\u0107im operacijama.<\/li>\n<li>Ponavljanost. Upraviti infrastrukturom je puno lak\u0161e kada je predvidljiva. Konfiguracija servera i alata za njihovu pripremu trebala bi biti svugdje jednaka. To je tako\u0111er va\u017eno za razvojne timove \u2013 aplikacija bi nakon testiranja trebala jam\u010diti da \u0107e biti ura\u0111ena u proizvodnom okru\u017eenju, pode\u0161enom na na\u010din sli\u010dan testnom.<\/li>\n<li>Jednostavnost i transparentnost u uvo\u0111enju promjena u upravljanje konfiguracijama.<\/li>\n<\/ol>\n<p>Preostaje dodati jo\u0161 nekoliko alata.<\/p>\n<p>Kao spremi\u0161te koda odabrali smo GitLab CE, ne u posljednjem redu zbog prisutnosti ugra\u0111enih CI\/CD modula.<\/p>\n<p>Skladi\u0161te tajni \u2013 Hashicorp Vault, izme\u0111u ostalog zbog izvrsnog API-ja.<\/p>\n<p>Testiranje konfiguracija i ansible uloga \u2013 Molecule+Testinfra. Testovi idu znatno br\u017ee kada se koristi mitogen s ansible-om. Paralelno smo po\u010deli pisati vlastitu CMDB i orkestrator za automatsko raspore\u0111ivanje (na slici iznad Cobblera), ali to je ve\u0107 sasvim druga pri\u010da, o kojoj \u0107e u budu\u0107nosti pri\u010dati moj kolega i glavni programer ovih sustava.<\/p>\n<p>Na\u0161 izbor:<\/p>\n<p><i>Molecule + Testinfra<br \/>\nAnsible + Tower + AWX<br \/>\nSvijet Servera + DITNET (Vlastiti razvoj)<br \/>\nCobbler<br \/>\nGitlab + GitLab runner<br \/>\nHashicorp Vault<br \/>\n<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Od &#039;startup-a&#039; do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.\" src=\"\/wp-content\/uploads\/2020\/07\/e84263618966f757e76d0384c9da276d.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Usput o ansible ulogama. Prvo je bila jedna, nakon nekoliko refaktorizacija ih je postalo 17. Kategorijski preporu\u010dujem razbijanje monolita na idempotentne uloge koje se zatim mogu pokretati odvojeno, uz mogu\u0107nost dodavanja oznaka. Razbili smo uloge prema funkcionalnosti \u2013 mre\u017ea, logiranje, paketi, hardver, molekuli itd. U svakom slu\u010daju, dr\u017eali smo se strategije ispod. Ne tvrdim da je to jedina istina, ali nama je funkcioniralo.<\/p>\n<ul>\n<li><b>Kopiranje servera iz \"zlatnog obrasca\" \u2013 zlo!<\/b>Od glavnih nedostataka \u2013 nikada ne znate u kakvom su stanju trenuta\u010dno slike, i da \u0107e sve promjene do\u0107i u sve slike u svim farmama virtualizacije.<\/li>\n<li><b>Koristite zadane datoteke konfiguracije minimalno i dogovorite se s drugim odjelima da ste vi odgovorni za osnovne sistemske datoteke.<\/b>, na primjer:\n<ol>\n<li>Ostavite \/etc\/sysctl.conf praznim, postavke trebaju le\u017eati samo u \/etc\/sysctl.d\/. Va\u0161 zadani u jedan datoteku, prilago\u0111en za aplikaciju u drugu.<\/li>\n<li>Koristite override datoteke za ure\u0111ivanje systemd jedinica.<\/li>\n<\/ol>\n<\/li>\n<li><b>\u0160ablonirajte sve konfiguracije i dodajte ih u cijelosti, po mogu\u0107stvu bez sed-a i njegovih analoga u playbookovima.<\/b><\/li>\n<li><b>Refaktoriziraju\u0107i kod sustava za upravljanje konfiguracijama:<\/b>\n<ol>\n<li>Razdvojite zadatke na logi\u010dke entitete i prepi\u0161ite monolit u uloge.<\/li>\n<li>Koristite linters! Ansible-lint, yaml-lint itd.<\/li>\n<li>Promijenite pristup! Nema bashsible-a. Potrebno je opisivati stanje sustava.<\/li>\n<\/ol>\n<\/li>\n<li><b>Za sve Ansible uloge potrebno je napisati testove u molekuli i svakodnevno generirati izvje\u0161\u0107a.<\/b><\/li>\n<li>U na\u0161em slu\u010daju, nakon pripreme testova (njih vi\u0161e od 100) prona\u0111eno je oko 70000 gre\u0161aka. Ispravljali smo nekoliko mjeseci.<img decoding=\"async\" alt=\"Od &#039;startup-a&#039; do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.\" src=\"\/wp-content\/uploads\/2020\/07\/afa87e6305ef99a7ed6bdab0bc78a433.jpg\" style=\"display:block;margin: 0 auto;\"><\/li>\n<\/ul>\n<p><b>Na\u0161a implementacija<\/b><\/p>\n<p>Dakle, ansible uloge su bile spremne, \u0161ablonizirane i provjerene linters. I svi gitovi su podignuti posvuda. Ali pitanje pouzdane isporuke koda u razli\u010dite segmente ostalo je otvoreno. Odlu\u010dili smo sinkronizirati skriptama. Izgleda ovako:<\/p>\n<p><img decoding=\"async\" alt=\"Od &#039;startup-a&#039; do tisu\u0107a servera u desecima podatkovnih centara. Kako smo pratili rast Linux infrastrukture.\" src=\"\/wp-content\/uploads\/2020\/07\/7c850301b5838b295d75834374e09b9f.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Nakon \u0161to do\u0111e promjena, pokre\u0107e se CI, stvara se testni poslu\u017eitelj, izvr\u0161avaju se uloge, testiraju se molekulom. Ako je sve u redu, kod ide u produkcijsku granu. No, ne primjenjujemo novi kod automatski na postoje\u0107e poslu\u017eitelje. To je svojevrsna ko\u010dnica, potrebna za visoku dostupnost na\u0161ih sustava. A kad infrastruktura postane ogromna, u igru ulazi i zakon velikih brojeva \u2013 \u010dak i ako ste sigurni da je promjena bezopasna, mo\u017ee dovesti do tu\u017enih posljedica.<\/p>\n<p>Opcija za stvaranje poslu\u017eitelja tako\u0111er je mnogo. Na kraju smo odabrali prilago\u0111ene skripte u Pythonu. A za CI Ansible:<\/p>\n<pre><code class=\"json\">- ime: create1.yml - Kreiraj VM iz predlo\u0161ka\n  vmware_guest:\n    hostname: \"{{datacenter}}\".domain.hr\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.hr\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>Evo do \u010dega smo do\u0161li, sustav nastavlja \u017eivjeti i razvijati se.<\/p>\n<ul>\n<li>17 ansible uloga za postavljanje poslu\u017eitelja. Svaka od uloga namijenjena je rje\u0161avanju posebnog logi\u010dkog zadatka (logiranje, revizija, autorizacija korisnika, pra\u0107enje i sl.).<\/li>\n<li>Testiranje uloga. Molecule + TestInfra.<\/li>\n<li>Vlastiti razvoj: CMDB + Orkestrator.<\/li>\n<li>Vrijeme izrade poslu\u017eitelja ~30 minuta, automatizirano i gotovo neovisno o redu zadataka.<\/li>\n<li>Jednako stanje\/imena infrastrukture u svim segmentima \u2013 playbookovi, repozitoriji, elementi virtualizacije.<\/li>\n<li>Sv daily provjera stanja poslu\u017eitelja uz generiranje izvje\u0161taja o razlikama u odnosu na standard.<\/li>\n<\/ul>\n<p>Nadam se da \u0107e moja pri\u010da biti korisna onima koji su na po\u010detku svog puta. A koji skup alata za automatizaciju koristite vi?<\/p>\n<p>Izvor: <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.4 - 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\/hr\/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.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Od \u201cstartupa\u201d do tisu\u0107a poslu\u017eitelja u desetak podatkovnih centara. Kako smo jurnuli za rastom Linux infrastrukture | ProHoster","description":"Ako va\u0161a IT infrastruktura raste prebrzo, \u0440\u0430\u043d\u043e ili kasnije \u0107ete se suo\u010diti s izborom \u2013 linearno pove\u0107avati ljudske resurse za njeno odr\u017eavanje ili zapo\u010deti s automatizacijom.","canonical_url":"https:\/\/prohoster.info\/hr\/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":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/87282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=87282"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/87282\/revisions"}],"predecessor-version":[{"id":158751,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/87282\/revisions\/158751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/87283"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=87282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=87282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=87282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}