continuous integration w konfiguracji urządzeń sieciowych
TRANSCRIPT
Scieka CI w konfiguracji urzdzie sieciowych
cieka CI w konfiguracjiurzdze sieciowychPLNOG 2016
Dzie dobry Nazywam ... Pracuje jako ... Dreamlab.Na codzie zajmuje si projektowaniem oraz utrzymywaniem rozwiza w obszarach data center oraz sieci pracowniczej
Na dzisiejszej prezentacji opowiem jak zmieni si sposb konfiguracji urzdze w naszej firmie.I jak wplynely na nasz charakter pracy. Czyli jak od roli tzw. siecioww przeszlimy do zespou pracujcego bardziej jak programisci.O tym wszystkim opowiem z perspektywy osoby zwizanej z sieciami od blisko 10 lat1
PLSKHURSCH
DL - spka IT - cz grupy medialnej RASSpka medialna obecna w kilku krajach EuropyJak to grupa medialna zajmujemy si dostarczaniem treciw rnej postaci drukowanej : gazety, magazyny Gwny nacisk kadziemy na tre cyfrow2
Tworzymy serwisy i aplikacje mobilnena pewno Znacie portal Onet ? Informacyjne: Fakt, Newsweek, Ecommerce: Skpiec, Opineo,Spoecznociowe: Nasza-Klasa, Sympatia
Na co to si przekada?3
23 mlnreal users7 mlnrequestsevery minute150 mlnPV daily
Przede wszystkim na gigantyczn liczb uytkownikwKtrzy generuj ogromn liczb zapyta
4
130 Gbps traffic
3 data centers3 000 serversand devices
To wszystkiego wykorzystujemy 3 serwerownie - to wszystko obslugujemy z Wysyamy spory ruch sieciowy Zarzdzamy pokan/du liczb serwerw
5
300 specialists40teams> 250deployments daily
Za tym wszystkim stoj ludzie40 zespow w 3 biurach w Krakowie, Wrocawiu i WarszawiePracuje u nas Ponad 300 specjalistwNasze zespoy przeprowadzaj nawet podan 250 wdroe dziennie6
rdo: johnhembree.com
Nad tematem konfiguracji systemw ktry jest zwizany z dzisiejsz prezentacj pracujemy ju od pewnego czasu. Nasz motywacj do dziaania byy zarwno utrudnienia w pracy widziane kadego dniaAle take problemy ktre przeradzay si w awarie.
Przykadem takich sytuacji mog by mae wdroenia
Mae wdroenia maj to do siebie, e s mae [ ] i jest ich duo. Popiech i brak naszej koncentracji moe spowodowa, e atwe zlecenie zamienia si w koszmar.
The website is down
Przez ktrego pajaca pada sie?rdo: photo.sf.co.ua5 Fala Richa Tenannta
Kocowy efekt nieudanej zmiany gwnie odczuwaj uytkownicyPotencjalna Awaria odcina ich od naszych treci.Moe ich omin ciekawe wydarzenie lub nie ogldn ulubionego programu.
Ale [ ] nie zapominajmy te o ludziach, ktrzy te zmiany wykonuj.Pojawia si ogromny stres i presja [ ] w kocu nie oglda nas 100 osb. Przy dzisiejszych wymaganiach naszych uytkownikw co do stabilnoci dziaania [] ->nie moemy sobie pozwoli na zbyt czste bdy.
Potrzebujemy dodatkowej pomocy ktra powie nam kiedy zmiany ktre robimy mog spowodowa problem
Rczne zmiany
Innym przykadem s rczne zmianyCzyli sytuacja do powszechna dla rodowiska sieciowcw to praca ktra wymaga czsto logowania si do wielu ronych systemwjest to praca mudn i prowadzi do pomyek.
Co jaki czas odkrywalimy rnice w ustawieniach pomidzy urzdzeniami ktrych oczywicie nie powinno by.
Konfiguracje nie byy spjne a problemy uwidaczniane byy podczas testw.
Brakowao nam systemu pomagajcego utrzyma porzdek i wspdzieli miedzy urzadzeniami.
9
Netowork As a Service
Coraz wicej systemw instalujemy w formie wirtualnych maszyn. Zastpujemy drogie sprztowe rozwizania czsto darmowymi ich odpowiednikami.Skalujemy je ju nie poprzez dokadanie mocy dla pojedyczej maszyny a uruchamianie nowych instancji. Zauwaylimy, e nie bdziemy w stanie nady z prac robic wszystko rcznie z linii polece.
10
Styki z BGP do ISPLeaf & Spine dla SDN Infrastruktura dla CDNEndpoint IPSEC dla partnerwKierunek SDN ?
W pierwszej chwili moe przyj na myl uycie SDNS obszary ktrych to rozwizanie jeszcze na chwil obecn nie obejmuje
11
Szybsze wykrywanie problemwMechanizm wycofania wdroeniaNiezaleno od producenta sprztuGeneracja i wysyanie penej konfiguracjiHistoria zmian
Co chcielimy osign
Widzc te potrzeby zaczelimy nakrela nasze nowe rozwizanie
1)Chcielimy posiada system ktry podpowie nam kiedy rzeczy ktre robimy mog spowodowa awarie 2)Kiedy ju jednak co jednak zepsujemy chcemy umie wycofa cae wdroenie w atwy sposb..3)Fajnie aby nasza konfiguracja bya niezalena od producenta Pomoe nam zamienia urzdzenia w tych miejscach gdzie ma to sens.
4)Generujemy I wysyamy pen konfiguracj za kadym razem.Jeeli s jakie rcznie wprowadzone zmiany chcemy o nich wiedzie. Zmniejszamy rwnie rol backupu.Nie chcemy by zaskoczeni brakiem dostpu do kofiguracji kiedy jest nam potrzebna
5)Mamy wicej informacji na temat historii konfiguracji.Jakie potrzeby biznesowe spenia
12
rdo: wallpaperswide.com
Zaczelimy poszukiwania nowego rozwizania. Chcielimy uy sprawdzonego modelu ktry wiemy e dziaa. Przygldalimy si jakie procesy wykorzystuja inne zespoly w firmieSpodobaa nam si forma dziaania zespow devops.
Wymagao to jednak oderwania si od tego co znamy I rodowiska do ktregi bylimy przyzwyczajeni. Nie tylko zmieniy si narzdzia ale take podejcie do pracy.
DevOps & CI
Czym jest CI ? Mi sie kojarzyo z ..Skrt od Continuous .... czyli jeden z procesw zespou Devops Proces ten odpowiedzialny jest za obszar testw
DevOps to zespoy skupione na wydzielonym produkcie zoone z programistw i administartorw.Cech takich zespow jest nastawienie na automatyzacj najlepiej wszystkiego co moliwePoczwszy od testowania nowego kodu, koczc na wdroeniu nowej wersji na produkcyjne serwery Cykl zmian jest iteracyjny oznacza to, e Kod jest pisany I testowany maymi fragmentami. Dziki temu nowe funkcjonalnoci mog by dostarczane szybciej a bdy mog zosta wykryte wczeniej.
14
DevOps & CI
Dziki temu, e kod pisany jest maymi czciami pozwala to na jego czstsze testy. Osoba piszca kod otrzymuje szybciej informacje czy dalej aplikacja dziaa poprawnie z nowa funkcjonalnoscia.Testy polegaj zarwno na sprawdzeniu kodu jak I uruchomieniu aplikacji na wydzielonym rodowisku.Za cay ten etap odpowiada proces nazywany Contuniuous Integration
Sprbujmy ta wizje przyrownac do naszego swiata sieci. Zazwyczaj w sieciach robimy zmiany ktre sa dobrze okreslone aby spelnic konkretne potrzeby ACL, routingUywamy do tego skadni przypominajcej czasem jzyk programowania
Czy nasze zmiany moemy wprowadza w taki sposb jak pisze si kod aplikacji? Czy moemy dodatkowo testowa nasze zmiany zanim wejd na produkcj ? Brzmiao to ciekawie i postanowilimy tego sprbowa
Zobaczmy jak mona taki model zaimplementowa take dla sieci.
15
masterbranch feature/new_bgpPull Request
Rollback
GIT Master & Branch
Podstaw jest system kontroli wersji. Sledzi zmiany jakie dokonujemy w plikach. Informacje o zmianach zazwyczaj wysyamy do zdalnego serwera. W najprosszej wersji wystpuje pojedycza Ga master do ktrej wysya si zmiany.Nie jest to jednak wystarczajce , gdy master powinien oznacza wierne odwzorowanie stanu na produkcji. Nie moe zawiera bdw ktre mog wywoa awari lub co uszkodzi.
Dlatego stosuje si dodatkowe gazie nazywanymi BranchamiBranch tworzy miejsce w ktrym mozemy dokonywac zmian bez obawy o wywolanie awarii. W branchu realizujemy nowa funkcjonalnosc.Nie musi zawiera zawsze poprawnego kodu.Informacje o porblemie dostarcza CI
Jeeli posiadamy poprawny kod Otwieramy pull request. Wymagane jest tez potwierdzenie innej osoby z zepsouZmiany dodajemy do mastera merge w Przypadku awarii wycofujemy ostatnie zmianyCofamy do poprzedniej wersji16
Jak wyglda proces zmian u nas?
Po otrzymaniu przez zeps zadania. Tworzymy nowy branc w ktrym bdziemy tworzyc nowe rzeczy.
Tworzymy nowa konfiguracje ktora spelnia wymogi zadania.
Aby sprawdzi jej poprawno [ ] najpierw ja generujemy
Oraz testujemy w rodowisku wirtualnym
Pozytywne testy pozwalaja na wczenie ich do gwnej gazi repozytorium
A kocowo rwnie wprowadzeie zmian na urzdzenia produkcyjne. Brzmi prosto
Do tego jednak potrzebny jest cay zestaw narzdzi.Wybralimy dostpne ju u nas narzdzia firmy atlassianMozna podobny system zbudowa w oparciu o rozwiazania opensourceDefiniujemy zmienne w jzyku yaml a szablony w jinjaRelease wlaczenie zmian do mastera i deploy bitbucket/bambooTesty w vagrant I skrypty shell , python
FILM
Film z workflow
JIRA Planowanie zada
Zespo otrzymuje zadanie do wykonanie. Jest to efekt planowania ktory odbywa sie w cyklach u nas dwutygodniowych.Wczeniej zespo na osobnym spotkaniu nazywnym grromingiem doklanie opisuje rzecy jakie nalezy wykonac i wycenia wymagany naklad pracy
Osoba podejmujaca sie zadania tworzy nowego brancha.
Na codziennych porannych spotkaniach zesp ledzi stan wykonania zadania.21
Brak wymogu agenta Wsparcie dla sprztu poprzez moduy : producentw, NAPALM, Ansible 2.xLogiczny podzia konfiguracji na roleMultivendor
ANSIBLE
Po otrzymaniu zadania musiy napisac kod juz pod odpowiedni system konfiguracji
Wykorzystujemy ansible jako narzedzie do konfiguracji urzadzen
Nie wymaga agenta po stronie urzadzenia sieciowego oraz posiada szerokie wsparce
Nasza konfiguracje w ansible jest podzielona za pomoc rlRole Realizuja one okreslone funkcje np konf. Prot bgp, ospf, tunele ipsec.
wieloplatformowo osigamy za pomoca roznych wersji szablonow uzywanych w zaleznosci od systemu
22
ANSIBLE
Pliki konfiguracyjne w yaml zawsze zawieraja ta sama skladnie niezaleznie od producentaZmienne wykorzystywane sa przez szablonyI one generuja koncowy kod
Sama generacja kodu jest juz testem skladni yaml oraz skladni szablonow jinjaWygenerowana konfiguracje poprzez role sprawdzamy czy akceptuj urzadzenia.
23
Testy - master & branchesWykrywanie zmian w repozytorium Powoanie rodowiska wirtualnego
Bamboo CI
Sprawdzamy poprawnosc konfiguracji dla wszytkich gaziPo wykryciu w nich zmian. Jest mocno zintegrowany z repozytorium
Testy przeprowadzane w wydzielonym srodowisku wirtualnym
Dostarcza informacje zwrotne o wyniku testw
24
Mapa rodowiska VagrantfileRepozytorium obrazw Integracja z ansible
Vagrant
Budujemy srodowisko wirtualne aby przetestowa poprawnoc konfiguracji.Za pomoca pojedynczego pliku okreslamy jakie systemy chcemy uzyc oraz jak maja byc ze soba polaczone Dostpnych jest wiele obrazw w publicznym repozytoriu w tym dzisiaj wykorzystywane
Vagrant posiada integracje z systemami zarzadzania konfiguracjaumozliwia to zdefioniwanie grup czy dodatkowych zmiennych
Dzieki V. Jestemy w stanie w ten sposb przetestowac kod generowany przez nasze role i oraz fragmenty rodowisk ktre s powtarzalne - np leaf&spine, vpn
Wagrant wymaga modyfikacji konfiguracji aby uruchomic ja w srodowisku testowym- Uklad interfejsow
25
Testy penej konfiguracji
W miejscach gdzie konfiguracja jest krytyczna chcemy testowa ja w caociPrzykadem takiego miejsca jest styk z Internetem.
Dziki wirtualnemu odpowiednikowi dla naszych routerw sprztowych czyli vMXJestesmy w stnanie sprawdzi konfiguracj w caosci . Moemy zasymulowa interfejsy o rnej prdkoci 1/10/100Nie musimy modyfikowa konfiguracji ktra jest w tych miejscach jest skomplikowana
Testy polegaj na odwzorowaniu operatora z perspektywy ktorego sprawdzamy dostepnosc naszych uslug. Pozwala nam to upewnisc sie ze nie odetniemy naszych uzytkownikow od naszych tresci.26
Zarzdzanie konfiguracj I pozyskiwanie informacjiWsparcie dla: JunOS, EOS, IOS-XR, FortiOS, IOS, PANOS, Pluribus, NX-OS, IBM switches, ROS, VyOS
NAPALM
Testy wykonujemy za pomoca skryptow python oraz przydatna jest biblioteka napalm
jednolite rozwiazanie do konfiguracji i weryfikacji systemow
Bibilioteka zarwno dostarcza mozliwosc konfiguracji za pomoca ansible czy salt
Rowniez jest bardzo uzyteczna dla przeprowadzania testw systemow. Pozwala ona na uzyskanie jednolitego formatu wyjsciowego wyniku dla zapytania niezaleznie od systemu operacyjnego jaki mamy na urzadzeniu
mozemy odpytac o stan sesji bgo, czy stan urzadzenia.Jest dostepnych wiele metod
27
Wymagany code review czyli akceptacja przez inn osob z zespou
Wczenie kodu do gazi master
Code review gdyz testy rowniez dopisujemy iteracyjnie mozemy nie miec uwzglegnionego przypadku
testy rowniez wykonywane na masterzeUpewniamy sie ze zmiany innej osoby nie wykluczaja sie z naszyminie nastepuje konflikt pomiedzy ustawieniami
Wdroenie do produkcjiWykrywanie prb rcznej kofiguracjiTesty po deploy RING ring.nlnog.net
Bamboo Deploy
Przeprowadzamy wdrozenie
W naszym srodowisku cyklicznie przeprowadzamy porownanie wersji zawartej w masterze z konfiguracja na urzadzeniach.Wykrywamy proby recznej ich konfiguracji.
Dzieki projektowi ring mozemy sie upewnic ze nasi uzytkownicy po zmianie maja dostep do naszych zasobow. Ulatwia rozwiazywanie problemow .
29
Redundantny system kontroli wersji Dedykowane maszyny deployProces zakupu urzdze ktry uwzgldnia automatyzacj
Co warto posiada
Ju dzi nawet tutaj gdzy interesujesz sie sprztem pytaj o autmatyzacj.Interesuj si jakie wasparcie jest dla automatyzacji. Czy moesz wrzuci pen konfiguracj czy pracowa tylko na pojedynczych komendach.Nie zostancie z urzadzeniami ktore bedziecie mogli tylko konfigurowac recznie
30
Zmiana techniczna i mentalnaDostpna dla kadegoZacznij maymi krokamiMyl jak programista
rdo: best-wallpaper.net
To Co my osignelimy System ktry wspomaga nas w codziennej pracy. Przeprowadza testy ktrych nie bylibysmy w stanie wykonywac recznie. Jest to dobra baza do budowy dalszej automatyzacji. Mamy zawszemoliwo wycofania zmian w naszym srodowiskudo poprzedniego stanu.
Zmiany s przejrzyste i widoczne dla wszystkich
Wierzymy, e to dopiero pocztek naszej drogi. Zapraszamy do wsplnej podry
[email protected]://github.com/ppieprzycki/plnog2016
networktocode.slack.com
Zapraszam do kontaktu Odwiedzenia strony na github
Slack
I oddania glosu za pomoca aplikacji eventory jezeli podobala wam sie moja prezentacja.
Wykorzystane materiayProblems Ahead:johnhembree.comhttp://photo.sf.co.ua/id63?lang=uk 5 fala Richa Tenannta https://pixabay.com/en/car-repair-car-workshop-repair-shop-362150/https://pixabay.com/en/autos-technology-vw-214033/http://thenotinsane.deviantart.com/ http://wallpaperswide.com/lamborghini_dark-wallpapers.htmlhttp://best-wallpaper.net/Lamborghini-Aventador-LP700-4-red-supercar-morning-sun_1680x1050.html