continuous integration w konfiguracji urządzeń sieciowych

34
Ścieżka CI w konfiguracji urządzeń sieciowych PLNOG 2016

Upload: dreamlab

Post on 27-Jan-2017

53 views

Category:

Devices & Hardware


0 download

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