{"id":95999,"date":"2020-10-06T13:41:58","date_gmt":"2020-10-06T11:41:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki"},"modified":"2020-10-06T13:41:58","modified_gmt":"2020-10-06T11:41:58","slug":"poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki","title":{"rendered":"Podczas gdy wszyscy \u015bwi\u0119towali moje urodziny, ja do rana naprawia\u0142em klaster \u2014 a deweloperzy zrzucali na mnie swoje b\u0142\u0119dy.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Podczas gdy wszyscy \u015bwi\u0119towali moje urodziny, ja do rana naprawia\u0142em klaster \u2014 a deweloperzy zrzucali na mnie swoje b\u0142\u0119dy.\" src=\"\/wp-content\/uploads\/2020\/10\/f67882cb5b565cb2efef20f68bbef1d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOto historia, kt\u00f3ra na zawsze zmieni\u0142a moje podej\u015bcie do pracy w DevOps. Jeszcze w czasach przed COVID-em, dawno, dawno temu, kiedy z ch\u0142opakami dopiero my\u015bleli\u015bmy o w\u0142asnym biznesie i freelancowali\u015bmy przy przypadkowych projektach, dosta\u0142em jedno zapytanie na Telegramie. <\/p>\n<p>Firma, kt\u00f3ra si\u0119 tym zajmowa\u0142a, prowadzi\u0142a analityk\u0119 danych. Codziennie przetwarza\u0142a tysi\u0105ce zapyta\u0144. Skontaktowali si\u0119 z nami z wiadomo\u015bci\u0105: ch\u0142opaki, mamy ClickHouse i chcemy zautomatyzowa\u0107 jego konfiguracj\u0119 i instalacj\u0119. Chcemy Ansible, Terraform, Dockera, a wszystko to ma by\u0107 w Gicie. Chcemy klastra z czterema w\u0119z\u0142ami, po dwie repliki w ka\u017cdym. <\/p>\n<p>Standardowa pro\u015bba, takich jest dziesi\u0105tki, a rozwi\u0105zanie takie samo, dobre jak zawsze. Powiedzieli\u015bmy 'okej' i po 2-3 tygodniach wszystko by\u0142o gotowe. Przyj\u0119li nasz\u0105 prac\u0119 i zacz\u0119li przenosi\u0107 si\u0119 na nowy klaster ClickHouse'a z pomoc\u0105 naszego narz\u0119dzia. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNikt w ich firmie nie chcia\u0142 i nie potrafi\u0142 pracowa\u0107 z ClickHouse'em. Wtedy my\u015bleli\u015bmy, \u017ce to ich g\u0142\u00f3wny problem, wi\u0119c CTO firmy po prostu poleci\u0142 mojemu zespo\u0142owi maksymalnie zautomatyzowa\u0107 prac\u0119, aby nigdy wi\u0119cej nie musieli tam zagl\u0105da\u0107.<\/p>\n<p>Towarzyszyli\u015bmy w przeprowadzce, pojawi\u0142y si\u0119 inne zadania \u2014 skonfigurowa\u0107 kopie zapasowe i monitoring. W tym momencie CTO tej firmy przeszed\u0142 na inny projekt, zostawiaj\u0105c nas z jednym z jego podw\u0142adnych \u2014 Leonidem. Leonia by\u0142 ch\u0142opakiem nieco mniej uzdolnionym. Zwyk\u0142y programista, kt\u00f3ry nagle zosta\u0142 szefem od ClickHouse'a. Wydaje si\u0119, \u017ce to by\u0142o jego pierwsze powo\u0142anie do kierowania czym\u015b, a z nadmiaru zaszczytu pojawi\u0142a si\u0119 u niego choroba gwiazdorska. <\/p>\n<p>Razem wzi\u0119li\u015bmy si\u0119 za kopie zapasowe. Proponowa\u0142em, \u017ceby backupowa\u0107 od razu dane \u017ar\u00f3d\u0142owe. Po prostu bra\u0107, zipowa\u0107 i elegancko wrzuca\u0107 na jaki\u015b S3. Dane \u017ar\u00f3d\u0142owe to z\u0142oto. By\u0142 te\u017c inny wariant \u2014 aby backupowa\u0107 same tabele w ClickHouse'u przy u\u017cyciu zamro\u017cenia i kopiowania. Ale Leonid wymy\u015bli\u0142 swoje rozwi\u0105zanie.<\/p>\n<p>Og\u0142osi\u0142, \u017ce potrzebujemy drugiego klastra ClickHouse'a. Od teraz b\u0119dziemy pisa\u0107 dane na dwa klastry \u2014 g\u0142\u00f3wny i zapasowy. M\u00f3wi\u0119 mu, Leonid, to wyjdzie nie backup \u2014 a aktywna replika. Je\u015bli dane zaczn\u0105 znika\u0107 na produkcji, na twoim backupie b\u0119dzie to samo. <\/p>\n<p>Ale Leonid mocno trzyma\u0142 si\u0119 steru i odm\u00f3wi\u0142 s\u0142uchania moich argument\u00f3w. D\u0142ugo si\u0119 z nim k\u0142\u00f3ci\u0142em na czacie, ale nie by\u0142o nic do zrobienia \u2014 Leonid rz\u0105dzi\u0142 na projekcie, my byli\u015bmy po prostu wynaj\u0119tymi ch\u0142opakami z ulicy.<\/p>\n<p>Obserwowali\u015bmy stan klastra i pobierali\u015bmy op\u0142at\u0119 tylko za prac\u0119 administrator\u00f3w. Czyste administrowanie ClickHouse bez wkraczania w dane. Klaster by\u0142 dost\u0119pny, dyski w porz\u0105dku, w\u0119z\u0142y dzia\u0142a\u0142y poprawnie. <\/p>\n<h3>Jeszcze nie podejrzewali\u015bmy, \u017ce otrzymali\u015bmy to zlecenie w wyniku strasznego nieporozumienia w ich zespole.<\/h3>\n<p>\nKierownik by\u0142 niezadowolony, \u017ce ClickHouse dzia\u0142a wolno i czasami dane si\u0119 gubi\u0105. Powierzy\u0142 swojemu CTO zadanie rozwi\u0105zania problemu. Ten, jak m\u00f3g\u0142, zaj\u0105\u0142 si\u0119 spraw\u0105 i doszed\u0142 do wniosku, \u017ce wystarczy zautomatyzowa\u0107 ClickHouse \u2013 i to wszystko. Jak si\u0119 wkr\u00f3tce okaza\u0142o, potrzebowali zupe\u0142nie innego zespo\u0142u devops.<\/p>\n<p>Wszystko to okaza\u0142o si\u0119 bardzo, bardzo bolesne. A najgorsze, to by\u0142 m\u00f3j dzie\u0144 urodzin.<\/p>\n<p>\nPi\u0105tek, wiecz\u00f3r. Zarezerwowa\u0142em stolik w ulubionym barze winowym i zaprosi\u0142em kumpli. <\/p>\n<p>Prawie przed wyj\u015bciem dostajemy zadanie zrobi\u0107 alternatyw\u0119, wykonujemy, wszystko w porz\u0105dku. Alternatywa przesz\u0142a, ClickHouse potwierdzi\u0142. Ju\u017c planowali\u015bmy wyj\u015bcie do baru, a tu pisz\u0105, \u017ce brakuje danych. Policzyli\u015bmy \u2013 wszystko si\u0119 zgadza. I poszli\u015bmy \u015bwi\u0119towa\u0107.<\/p>\n<p>W restauracji by\u0142o typowo pi\u0105tkowo ha\u0142a\u015bliwie. Zamawiaj\u0105c napitki i jedzenie, rozsiadali\u015bmy si\u0119 na kanapach. Ca\u0142y czas m\u00f3j Slack niespodziewanie zalewa\u0142y wiadomo\u015bci. Piszli co\u015b o brakuj\u0105cych danych. Pomy\u015bla\u0142em \u2013 co b\u0119dzie, to b\u0119dzie. Szczeg\u00f3lnie dzisiaj.<\/p>\n<p>Blisko jedenastej zacz\u0119li ju\u017c dzwoni\u0107. To by\u0142 kierownik firmy\u2026 \u201eNa pewno postanowi\u0142 mnie pogratulowa\u0107\u201d, pomy\u015bla\u0142em bardzo niepewnie i odebra\u0142em telefon.<\/p>\n<p>I us\u0142ysza\u0142em co\u015b w stylu: \u201eZmarnowali\u015bcie nasze dane! P\u0142ac\u0119 wam, a nic nie dzia\u0142a! Odpowiadali\u015bcie za kopie zapasowe i nie zrobili\u015bcie nic! Naprawiajcie!\u201d \u2013 tylko jeszcze grubiej.<\/p>\n<p>\u2013 Wiesz co, id\u017a do diab\u0142a! Dzisiaj s\u0105 moje urodziny, teraz b\u0119d\u0119 pi\u0107, a nie zajmowa\u0107 si\u0119 waszymi amatorskimi wynalazkami z g\u00f3wna i patyk\u00f3w!<\/p>\n<p>Tak tego nie powiedzia\u0142em. Zamiast tego wyj\u0105\u0142em laptopa i zabra\u0142em si\u0119 do pracy.<\/p>\n<p>Nie, by\u0142em w\u015bciek\u0142y, by\u0142em strasznie w\u015bciek\u0142y! Sypa\u0142em w czat z ironicznymi \u201em\u00f3wi\u0142em\u201d \u2013 bo kopia zapasowa, kt\u00f3ra wcale nie by\u0142a kopi\u0105 zapasow\u0105, oczywi\u015bcie, nic nie uratowa\u0142a. <\/p>\n<p>Wymy\u015blili\u015bmy z ch\u0142opakami, jak r\u0119cznie zatrzyma\u0107 zapis i wszystko sprawdzi\u0107. Rzeczywi\u015bcie upewnili\u015bmy si\u0119, \u017ce cz\u0119\u015b\u0107 danych nie jest zapisywana.<\/p>\n<p>Zatrzymali\u015bmy nagrywanie, policzyli\u015bmy liczb\u0119 zdarze\u0144, kt\u00f3re tam le\u017c\u0105 przez dzie\u0144. Dodali\u015bmy jeszcze danych, z kt\u00f3rych tylko jedna trzecia zosta\u0142a zarejestrowana. Trzy shard'y po 2 repliki. Wstawiasz 100.000 wierszy \u2013 33.000 nie jest zapisywanych.<\/p>\n<p>Panowa\u0142 kompletny chaos. Wszyscy na przemian wysy\u0142ali siebie nawzajem na ...: najpierw poszed\u0142 tam Le\u0144, potem ja sam i za\u0142o\u017cyciel firmy. Tylko dopiero co przyby\u0142y CTO pr\u00f3bowa\u0142 wyci\u0105gn\u0105\u0107 nasze rozmowy telefoniczne z krzykami i korespondencj\u0119 w poszukiwaniu rozwi\u0105zania problemu. <\/p>\n<h3>Nikt tak naprawd\u0119 nie wiedzia\u0142, co si\u0119 dzia\u0142o.<\/h3>\n<p>\nZ ch\u0142opakami by\u0142 zszokowani, kiedy zdali\u015bmy sobie spraw\u0119, \u017ce jedna trzecia wszystkich danych nie tylko nie by\u0142a zapisywana \u2013 po prostu gin\u0119\u0142a! Okaza\u0142o si\u0119, \u017ce porz\u0105dek w firmie by\u0142 taki: po wstawieniu dane by\u0142y nieodwracalnie usuwane, zdarzenia znika\u0142y partami. Wyobrazi\u0142em sobie, jak Siergiej przelicza to wszystko na utracone ruble.<\/p>\n<p>Moje urodziny r\u00f3wnie\u017c posz\u0142y na \u015bmieci. Siedzieli\u015bmy w barze i generowali\u015bmy pomys\u0142y, pr\u00f3buj\u0105c rozszyfrowa\u0107 rzucony rebus. Przyczyna spadku Clickhouse'a nie by\u0142a oczywista. Mo\u017ce to sie\u0107, mo\u017ce to kwestia ustawie\u0144 Linuksa. W zasadzie, wszystko mog\u0142o by\u0107 przyczyn\u0105, hipotez pad\u0142o wystarczaj\u0105co du\u017co.<\/p>\n<p>Nie z\u0142o\u017cy\u0142em przysi\u0119gi programisty, ale porzucenie ch\u0142opak\u00f3w po drugiej stronie kabla by\u0142oby nie w porz\u0105dku \u2013 nawet je\u015bli obwiniali nas za wszystko. By\u0142em w 99% pewien, \u017ce problem le\u017cy nie w naszych rozwi\u0105zaniach, nie po naszej stronie. 1% szansy, \u017ce to jednak my si\u0119 pomylili\u015bmy, pali\u0142 niepokojem. Ale niezale\u017cnie od tego, po kt\u00f3rej stronie tkwi\u0142 problem \u2013 trzeba to by\u0142o naprawi\u0107. Zostawianie klient\u00f3w, jakimi by nie byli, z tak powa\u017cnym wyciekiem danych \u2013 to zbyt okrutne.<\/p>\n<p>Pracowali\u015bmy do trzeciej rano przy stoliku w restauracji. Dodawali\u015bmy zdarzenia, insert select \u2013 i zacz\u0119li\u015bmy wype\u0142nia\u0107 luki. Kiedy straci\u0142e\u015b dane, post\u0119pujesz tak \u2013 bierzesz \u015brednie dane z poprzednich dni i wstawiasz je w stracone.<\/p>\n<p>Po trzeciej rano poszli\u015bmy z kumplem do mnie do domu, zam\u00f3wili\u015bmy piwko z sklepu monopolowego. Siedzia\u0142em z laptopem i problemami Clickhouse'a, a kumpel co\u015b mi opowiada\u0142. W rezultacie, po godzinie obrazi\u0142 si\u0119, \u017ce pracuj\u0119, a nie pij\u0119 piwa z nim i odjecha\u0142. Klasyka \u2013 by\u0142 przyjacielem devopsa.<\/p>\n<p>Do sz\u00f3stej rano na nowo stworzy\u0142em tabel\u0119 i dane zacz\u0119\u0142y si\u0119 zalewa\u0107. Wszystko zacz\u0119\u0142o dzia\u0142a\u0107 bez strat.<\/p>\n<p><\/p>\n<h3>Dalej by\u0142o ci\u0119\u017cko. Wszyscy obwiniali si\u0119 nawzajem o utrat\u0119 danych. Gdyby pojawi\u0142 si\u0119 nowy b\u0142\u0105d, jestem pewien, \u017ce zacz\u0119\u0142aby si\u0119 strzelanina.<\/h3>\n<p>\nW tych k\u0142\u00f3tniach w ko\u0144cu zacz\u0119li\u015bmy rozumie\u0107 - w firmie my\u015bleli, \u017ce jeste\u015bmy tymi facetami, kt\u00f3rzy pracuj\u0105 z danymi i pilnuj\u0105 struktury tabel. Pomyli\u0142em administrator\u00f3w z DBA. I przyszli pyta\u0107 nas, jakby\u015bmy byli administratorami.<\/p>\n<p>Ich g\u0142\u00f3wna pretensja - jakie do diab\u0142a, odpowiadali\u015bcie za kopie zapasowe i nie zrobili\u015bcie ich dobrze, stracili\u015bmy dane. I to wszystko z przekle\u0144stwami.<\/p>\n<p>Chcia\u0142em sprawiedliwo\u015bci. Wykopa\u0142em korespondencj\u0119 i do\u0142\u0105czy\u0142em wszystkie zrzuty ekranu, gdzie Leonid ze wszystkich si\u0142 namawia\u0142 na zrobienie takiej kopii zapasowej, jaka zosta\u0142a wykonana. Ich CTO stan\u0105\u0142 po naszej stronie po moim telefonie. P\u00f3\u017aniej Lenya przyzna\u0142 si\u0119 do winy.<\/p>\n<p>Kierownik firmy, przeciwnie, nie chcia\u0142 obwinia\u0107 swoich. Zrzuty ekranu i s\u0142owa na niego nie dzia\u0142a\u0142y. Uwa\u017ca\u0142, \u017ce skoro jeste\u015bmy ekspertami, to powinni\u015bmy przekona\u0107 wszystkich i upiera\u0107 si\u0119 przy swoim rozwi\u0105zaniu. Wygl\u0105da na to, \u017ce naszym zadaniem by\u0142o nauczenie Lenyi i przy tym, omijaj\u0105c go, wyja\u015bnienie g\u0142\u00f3wnemu wszystkiego, co my\u015blimy o koncepcji kopii zapasowych. <\/p>\n<p>Czata by\u0142a przesi\u0105kni\u0119ta nienawi\u015bci\u0105, ukryt\u0105 i jawn\u0105 agresj\u0105. Nie wiedzia\u0142em, co robi\u0107. Wszystko utkn\u0119\u0142o w martwym punkcie. I wtedy kto\u015b poleci\u0142 mi najprostszy spos\u00f3b - napisa\u0107 bezpo\u015brednio do kierownika i um\u00f3wi\u0107 si\u0119 na spotkanie. W\u0142asia, ludzie w \u017cyciu nie s\u0105 tacy bezczelni, jak w czacie. Na moj\u0105 wiadomo\u015b\u0107 szef odpowiedzia\u0142: przyjed\u017a, nie ma sprawy.<\/p>\n<p>\nTo by\u0142o najdziwniejsze spotkanie w mojej karierze. M\u00f3j sojusznik z klienta - CTO - nie m\u00f3g\u0142 znale\u017a\u0107 czasu. Na spotkanie jecha\u0142em do szefa i Leny.<\/p>\n<p>Raz za razem przewraca\u0142em w g\u0142owie nasz mo\u017cliwy dialog. Uda\u0142o mi si\u0119 przyjecha\u0107 znacznie wcze\u015bniej, na p\u00f3\u0142 godziny. Zacz\u0119\u0142y si\u0119 nerwy, wypali\u0142em 10 papieros\u00f3w. Rozumia\u0142em, \u017ce wszystko - jestem sam. Nie uda mi si\u0119 ich przekona\u0107. I wszed\u0142em do windy.<\/p>\n<p>Podczas wjazdu tak pstrykn\u0105\u0142em zapalniczk\u0105, \u017ce j\u0105 z\u0142ama\u0142em.<\/p>\n<p>W efekcie L\u00e9na na spotkaniu nie by\u0142o. I \u015bwietnie porozmawiali\u015bmy ze szefem! Sergiej opowiedzia\u0142 mi o swoim b\u00f3lu. Nie chcia\u0142 \"automatyzowa\u0107 ClickHouse\" - chcia\u0142 \"\u017ceby zapytania dzia\u0142a\u0142y\".<\/p>\n<p>Nie zobaczy\u0142em w nim koz\u0142a ofiarnego, a dobrego faceta, kt\u00f3ry prze\u017cywa\u0142 za sw\u00f3j biznes, zanurzonego w pracy 24\/7. Czata cz\u0119sto przedstawia nam z\u0142oczy\u0144c\u00f3w, dra\u0144 i g\u0142upk\u00f3w. Ale w \u017cyciu to tacy sami ludzie, jak Ty. <\/p>\n<p>Sergiej nie potrzebowa\u0142 tylko dw\u00f3ch devops\u00f3w w pracy. Problem, kt\u00f3ry mieli, okaza\u0142 si\u0119 znacznie wi\u0119kszy. <\/p>\n<p>Powiedzia\u0142em, \u017ce mog\u0119 rozwi\u0105za\u0107 jego problemy - to po prostu zupe\u0142nie inna praca, a dla niej mam znajomego DBA. Gdyby\u015bmy pocz\u0105tkowo wiedzieli, \u017ce to zadanie dla nich, mogliby\u015bmy unikn\u0105\u0107 wielu trudno\u015bci. Za p\u00f3\u017ano, ale zrozumieli\u015bmy, \u017ce problem le\u017ca\u0142 w kiepskiej pracy z danymi, a nie w infrastrukturze. <\/p>\n<p>U\u015bcisn\u0119li\u015bmy sobie d\u0142onie, a wynagrodzenie wzros\u0142o nam dwukrotnie, ale pod warunkiem - bior\u0119 na siebie ca\u0142y k\u0142opot z ich danymi i ClickHouse'em. W windzie skontaktowa\u0142em si\u0119 z tym samym DBA, Maxem, i w\u0142\u0105czy\u0142em go do pracy. Musia\u0142em przekszta\u0142ci\u0107 ca\u0142y klaster.<\/p>\n<p>\nW przyj\u0119tym projekcie by\u0142o mn\u00f3stwo szale\u0144stw. Zaczynaj\u0105c od wspomnianego \u201ebackup\u2019u\u201d. Okaza\u0142o si\u0119, \u017ce ten sam klaster \u201ebackup\u2019owy\u201d nie by\u0142 izolowany. Testowano tam wszystko, czasem nawet uruchamiano w produkcji.<\/p>\n<p>Prowadz\u0105cy deweloperzy stworzyli swoje w\u0142asne \u201ewstawiaj\u0105ce\u201d narz\u0119dzie danych. Dzia\u0142a\u0142o to tak: zbiera\u0142o pliki, uruchamia\u0142o skrypt i wstawia\u0142o dane do tabeli. G\u0142\u00f3wnym problemem by\u0142o to, \u017ce ogromna ilo\u015b\u0107 danych by\u0142a przetwarzana dla jednego najprostsze zapytania. Zapytanie \u0142\u0105czy\u0142o dane sekundowo. Wszystko dla jednej liczby - sumy dziennej.<\/p>\n<p>Deweloperzy niew\u0142a\u015bciwie korzystali z narz\u0119dzia do analityki. Wchodzili do Grafany, pisali swoje 'kr\u00f3lewskie' zapytanie. Wy\u015bwietla\u0142o dane za 2 tygodnie. Powstawa\u0142 pi\u0119kny wykres. Ale w rzeczywisto\u015bci zapytanie danych trwa\u0142o co 10 sekund. Wszystko to gromadzi\u0142o si\u0119 w kolejce, poniewa\u017c ClickHouse po prostu nie radzi\u0142 sobie z przetwarzaniem. Tu w\u0142a\u015bnie kry\u0142a si\u0119 g\u0142\u00f3wna przyczyna. W Grafanie nic nie dzia\u0142a\u0142o, zapytania sta\u0142y w kolejce, stale przychodzi\u0142y stare, nieaktualne dane.<\/p>\n<p>Przeorganizowali\u015bmy klaster, przerobili\u015bmy wstawianie. Deweloperzy przepisali swoje 'wstawiaj\u0105ce' narz\u0119dzie i zacz\u0119\u0142o ono poprawnie shardowa\u0107 dane.<\/p>\n<p>Max przeprowadzi\u0142 pe\u0142ny audyt infrastruktury. Opracowa\u0142 plan przej\u015bcia na pe\u0142noprawny backend. Ale to nie zadowoli\u0142o firmy. Oczekiwali od Maxa magicznego sekretu, kt\u00f3ry pozwoli pracowa\u0107 w stary spos\u00f3b, ale efektywnie. Za projekt wci\u0105\u017c odpowiada\u0142 Le\u0144ka, kt\u00f3ry niczego si\u0119 nie nauczy\u0142. Z ca\u0142ej propozycji zn\u00f3w wybra\u0142 swoj\u0105 alternatyw\u0119. Jak zawsze, by\u0142a to najbardziej wyrazista... odwa\u017cna decyzja. Le\u0144ka uwa\u017ca\u0142, \u017ce jego firma ma szczeg\u00f3ln\u0105 drog\u0119. Ciernist\u0105 i pe\u0142n\u0105 lodowc\u00f3w.<\/p>\n<p>W\u0142a\u015bciwie na tym si\u0119 rozstali\u015bmy - zrobili\u015bmy, co mogli\u015bmy.<\/p>\n<p>\nZ pe\u0142nymi do\u015bwiadczeniami, m\u0105drzejsi o t\u0119 histori\u0119, otworzyli\u015bmy w\u0142asny biznes i sformu\u0142owali\u015bmy dla siebie kilka zasad. Teraz nigdy nie zaczynamy pracy tak, jak wtedy.<\/p>\n<p>Dibiwacz Max do\u0142\u0105czy\u0142 do nas po tym projekcie i wci\u0105\u017c \u015bwietnie razem pracujemy. Case z ClickHouse nauczy\u0142 nas przeprowadza\u0107 pe\u0142ny i gruntowny audyt infrastruktury przed rozpocz\u0119ciem pracy. Zg\u0142\u0119biamy, jak wszystko dzia\u0142a, a dopiero potem przyjmujemy zadania. Gdyby\u015bmy wcze\u015bniej od razu ruszyli do obs\u0142ugi infrastruktury, to teraz najpierw realizujemy projekt jednorazowy, kt\u00f3ry pomaga zrozumie\u0107, jak przywr\u00f3ci\u0107 j\u0105 do stanu roboczego. <\/p>\n<p>I tak, omijamy projekty z kiepsk\u0105 infrastruktur\u0105. Nawet za du\u017ce pieni\u0105dze, nawet w ramach przyja\u017ani. Prowadzenie chorych projekt\u00f3w jest nieop\u0142acalne. \u015awiadomo\u015b\u0107 tego pomog\u0142a nam rozwin\u0105\u0107 si\u0119. Albo jednorazowy projekt na uporz\u0105dkowanie infrastruktury, a potem umowa na serwis, albo po prostu przechodzimy obok. Obok kolejnego g\u00f3ry lodowej.<\/p>\n<p><i>P.S. Wi\u0119c je\u015bli masz pytania dotycz\u0105ce swojej infrastruktury, <noindex><a rel=\"nofollow\" href=\"https:\/\/fevlake.com\"><b>\u015bmia\u0142o zostawiaj zg\u0142oszenie<\/b><\/a><\/noindex>.<\/p>\n<p>Mamy 2 darmowe audyty miesi\u0119cznie, by\u0107 mo\u017ce to w\u0142a\u015bnie Tw\u00f3j projekt b\u0119dzie w ich liczbie.<\/i><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/rebrainme\/blog\/522108\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u043b\u0430 \u043c\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u0435\u0432\u043e\u043f\u0441\u0430. \u0415\u0449\u0435 \u0432 \u0434\u043e\u043a\u043e\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430, \u0437\u0430\u0434\u043e\u043b\u0433\u043e-\u0437\u0430\u0434\u043e\u043b\u0433\u043e \u0434\u043e \u043d\u0438\u0445, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441 \u043f\u0430\u0440\u043d\u044f\u043c\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0435 \u0434\u0435\u043b\u043e \u0438 \u0444\u0440\u0438\u043b\u0430\u043d\u0441\u0438\u043b\u0438 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0437\u0430\u043a\u0430\u0437\u0430\u0445, \u043c\u043d\u0435 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443 \u0443\u043f\u0430\u043b\u043e \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430, \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430\u0441\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e \u043e\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430 \u0442\u044b\u0441\u044f\u0447\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a \u043d\u0430\u043c \u043e\u043d\u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u0441\u043e \u0441\u043b\u043e\u0432\u0430\u043c\u0438: \u0440\u0435\u0431\u044f\u0442, \u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96000,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95999","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=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u041f\u043e\u043a\u0430 \u0432\u0441\u0435 \u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u043b\u0438 \u043c\u043e\u0439 \u0434\u0435\u043d\u044c \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u044f \u0434\u043e \u0443\u0442\u0440\u0430 \u0447\u0438\u043d\u0438\u043b \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u2014 \u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u044b \u0432\u0430\u043b\u0438\u043b\u0438 \u043d\u0430 \u043c\u0435\u043d\u044f \u0441\u0432\u043e\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki\" \/>\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-10-06T11:41:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-06T11:41:58+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\udd47Podczas gdy wszyscy \u015bwi\u0119towali moje urodziny, ja do rana naprawia\u0142em klaster \u2013 a deweloperzy zrzucali na mnie swoje b\u0142\u0119dy | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u041f\u043e\u043a\u0430 \u0432\u0441\u0435 \u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u043b\u0438 \u043c\u043e\u0439 \u0434\u0435\u043d\u044c \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u044f \u0434\u043e \u0443\u0442\u0440\u0430 \u0447\u0438\u043d\u0438\u043b \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u2014 \u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u044b \u0432\u0430\u043b\u0438\u043b\u0438 \u043d\u0430 \u043c\u0435\u043d\u044f \u0441\u0432\u043e\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 | ProHoster","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/poka-vse-prazdnovali-moj-den-rozhdeniya-ya-do-utra-chinil-klaster-a-razraby-valili-na-menya-svoi-oshibki","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-10-06T11:41:58+00:00","article:modified_time":"2020-10-06T11:41:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95999","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"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 10:53:26","updated":"2022-10-01 11:21:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/95999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=95999"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/95999\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/96000"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=95999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=95999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=95999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}