Standardowe CI/CD
Standardowe CI/CD
Witam,
Macie moze jakies materialy pokazujece 'best practice' robienia pipelinow CD/CI w sieciach. Bawie sie automatyzacja (Pyhon + Ansible +Git + Jenkins) ale chcialbym robic to poprawnie 'by the book' i nie wiem czy nie popelniam jakis fundamentalnych bledow.
Macie moze jakies materialy pokazujece 'best practice' robienia pipelinow CD/CI w sieciach. Bawie sie automatyzacja (Pyhon + Ansible +Git + Jenkins) ale chcialbym robic to poprawnie 'by the book' i nie wiem czy nie popelniam jakis fundamentalnych bledow.
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: Standardowe CI/CD
Nie bardzo wiem czy takie standardy stricte dla sieci istnieją. W takich CI/CD ochrona procesu jest identyczna jakby to była aplikacja. U mnie na blogu opisałem parę przykładów, opowiadałem też o nich na ostatnich trzech albo czterech konferencjach PLNOG, na youtube są nagrania. Jeżeli masz jakiś konkretny problem czy pytanie to daj znać.
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Re: Standardowe CI/CD
Chodzi mi o to ze mam np polaczony jenkins z gitem i Ansible (na jednym serwerze) - wszystko robie jako Freestyle project bez konfigurowania pipelinu. Jenkins po prostu sprawdza co 5 min zmiane kodu w zewnetrznym Gicie i jesli jest to uruchamia playbooka. Nie chcialbym wynajdywac kola od nowa i moze ktos ma takie sprwadzone konfigurace / implementacje. Czyam duzo na Cisco DevNet i zrozumialem np zeby nie laczyc playbookow w wiele zadan a raczej je rozbijac na pojedyncze co ma oczywisce sens.
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: Standardowe CI/CD
Obczaj sobie https://blog.it-playground.eu/let-jenki ... ins-image/ albo https://blog.it-playground.eu/run-jenkins-in-docker/ i pozostałe wpisy na moim blogu. Generalne webhooks, konteneryzacja, kontrola wersji na git etc. Wszystko to co robią programiści
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Re: Standardowe CI/CD
Dzieki za Bloga poczytam, do tej pory nie wiedzialem ze docker sie moze przydac sieciowcom
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: Standardowe CI/CD
Docker, Kubernetes i wiele innych
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Re: Standardowe CI/CD
Najwięcej o CI/CD dowiedziałem się pracując z Devopsami w projekcie chmurowym. W Idealnym świecie DevOps proces CI/CD jest kodem. Jenkins odpalony w kubernetesie. Zero linii komend. Nawet Jenkins stawiany terraformem... przez Jenkinsa. Wszystko wygląda fajnie, ale to taki święty Graal. Nieosiągalny na tym etapie w świecie sieciowym.
Z mojego doświadczenia (3 duże projekty. Jeden sieciowy, drugi devopsowy i jeden w typowym SDN automation):
- Jak nie wiesz jak zbudować CI/CD to zapytaj się najlepiej DevOpsa lub programisty w firmie. Oni to robią od lat. Nawet jako najlepszy sieciowiec bez doświadczenia w kulturze DevOPS nie jesteś w stanie nabyć dobrych praktyk.
- Automatyzyj proste taski. Na przykład dodawanie vlanów ansiblem zamiast przebudowywanie całego środowiska produkcyjnego z tworzeniem własnych filtrów w ansiblu. Jedno repo, jeden playbook, jeden pipeline (napisany, a nie wyklikany), wiele branchy zamiast combo projektu, który sam się testuje, sam się wdraża na produkcje i robi wszystko.
- Korzystaj z Terraforma do budowy środowisk (o ile vendor jest wspierany)
- Nie używaj webhooków.
- Dodawaj testy jednostkowe na każdym etapie.
- Clean Code. Pytaj jak najwięcej ludzi czy Twój kod jest czytelny. Nie bój się krytyki.
Innymi słowy zacznij od takiego procesu : "1. commit/push na gita, 2. logujesz się na Jenkinsa, ręcznie odpalasz pipeline".
Z mojego doświadczenia (3 duże projekty. Jeden sieciowy, drugi devopsowy i jeden w typowym SDN automation):
- Jak nie wiesz jak zbudować CI/CD to zapytaj się najlepiej DevOpsa lub programisty w firmie. Oni to robią od lat. Nawet jako najlepszy sieciowiec bez doświadczenia w kulturze DevOPS nie jesteś w stanie nabyć dobrych praktyk.
- Automatyzyj proste taski. Na przykład dodawanie vlanów ansiblem zamiast przebudowywanie całego środowiska produkcyjnego z tworzeniem własnych filtrów w ansiblu. Jedno repo, jeden playbook, jeden pipeline (napisany, a nie wyklikany), wiele branchy zamiast combo projektu, który sam się testuje, sam się wdraża na produkcje i robi wszystko.
- Korzystaj z Terraforma do budowy środowisk (o ile vendor jest wspierany)
- Nie używaj webhooków.
- Dodawaj testy jednostkowe na każdym etapie.
- Clean Code. Pytaj jak najwięcej ludzi czy Twój kod jest czytelny. Nie bój się krytyki.
Innymi słowy zacznij od takiego procesu : "1. commit/push na gita, 2. logujesz się na Jenkinsa, ręcznie odpalasz pipeline".