#16 DevOps – kim jest i czym się zajmuje? Łukasz Kasprzak.
______________________________________________________ Podcast DEVision to polski podcast IT dla programistów, którzy chcą rozwijać swoją wiedzę, posłuchać o ciekawych projektach oraz zainspirować się innymi. A to wszystko w przyjemnej formie rozmowy, której możesz słuchać w tramwaju, na siłowni, a nawet w pracy 😉 💌 Zapisz się do naszego newslettera: https://bit.ly/37TTNCK 🌏 Więcej o nas przeczytasz na stronie: https://bit.ly/3Pttiox Obserwuj nas na social media: 🚀 LinkedIn: https://bit.ly/3PxlHFQ 🎧 Spotify: https://spoti.fi/39xU0fm 🎧 iTunes: https://apple.co/3PsjhrQ
W mojej opinii, tak jakby szukaliśmy optymalizacji w software, no i w czasach, kiedy mamy już rozwiązania cloudowe, nie ma potrzeby, aby te serwery fizycznie gdzieś trzymać. Możemy je sobie zażądać na żądanie, one będą gotowe dla nas po minucie. Więc to działa, to pomaga. W jaki sposób tutaj DevOps może pomóc? Oczywiście możemy użyć jakiejś konsoli AWS-owej, gdzieś sobie wyklikamy, że chcemy mieć serwer, on będzie stał, będzie gotowy, tylko że za chwilę możemy mieć potrzeby, aby postawić drugi taki sam serwer, z takimi samymi ustawieniami. No trzeci, czwarty. Jeżeli będziemy to wyklikiwać, bardzo szybko zapomnimy o jakichś ustawieniach, że coś zmieniliśmy, że coś tam było zmienione i no mamy te serwery w różnym stanie.
No jasne. Łatwo jest się pomylić, stawiając nowy powiedzmy serwer, zapomnieć tak jak wspomniałeś o czymś albo po prostu potrzebujemy zmienić jedną rzecz, mieliśmy zmienić na czterech, zmieniliśmy na trzech serwerach. Dokładnie. Środowiska się zaczynają rozjeżdżać. To jest znany problem. Tak, więc tutaj niby jest Cloud, ale też można pójść w ślepą uliczkę. No i tutaj z pomocą przychodzą właśnie rozwiązania DevOpsowe. Mamy takie tule jak Terraform, które pozwalają nam za pomocą Infrastructure as a Code opisać, co my tak naprawdę potrzebujemy. Jeżeli potrzebujemy więcej instancji, po prostu odpalamy ten nasz skrypt Terraformowy z innymi parametrami i możemy replikować Na zażądaną ilość tych maszyn, tych usług, tak aby to było powtarzalne.
Zdeployujemy. Czyli w czym to może pomóc? Na przykład zbieraniem logów z poszczególnych aplikacji. Tutaj jako programista aplikacji nie musimy się martwić, gdzie te logi trafią, w jaki sposób będziemy je czytać, tylko po prostu piszemy wymagania funkcjonalne, biznesowe. Natomiast sam Kubernetes potem zbiera nam logi, Przesyła je w jakieś miejsce, no i tym zajmuje się DevOps. No i tutaj możemy je przesyłać teraz właśnie w cloudzie, gdy mamy potrzebę skalowania, gdy mamy już nie tylko jedną instancję z aplikacją, mamy ich wiele, no i może wystąpić jakiś problem, potrzebujemy sprawdzić, gdzie to się działo, więc tak wchodząc na każdy z tych maszyn, która działa, która ma uruchomioną aplikację, może to być ciężkie do Znalezienia.
Może nie potrzebujemy tak dużo java developerów albo frontend inżynierów, ale potrzebujemy właśnie tych skillów, które na jakimś tam cloudzie nam pozwolą łatwo skalować aplikacje, które będziemy tam uruchamiać. Czy twoim zdaniem DevOps jest potrzebny w każdym zespole? Myślę, że nie, ponieważ są zespoły pewnie dojrzałe, które są samowystarczalne już na takim etapie i wiedzą, jak zbudować tam infrastrukturę, jak jej używać i wtedy same sobie to zrobią. Zazwyczaj są to może jakieś mniejsze firmy, które zatrudniają pięciu osób. No i tak jakby łatwo jest określić, czego potrzebują.
Więc tak samo właśnie w IT dąży się do tego, żeby te zasoby, którymi kontrolujemy, żeby one były w pełni automatyczne, żebyśmy mogli je łatwo podmienić. Jeżeli coś nie działa, podmieniamy, resetujemy i tak jakby operacyjnie wracamy do stanu. Czy są jakieś narzędzia? Bez których nie wyobrażasz sobie, że DevOps mógłby pracować? Tak, no tutaj myślę, że właśnie kierunek taki Infrastructure as a Code, czyli trzymanie całej infrastruktury w kodzie. No i już wspomniany Terraform, bądź jakieś inne rozwiązania. Natomiast dla mnie to jest podstawa właśnie, aby trzymać całą naszą infrastrukturę w kodzie, żebyśmy mogli łatwo ją rozszerzać. Następnie pewnie znajomość innych modeli bądź narzędzi, do których możemy robić deployments, czyli sam Kubernetes, ale też Kubernetes nie od strony takiej operacyjnej, jak on funkcjonuje, ale też w jaki sposób zainstalować go, uruchomić nawet na jakichś providerach cloudowych, czyli AWS, w jaki sposób tam możemy uruchomić taki klaster.
Innym tutaj zagadnieniem też w tym kierunku jest, powiedzmy, nie wiem, samą Availability, czyli musielibyśmy, żeby nasz serwis był dostępny w kilku regionach. Jak coś takiego osiągnąć? Czyli dobra znajomość, powiedziałbym, dostawców cloudowych, co oferuje, nie wiem, Google versus AWS, bądź może niektóre firmy mają wymagania, żeby coś postawić on-prem, więc tutaj też dobrze jest mieć świadomość, jak takiego kubernetesa zainstalować na takich własnych systemach. Innymi narzędziami jest powiedzmy cały stack Observability. To jest jak dla mnie dosyć mocna rzecz, czyli tutaj Prometheus, Grafana, narzędzia, które potrafią nam zbierać metryki z naszych aplikacji, zbierać logi, umożliwić programistom przeszukiwanie tych logów, przeszukiwanie tych metryk, na podstawie metryk generować alerty.
Więc tutaj ja bym traktował DevOpsa na równi z programistami. To jest tak samo osoba, która gdzieś tam koduje. Po prostu wykorzystuje inne narzędzia, inne języki. No ale w sumie razem, jak ich połączymy, no to mamy zgrany zespół, który jest w stanie dowieźć całość. Na co zwracasz uwagę, kiedy rekrutujesz jakąś osobę do zespołu? Nasza organizacja jest relatywnie niewielka, więc tutaj mamy dosyć jasno określone wymagania, które gdzieś stawiamy dla osoby na stanowisku DevOps, więc staramy się tak jakby dopasować umiejętność i poprzednie doświadczenie z tym, co my chcemy osiągnąć. Dla mnie na przykład bardzo ważne jest doświadczenie z Cloudem, z AWSem, doświadczenie z Terraformem, żeby taka osoba już Wcześniej korzystała z tego typu narzędzi.
No tak, to na pewno cały czas i to często pytamy naszych gości, czego powinniśmy się uczyć, bo to tak jak mówisz, w tej branży cały czas branża idzie do przodu, rozwija się, warto się uczyć. Tylko chodziło mi o to, jak twoim zdaniem powinien wyglądać rozwój u DevOpsa. Powinien wykazywać jakieś zainteresowanie właśnie nowymi rozwiązaniami. Warto śledzić fundację CNCF, która aprobuje narzędzia, które są w standardzie cloudowym. Pojawia się dużo nowych nowości, nowych rozwiązań, kierunków. Pewnie warto też śledzić konferencję CubeCon międzynarodowa. Bardzo dużo można się nauczyć kierunków, którym zmierza całe środowisko cloudowe. No oczywiście pewnie można obserwować YouTube'a, czytać jakieś artykuły.
Pokazano wszystkie 8 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Łukasz opisuje proces DevOpsa, od Day Zero do Day Two.
Łukasz opisuje automatyzację procesu i rolę DevOpsa w projekcie.
Opisania roli DevOpsa w środowisku produkcyjnym i monitorowaniu.
Różne modele zespołów DevOps i ich zastosowanie.
Opis wymagań i narzędzi DevOpsa oraz ich zastosowania w firmie.
Opis zmian w strukturze zespołu i roli DevOpsa w nowych technologiach.
Opis procesu rekrutacji DevOpsa w firmie i wymagania do tej roli.
Rozmowa o testowaniu w środowisku DevOps, opowieści o testowaniu na produkcji i konsekwencjach.
Komentarz o potrzebie kontynuowania edukacji i śledzenia nowości w roli DevOpsa.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
Kliknij, aby znaleźć fragmenty, w których pada.
Podcast DEVision to polski podcast IT dla programistów, którzy chcą rozwijać swoją wiedzę, posłuchać o ciekawych projektach oraz zainspirować się innymi. A to wszystko w przyjemnej formie rozmowy, której możesz słuchać w tramwaju, na siłowni, a nawet w pracy 😉
💌 Zapisz się do naszego newslettera: https://bit.ly/37TTNCK
🌏 Więcej o nas przeczytasz na stronie: https://bit.ly/3Pttiox
Obserwuj nas na social media: 🚀 LinkedIn: https://bit.ly/3PxlHFQ
🎧 Spotify: https://spoti.fi/39xU0fm
🎧 iTunes: https://apple.co/3PsjhrQ