Strona 1 z 1

Standardowe CI/CD

: 25 wrz 2019, 12:34
autor: qligowski
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.

Re: Standardowe CI/CD

: 25 wrz 2019, 20:57
autor: peper
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ć.

Re: Standardowe CI/CD

: 26 wrz 2019, 15:21
autor: qligowski
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.

Re: Standardowe CI/CD

: 26 wrz 2019, 15:56
autor: peper
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

Re: Standardowe CI/CD

: 26 wrz 2019, 18:26
autor: qligowski
Dzieki za Bloga poczytam, do tej pory nie wiedzialem ze docker sie moze przydac sieciowcom :)

Re: Standardowe CI/CD

: 26 wrz 2019, 18:53
autor: peper
Docker, Kubernetes i wiele innych :)

Re: Standardowe CI/CD

: 11 paź 2019, 12:04
autor: lxs
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".