• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Azure DevOps, ogólnie devOps - o co tu chodzi?

Object Storage Arubacloud
+1 głos
410 wizyt
pytanie zadane 15 kwietnia 2021 w C# przez tomasz12345 Użytkownik (750 p.)
cześć!

Temat nie jest czysto koderski, aczkolwiek uważam, że to pytanie niejako tyczy się kodu, ponieważ chodzi o narzędzia, nie znalazłem lepszego miejsca na to pytanko a temat jest następujący :

 

O ile temat Gita oraz gitHuba jest dla mnie dość zrozumiały ( jedno wspólne miejsce dla teamu budującego projekt ) to nie rozumiem ideii CI/CD , a bardzo chciałbym poznać...moze na przykładzie zyskujacego ponoc popularnosc azureDevOps...

 

Rozumiem to tak :

Siada rano programista przed komputerem, zaciąga kod z GITa, pracuje nad nim, potem testuje, i jak wszystko działa to wrzuca znowu na gita. Po co te wszsytkie buildy, pipeliny, co daje ta automatyzacja, CI, CD? Po co nam np. AzureDevOps / Jenkins?

 

Jako osoba raczkująca dopiero w temacie, chciałem zapytać bardziej doświadczonych osób o wyjasnienia. Doskonale wiem ze napewno CI/CD ma sens tylko proboje zrozumieć jaki

2 odpowiedzi

+1 głos
odpowiedź 16 kwietnia 2021 przez Benek Szeryf (91,210 p.)
wybrane 17 kwietnia 2021 przez tomasz12345
 
Najlepsza

rozumiem ale nie taniej i łatwiej byłoby po prostu odpalić w konsoli np ( w przypadku asp.net : dotnet test) i sprawdzić czy działa? przeciez to tez jedno kliknięcie

Jak masz CI/CD to wypychając zmiany za pomocą git push, takie rzeczy dzieją się automatycznie gdzieś na serwerze. Definiujesz sobie jakiegoś hooka na Jenkinsie powiązanego z repozytorium gita i ten od razu się odpala, gdy zobaczy nowego commita. DevOps to jest w ogólności podejście/sposób do developingu i deploymentu. Główną ideą jest jak najszybsze reagowanie na niepożądane zmiany w produkcie końcowym i jednoczesne niezwłoczne przygotowanie produktu, co w konsekwencji ogranicza straty finansowe firmy.

A teraz przykład jak to wygląda w praktyce, mając podpięte CI/CD do projektu. Tworzycie kod w 10 osób, kod ma być napisany jak najlepiej, nie żadne spaghetti. Z tego powodu żaden z Was nie może bezpośrednio wypchnąć zmian na gałąź master/main. Każda zmiana musi przejść proces jakości, aby dołączyć do gałęzi głównej, a więc w konsekwencji trafić do projektu.

Piszecie kod + testy. Na każdą funkcjonalność tworzycie nową gałąź od mastera. Wypychacie zmiany na tę gałąź, a kiedy uznacie, że funkcjonalność jest gotowa, to otwieracie merge/pull requesta. Już przed otwarciem merge requesta każdy wypchnięty commit powiadamia Jenkinsa, który może zrobić takie rzeczy jak:

  • odpalić unit testy i sprawdzić, czy wszystkie przechodzą
  • odpalić testy integracyjne, które np. mogą wymagać sprzętu, którego deweloper nie posiada
  • zrobić automatyczne kod review, np. za pomocą SonarQube
  • sprawdzić pokrycie kodu testami
  • sprawdzić złożoność obliczeniową

Z każdego takiego narzędzia deweloper, który rozwija funkcjonalność, może otrzymać maila z raportem z tych narzędzi. W ten sposób od razu wie, czy wszystko gra, czy coś należy poprawić.

W przypadku, gdy wszystko będzie w porządku i skończył on funkcjonalność, to otwiera merge requesta. W takim przypadku te raporty z ostatniego commita dostają wszyscy deweloperzy, którzy będą brali udział w review kodu + Jenkins w tle łączy tego merge requesta z najnowszym masterem buduje aplikacje (np. poprzez skomplikowanie kodu). Powiadomienie o zbudowanej aplikacji wysyłane jest do testerów.

W ten sposób wszyscy zainteresowani otrzymują odpowiednie powiadomienia. Jak np. kod jest zepsuty na merge requeście to nie ma sensu go reviewować, ani testować zbudowanej aplikacji. Dopiero po otrzymaniu wymaganych akceptacji przez zespół deweloperów i testerów jest w ogóle możliwość zmergowania kodu do mastera.

Ten proces może wyglądać jak overkill, ale spróbuj sobie wyobrazić sytuację, w której Facebook czy Youtube publikuje nową odsłonę swoich serwisów, do których nie można się zalogować, jeśli w loginie użytkownika jest kropka. Delikatnie mówiąc, jest to pożar :)

0 głosów
odpowiedź 16 kwietnia 2021 przez Scheduler Mądrala (6,950 p.)
Najprostsza odpowiedź to optymalizacja pracy, a dokładniej czasu potrzebnego na wykonanie odpowiednich czynności. Devops to połączenie dwóch dziedzin: dev - programowanie i ops - administracja. W praktyce stanowi most między nimi. Znajduje i eliminuje problemy projektu. W skrócie: jego zadaniem jest automatyzacja i rozwiązywanie problemów występujących od etapu budowania do uruchomienia projektu np. na serwerze.

A po co automatyzować? Bo to daje oszczędności. Zamiast klepania bibli komend w terminalu naciskasz przycisk i dzieje się magia która w tradycyjnym projekcie zajęłaby kilka godzin.

Mam nadzieję że dobrze wytłumaczyłem bo jest to zagadnienie stosunkowo trudne.
komentarz 16 kwietnia 2021 przez tomasz12345 Użytkownik (750 p.)
rozumiem ale nie taniej i łatwiej byłoby po prostu odpalić w konsoli np ( w przypadku asp.net : dotnet test) i sprawdzić czy działa? przeciez to tez jedno kliknięcie
komentarz 16 kwietnia 2021 przez Scheduler Mądrala (6,950 p.)
Nie, przy bardzo zaawansowanych projektach jedna komenda to za mało. Sam devops prócz budowania skupia się też na wdrożeniu, a tu wchodzimy na tematy o których można pisać całe serie książek.

Podobne pytania

0 głosów
0 odpowiedzi 53 wizyt
0 głosów
0 odpowiedzi 47 wizyt
0 głosów
0 odpowiedzi 133 wizyt

92,698 zapytań

141,612 odpowiedzi

320,126 komentarzy

62,057 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...