DevOps - jak to wygląda?

0

Wiem, że to nie temat czysto programistyczny ale zapewne wielu z Was spotkało się z DevOps'em.

Zawsze interesowała mnie administracja serwerami, te wszystkie rzeczy ustawiane bez interfejsu graficznego to fajna sprawa. Przechodząc do sedna, co taki devops powinien umieć i w jaki sposób może się doszkalać? Jak wygląda wejście na takie stanowisko juniora - bardziej jest to przejście załóżmy z mid developera na devopsa czy można startować bez doświadczenia?

potrafię kodowac w c# - nie jestem mistrzem ale cos tam umiem.

1

Zasadniczo bycie devOpsem nie jest podobne do bycia programistą, bo przeciętny programista pisze jakąś aplikację - webową, desktopową, mobilną etc. natomiast devOps dba o to, co zwykłego programisty w ogóle nie obchodzi - konfiguruje i zarządza serwerami, śledzi ich stan, tworzy niezbędne do tego skrypty etc. Na głowie masz wszystko, z czego się składa aplikacja z wyłączeniem baz danych (do tego powinni być jacyś admini baz) czyli serwery, różne usługi w chmurze- zarządzanie statycznymi plikami - cdn jakiś np. akamai, AWS itp., narzędzia do cachowania - redis, couchbase, kolejki np. rabbitMQ, CI - buildy i deployment, robienie upgrade'u na wszystkim wcześniej wymienionym etc.
Przydatne umiejętności nic nie mają wspólnego z C# :) Devops musi:

  • dobrze znać Linuxa - dobra znajomość basha + serwisów w systemie + zarządzanie uprawnieniami - nie każdemu dasz roota

  • dobrze znać coś, w czym się lepiej pisze skrypty niż w bashu ;) Kluczem dla devOpsa jest znajomość Pythona - otwiera on drzwi do wielu wygodnych narzędzi np. do Ansible'a

  • mieć wysoką odporność na stres, bo jak programista coś zwali to robimy rollback zmian i nie ma tragedii, a jak coś się zwali na serwerze, może być grubszy problem

  • być otwartym na nowe rzeczy, które raz po raz wychodzą w tej dziedzinie np. ostatnio wyszła nowa wersja AWS ELB, jeśli ktoś z tego korzysta, to będzie zainteresowany

Ogólnie praca devOpsa ma tę samą dewizę co Spider-Man ;)

Ps. Nie trzeba być devOpsem, by grzebać w konsoli. 95% czasu poza kodowaniem spędzam w shellu, by sprawdzać wyniki tego, co zrobiłem (robię backend).

2

@Pipes trochę za bardzo poleciał. To co opisał to jest ta Ops część DevOpsów.

Dokładniej DevOps to nie jest "rola" czy "zawód" a zbiór praktyk, które muszą być wdrożone przez cały zespół i opierają się głównie na współpracy Developerów oraz SysOpsów (Operations + System Administrations). Cechy, które musi posiadać dobry team/projekt DevOps:

  • Dobrze opracowany CI + CD tak, że każda zmiana jest automatycznie deployowana (niekoniecznie na produkcję) oraz łatwość deploymentu na produkcję.
  • Infrastructure as a Code - czyli, że wszystkie maszyny, które są odpalone nie są stawiane "z palca" tylko jest gdzieś plik opisujący całość infrastruktury, który w razie potrzeby pozwala całość ubić i postawić na nowo od zera.
  • Configuration Management - masz gdzieś pliki opisujące konfigurację każdej z maszyn, przez co każda maszyna może być traktowana jako bydło a nie jako zwierzątko (o tym za chwilkę)
  • Monitoring infrastruktury - masz informacje nt. stanu serwerów oraz metryki jak się to zmieniało w czasie, dodatkowo zbierasz logi, które informują Cię nt. tego co się dzieje źle w twojej aplikacji

Co do pets vs cattle:

zwierzątko - masz jedno, nadajesz mu imię, dbasz, troszczysz się, głaszczesz, przycinasz ogonek w kształcie serduszka, a jak choruje, to biegasz do weterynarza
bydło - masz ok. 1024 krów, które biegają sobie na twoim gigantycznym rancho w TX, zaglądasz do nich raz w miesiącu, by policzyć i zobaczyć jak się ma, jak któreś padnie, to smutno, ale wliczasz to w koszty i zaraz pojawi się nowe, niemal identyczne

0
Pipes napisał(a):

Przydatne umiejętności nic nie mają wspólnego z C# :) Devops musi:

  • dobrze znać Linuxa - dobra znajomość basha + serwisów w systemie + zarządzanie uprawnieniami - nie każdemu dasz roota

Albo Windowsa, bo jeśli infrastruktura jest na Windzie, to znajomość Linuksa się średnio przyda.

1 użytkowników online, w tym zalogowanych: 0, gości: 1