Gdzie mam rozpocząć naukę DevOps?

10

Szukanie „jak zacząć od devopów” naprawdę nie pomogło, ponieważ wielu z nich lubi to i to, a także wiele innych, tak naprawdę nie kieruje mnie we właściwy sposób. Każdy film z youtube, który do tej pory widziałem, również nie pomógł (ponieważ nie potrzebuję filmów wyjaśniających mi, czym jest Dev), ten film jest jedynym prawdziwym wyjątkiem do tej pory (pokazuje, jak rzeczy się ze sobą integrują).

Jestem CCNA, a także bardzo biegły w DBMS-ach (obecnie uczę się wykonywania równoległości, a także innych rzeczy).

Ale nie mam pojęcia, czego powinienem się najpierw nauczyć (ani gdzie znaleźć odpowiednie zasoby na ten temat).

Mam zamiar ukończyć szkołę, więc nie mam dostępu do prawdziwych doświadczeń.

Wszelkie porady lub pomoc?

Chessbrain
źródło

Odpowiedzi:

5

Devops odnoszą się do wykonywania oprogramowania. Chodzi o to, jak uruchomić aplikację lub usługę. Zatem narzędzia do konfiguracji serwerów, maszyny wirtualne i kontenery to kolejne kroki. Proponuję przejrzeć dokumentację tych narzędzi i wyciągnąć z nich wnioski, takie jak odkrywanie, obserwowalność, skalowalność i redundancja. Wystarczy wymienić kilka przykładów:

Konfiguracja serwera:

  • PXE
  • Ansible
  • Marionetka

VM:

  • Włóczęga
  • QEMU

Pojemnik:

  • Doker
  • Kubernetes

EDYCJA: Przegląd technologii chmurowych:

Jeśli architektura oprogramowania dotyczy mikrousług, dobrym wyborem są kontenery. Podczas korzystania ze starych aplikacji monolitycznych maszyny wirtualne nie są złą opcją. Tak więc zawsze zależy od kontekstu, czego konkretnie musisz się nauczyć. Podsumowując, temat jest dość szeroki. Książka może w tym pomóc, ale niestety nie mogę zaproponować dobrej, szerokiej. „Kubernetes in Action” to dobry początek w Kubernetes.

jhamfler
źródło
Dodałbym również coś o ci / di, na przykład bambus, jenkins, teamcity lub podobne.
Kod cyklonowy
1
Jedna rzecz zapomniałem i która może pomóc. Przegląd technologii chmurowych: krajobraz
CNCF
Cóż, edytuj swój post i dodaj więcej informacji =) Właściwie to patrzyłem.
Cyclonecode
@Cyclonecode masz rację. gotowe
jhamfler,
przepraszam, jeśli to głupie pytanie, jeśli EC2 już działa w maszynie wirtualnej, dlaczego potrzebuję Dockera?
PirateApp
4

Przede wszystkim chciałbym podkreślić, że DevOps to kultura, a nie rola. Moim zdaniem można to porównać z zespołem komandosów posiadających własne doświadczenie, np. Snajper, marine, saper (pomyśl o serii komandosów). Połączenie tych ekspertyz, zasadniczo współpracując ze sobą, umożliwia jak najszybsze wykonanie misji lub stworzenie wartości biznesowej.

LowOps i NoOps

Od kilku tygodni odkryłem, że po wielu rozmowach z ludźmi to raczej rozmowa o LowOps. Jeśli wdrożę rozwiązanie, oznacza to, że jest ono w pełni zautomatyzowane i że kolega może sam zainstalować maszyny, zamiast mnie pytać. Czasami nie jest możliwe natychmiastowe zautomatyzowanie go całkowicie, ale wtedy upewniam się, że jest ono zautomatyzowane dla mnie, aby upewnić się, że muszę uruchomić tylko jedno polecenie, aby wykonać pracę (LowOps), zamiast marnować kilka godzin. Jeśli stworzyłem takie rozwiązanie, zapewniam, że został utworzony bilet dla kolegi, aby zautomatyzować moje osobiste rozwiązanie dla wszystkich. Przykład: mój kolega przekształcił jeden z moich skryptów bashowych w bota, który jest teraz uruchamiany każdej nocy.

wprowadź opis zdjęcia tutaj

Rysunek 1: https://www.gslab.com/blog-post/what-is-noops/

„jak zacząć od devops”

Upewnij się, że należysz do zespołu o mieszanych kompetencjach i że zespół musi samodzielnie wdrożyć oprogramowanie. Porozmawiaj ze wszystkimi członkami zespołu i zacznij od zadań, których nikt nie chce wykonywać, ponieważ brakuje wiedzy lub chęci. Jeśli zaczniesz od zadania, wpadniesz na rzeczy, których nie znasz. Zacznij oglądać filmy, brać udział w spotkaniach , kupować i czytać książki, czytać blogi i oficjalną dokumentację na temat narzędzi, poprosić współpracowników o przejrzenie twoich próśb ściągania oraz komunikować się i słuchać ludzi, dobrze dokumentować rzeczy oraz przygotowywać i demonstrować rozwiązania kolegom (dzielenie się wiedzą) . Ostatnią sugestią jest pilnowanie równowagi między życiem zawodowym a prywatnym .

030
źródło
2

Inne odpowiedzi dotyczyły narzędzi. Moim zdaniem zdobycie kompetencji w zestawie narzędzi jest oczywiście dobrą rzeczą, ale nie sprawi, że dobrze dopasujesz się do kultury DevOps. DevOps to najpierw zestaw praktyk lub metod .

Zrozumienie, dlaczego te praktyki i metody są przydatne, wiąże się z doświadczeniem, ale nie masz tego luksusu. Chciałbym zatem wskazać na to

jako podstawowe teksty.

Witryna Continuous Delivery zawiera również zbiór zasad i podstaw, które zapewniają odpowiednie uziemienie na początku.

Na tej podstawie poznasz praktykę i metody, które będą informować o tym , jak współpracujesz i jak korzystać z narzędzi.

Bruce Becker
źródło
2

Wszystko, czego musisz się nauczyć, to Linux, Docker, Networking, Git, Jenkins itp. Możesz nauczyć się ich tutaj interaktywnie

Jeśli szukasz samouczków wideo, pluralsight ma dla Ciebie coś dobrego.

Err0rr
źródło
1

To pytanie zadawałem sobie wiele razy i zwykle podąża za mną (teraz, kiedy ledwo jestem „początkujący”, zastanawiam się, gdzie uczyć się bardziej zaawansowanych tematów). Niestety, jak już zauważyłeś, zadawanie tych pytań w wyszukiwarkach często zalewa strony internetowe kierowane do kadry kierowniczej i próbujące wyjaśnić, co to jest devops? i dlaczego powinniśmy uprzemysławiać cykl oprogramowania za pomocą devops?

Biorąc to pod uwagę, aby odpowiedzieć na twoje pytanie, mogę mówić tylko z własnego doświadczenia: swoją podróż edukacyjną rozpocząłem od doskonałego przewodnika Docker Pierwsze kroki .

Ogłoszenie nr
źródło
1

„Nauka DevOps” wydaje mi się zbyt szerokim pytaniem, jak się dowiedziałeś, ale pamiętam, że muszę wyszukiwać w Google to samo.

Aby dodać do odpowiedzi @ jhamfler: Zadaj sobie pytanie, dlaczego chcesz się o tym dowiedzieć? Z jakiego kontekstu pochodzisz? DevOps zwykle ma związek z przełamywaniem przeszkód manualnych, a także strukturami silosów w zespołach (wszyscy po prostu wykonują swoje zadania i polegają na kimś innym, kto pomyśli o zintegrowaniu wyników). Czy w twoim projekcie są takie „luki” (zakładam, że masz)? Jakie części mogłyby skorzystać z automatyzacji?

Typowe problemy, które mogę zasugerować, to:

  • ręczna konserwacja serwera VS rozwiązania skryptowe
  • niezawodność i kopie zapasowe
  • automatyzacja testów integracyjnych
  • automatyzacja ciągłego wdrażania (np. usługi internetowej)
  • ...

Być może pomocne może okazać się poszukiwanie „ciągłego wdrażania” i „ciągłej integracji” (CI / CD).

Sir Jane
źródło
1

Pierwsze rzeczy, których musisz się nauczyć i czuć się komfortowo z:

  • unix (system plików, uprawnienia, procesy, usługi, logi, sieci itp.)
  • tunelowanie ssh i rewers
  • nano / vim
  • pyton
  • git

Następnie możesz przejść do bardziej szczegółowych tematów:

  • Konteneryzacja (np. doker)
  • zarządzanie konfiguracją (np. ansible)
  • ciągłe wdrażanie (np. Jenkins)
  • monitorowanie (np. prometheus / grafana)
GG
źródło