Blog (1)
Komentarze (3)
Recenzje (0)

Czy Windows nadaje się do "poważnej pracy"? Z pamiętnika linuksiarza.

@mkkotCzy Windows nadaje się do "poważnej pracy"? Z pamiętnika linuksiarza.16.05.2020 19:39

Wrażenia z lektury

Na łamach tego serwisu często znajduję wspomnienia z nieudanych migracji na Linuksa albo poradniki jak tym wybrakowanym systemem zastąpić Windows i dlaczego się nie da.

Microsoft the Musical. Prawa autorskie: Microsoft.
Microsoft the Musical. Prawa autorskie: Microsoft.

Pod artykułami pojawiają długie dyskusje, w których ludzie się obrażają i udowadniają wyższość jednego systemu nad drugim. Najbardziej bawią mnie artykuły, w których puszcza się oko czytelnikom tekstem typu "nowa wersja programu X pojawi się w wydaniu Y w Ubuntu, chyba że jesteś użytkownikiem Archlinuksa albo kompilujesz ze źródeł" ;)

Tak się składa, że jestem użytkownikiem Archlinuksa od 11 lat, wcześniej korzystałem z innych dystrybucji. Prywatnie nie używam systemów Microsoftu od 15 lat, moim ostatnim Windowsem był XP, wcześniej 98. Można więc powiedzieć, że o Windows nie mam pojęcia. Czasem zdarzał się w moim życiu zawodowym okres, kiedy byłem zmuszony korzystać z tego systemu, ale albo wystarczała mi przeglądarka + jakiś program, albo stawiałem wirtualkę z Linuksem.

Typowy dzień linuksiarza: tuxracer i lektura dobrychprogramów
Typowy dzień linuksiarza: tuxracer i lektura dobrychprogramów

W poprzedniej firmie miałem Maca. Poza kłopotliwym dla mnie układem klawiatury i koniecznością zainstalowania programu do odwrócenia kierunku kółka myszy, wszystko w zasadzie działało. Pamiętam problemy z rozłączającym Bluetoothem, to że nie dało się odtwarzać poprawnie dźwięku z kilku źródeł naraz i zawieszający się menedżer okien. To jest jednak betka w porównaniu z problemem, który mam teraz.

W obecnej firmie mam problem w postaci Windows 10. Nie wchodząc w szczegóły, zamówienie laptopa z innym systemem miało być formalnością, a w praktyce użeram się z tym już trzeci miesiąc. Jeśli go szybko nie dostanę, po prostu zmienię zleceniodawcę. Nawet na postcovidowym rynku w moim zawodzie i z moim doświadczeniem nie jest to żadnym problemem.

Czym się zajmuję

I teraz do rzeczy: jestem DevOpsem. DevOps to taki człowiek, który automatyzuje kompilację, testowanie i deployment (instalację) oprogramowania, tworzy wirtualną infrastrukturę w chmurze, automatyzuje tworzenie tej infrastruktury, pisze skrypty między innymi w Pythonie i Bashu, konteneryzuje aplikacje, konfiguruje serwery (chodzi mi o programy, nie o sprzęt), tworzy loadbalancery sieciowe, korzysta z repozytoriów kodu, integruje ze sobą różne usługi poprzez kolejki, API lub bez niego, czasem nawet pisze całe serwisy webowe lub programy i robi wiele innych ciekawych rzeczy.

W pracy najczęściej wymagane jest ode mnie wykonanie konkretnego zadania w konkretnym czasie, a w jaki sposób to zrobię, jest płacącym za moją pracę obojętne. Mimo, że pracuję w 100% z domu na własny rachunek jako firma, dostęp do infrastruktury firmy dla której wykonuję zlecenia najczęściej wymaga użycia firmowego sprzętu, którego otrzymuję kurierem. Można to obchodzić, ale nie mam czasu na takie zabawy i chcę się stosować do zasad.

Jeszcze odnosząc się do komentarzy, że Linukiarze to pryszczate nastolatki, które siedzą w piwnicy. Ze statystyk Stack Overflow z 2018 roku wynika, że DevOps jest najlepiej opłacaną specjalnością informatyczną poza "Engineering manager", a najczęściej używanym środowiskiem programistycznym jest Vim (taki linuksowy edytor tekstu, z którego zwykli użytkownicy nie wiedzą jak wyjść). Osobiście nie przepadam za Vimem, ale potrafię z niego korzystać w podstawowym zakresie.

Jako DevOps dostałem Windows 10 do pracy. No dobra. Nie będę rozpaczał, szybko się uczę, ogarnę temat. Ogarnąłem, ale nie powiem żeby na tym się dało wygodnie pracować. Aha, mam 16GB RAM-u jakby ktoś pytał. Nie wiem czy to dużo czy mało, mój prywatny komputer ma 4GB, jakieś stare APU i działa zdecydowanie lepiej. Nie wiem, być może jestem już w tym wieku, kiedy człowiek chce normalnie korzystać z komputera zamiast jarać się cyferkami.

Terminal

W Windows 10 brakuje porządnego terminala, czyli podstawowego narzędzia pracy DevOpsa i administratora systemów. Mimo, że Windows wzbogacił się o swój "odpowiednik" Basha w postaci PowerShella oraz o WSL czyli o taki jakby emulator Linuksa, to nie ma wygodnego sposobu na korzystanie z tych dobrodziejstw. Po szybkim przeszukaniu Google'a zainstalowałem Cmdera. Ponoć ten program wziął się z frustracji z powodu bylejakości istniejących terminali, tak twierdzi autor. Ja tam jestem całkiem sfrustrowany korzystając z Cmdera. Choćby dlatego, że załadowanie powłoki, w której można wykonywać polecenia zajmuje jakieś 10 sekund, a w cmderowym Bashu nie działają poprawnie ścieżki do plików i nie da się na przykład ustawić katalogu roboczego w dockerze poleceniem:

docker run -w katalog_roboczy

Na Macu korzystałem z wbudowanego terminala, który spełniał swoje zadanie i nie sprawiał żadnych problemów. Jedyne co mnie zdziwiło na początku to nieco inne zachowanie znanych narzędzi (sed, grep), ale można zainstalować bez problemu ich odpowiedniki GNU.

Docker

Źródło: użytkownik dockerfile na reddit.com
Źródło: użytkownik dockerfile na reddit.com

To jest kompletna tragedia. Na początku wyjaśnienie: docker został stworzony jako typowo linuksowe narzędzie i nie da się z niego natywnie korzystać na innych systemach operacyjnych. To, że w ogóle działa, jest kwestią uruchomienia przez niego w tle maszyny wirtualnej z niewielką dystrybucją Linuksa. Na Macu właściwie nie widać prawie żadnej różnicy w stosunku do natywnej linuksowej wersji. Nie można tego powiedzieć o Windows. Poza wspomnianym już problemem ze ścieżkami dostępowymi wszystko po prostu trwa wieki. Wyświetlenie listy kontenerów poleceniem docker ps trwa chyba z 5 sekund, docker build, który ma zbudować prosty obraz oparty o Alpine'a (dystrybucję Linuksa, która waży 2,5MB) zajmuje z 5 minut (na Linuksie zajęłoby to kilka sekund). Trzeba oczywiście to powtarzać, bo człowiek programując czasem robi literówki. Docker jest w zasadzie nieużywalny. Jest to oczywiście moje podstawowe narzędzie pracy.

Hyper-V

Wiedzieliście, że nie można mieć Dockera i Virtualboxa? Ja nie wiedziałem, bo dokładnie taką konfigurację miałem zawsze na Macu. Okazuje się, że Docker pod Windows korzysta do uruchomienia maszyny wirtualnej z Linuksem z wbudowanego wirtualizatora Hyper-V, który nie wiedzieć dlaczego "blokuje miejsce" na procesorze innym wirtualizatorom. Oczywiście wyłączenie lub włączenie Hyper-V wymaga restartu systemu. Doszedłem więc do racjonalnego wniosku, że jeśli chcę mieć maszynę wirtualną pod Windows, to powinienem skorzystać z Hyper-V Managera. Niestety przez default switch nie udało mi się połączyć z siecią korporacyjną, przez ustawienie NAT-u też nie. Straciłem na to cały dzień. Pod Virtualboksem po prostu działa od razu. No ale mając Virtualboksa nie mogę korzystać z windowsowej wersji Dockera.

WSL

WSL czyli Linux dostępny z poziomu Windows. WSL jest fajny, chyba że chcesz uruchomić Dockera (albo jakąkolwiek inną usługę systemową). Ponoć to działa już na WSL 2.0, ale firmowy laptop nie może należeć do Windows Insider program, co jest wymagane, aby mieć WSL 2.0. Sytuacja ma się wkrótce zmienić. Poza tym z WSL-a dostępny jest tylko tekstowy interfejs. Tak, my linuksiarze lubimy czasem też skorzystać z GUI.

Źródło: Microsoft
Źródło: Microsoft

NTFS

Robiliście kiedyś git pull większego repozytorium i czekaliście pół godziny na odtworzenie wszystkich plików? Nie? Spróbujcie na Windows.

Usuwaliście kiedyś plik, który jest otwarty w jakimś programie? Ja to robię non-stop. Oczywiście nie na Windows, bo plik jest używany. Nawet jeśli nie jest.

A co jeśli trzeba zacommitować w repozytorium plik z konkretnymi uprawnieniami? No ja to robię z WSL-a, bo na NTFS-ie się nie da.

Atom

W wielu artykułach przeciwko Linuksowi pojawia się argument, że oprogramowanie X nie działa albo działa gorzej na Linuksie niż na Windows. Pojawiają się wtedy kontrargumenty, że przecież to nie wina Linuksa. I odpowiedź, że nie opłaca się robić dopracowanego oprogramowania na mało popularny system.

Developerzy Atoma widać uważają to samo o Windowsie, ponieważ na tym systemie ten edytor tekstu zjada po jakimś czasie 100% procesora, niczego nie robiąc. Sprawdziłem kilka wersji wstecz i jest tak samo. Na Linuksie i Macu działa.

Instalacja programów i Windows Update

Po zainstalowaniu czegoś w rodzaju Dockera czy Hyper-V albo Virtualboxa trzeba robić restart systemu. DLACZEGO?? Nie mam na to czasu. Nie mam czasu czekać, aż docker odpali się po 5 minutach od startu systemu (w Linuksie trwa to dokłanie 0,856s, a instalacja zajmuje około 7 sekund). Poza tym restartując system muszę czekać aż znowu poinstalują się aktualizacje. Raz system nie wyświetlił żadnego komunikatu na ten temat, po prostu była animacja i informacja, że system startuje. Trwało to tak długo, że zaniepokojony zadzwoniłem do helpdesku i zdążyłem po angielsku założyć ticket na to, że system przestał mi się uruchamiać.

Źródło: drivereasy.com
Źródło: drivereasy.com

Na RedHacie skonfigurowanym na moim roboczym laptopie przez inną dużą firmę, w której pracowałem, też były automatyczne aktualizacje. Przez ponad 2 lata mojej pracy system jednak nigdy nie wymagał z tego tytułu restartu i nigdy nie uruchamiał się dłużej niż normalnie. Kiedyś pojawiła się na pulpicie ikonka OPCJONALNEGO przejścia z RedHata 6 do 7 i to oczywiście trwało dłużej i wymagało restartu. Jednego. Wszystko działało potem normalnie.

Anywirus

Typowe zachowanie Nortona na moim Windowsie
Typowe zachowanie Nortona na moim Windowsie

Tak, wiem, na Maca i Linuksa też są wirusy. Ale jakoś przez ponad rok w pracy na Macu i przez 16 lat w domu obywam się bez antywirusa. Na Windows jest to natomiast coś, czego nie mogę się bezpiecznie pozbyć. Być może gdyby nie Norton, to część problemów opisanych pod nagłówkiem NTFS nie miałoby miejsca?

CRLF

Windows ma inny znak końca linii niż systemy uniksowe. Podobnie ma inny znak przechodzenia między folderami. Cieszę się, że nie korzystają już z kodowania Windows-1250 i przestawili się wreszcie na UTF-8. Mogę przynajmniej robić i udostępniać napisy do filmów bez cudowania. Częściowo też ogarnęli korzystanie z ukośników. Czekamy na LF. Jeśli kiedyś wrzucisz do repozytorium skrypt, który się wywali z powodu jakiegoś tabulatora, którego nigdy nie wstawiałeś, to wiedz że to wina innego znaku przejścia do nowej linii. Trzeba tego za każdym razem pilnować, szczególnie kiedy inni pracownicy korzystają z Windows.

Słowem podsumowania

Jak wykazują podane przykłady, Windows, co jest często argumentem podnoszonym w tym serwisie w stosunku do Linuksa, "nie nadaje się do poważnej pracy".

DevOps jako praktykant zarabia 3,5 tys. zł, jako mid 11-16 tys., a jako senior ok. 16-22 tyś. netto na fakturze. Oczywiście otrzymuje ciekawe projekty i zlecenia od największych światowych korporacji. Zatem to chyba jest całkiem poważna praca. Nie ma DevOpsa, który nie zna się na Linuksie. Nie da się ominąć tego tematu przy wytwarzaniu i publikowaniu aplikacji webowych. Jak widać jednak na moim przykładzie, jest DevOps, który nie zna się na Windows. I nie musi się znać, bo już zamówił Maca (zdecydowała lepsza matryca).

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.