SlideShare a Scribd company logo
1 of 34
Ścieżka CI w konfiguracji
urządzeń sieciowych
PLNOG 2016
PL
SK
HU
RS
CH
23 mln
real users
7 mln
requests
every
minute
150 mln
PV daily
130 Gbps
traffic
3 data
centers
3 000
servers
and
devices
300
specialists
40
teams
> 250
deployments
daily
Żródło: johnhembree.com
down”
Przez którego pajaca padła sieć? Żródło: photo.sf.co.ua
5 Fala Richa Tenannta
Ręczne zmiany
Netowork As a Service
• Styki z BGP do ISP
• Leaf & Spine dla SDN
• Infrastruktura dla CDN
• Endpoint IPSEC dla partnerów
Kierunek SDN ?
• Szybsze wykrywanie problemów
• Mechanizm wycofania wdrożenia
• Niezależność od producenta sprzętu
• Generacja i wysyłanie pełnej konfiguracji
• Historia zmian
Co chcieliśmy osiągnąć
Źródło: wallpaperswide.com
DevOps & CI
NEW CODE
GIT COMMIT
BUILDTEST
REPORT
DevOps & CI
master
branch feature/new_bgp
Pull Request
Rollback
GIT Master & Branch
PLAN
• Zespół otrzymuje zadanie. Nowy branch
CODE
• Tworzymy nową konfigurację
BUILD • Generujemy nową konfigurację
TEST
• Uruchomiamy środowisko wirtualne. Testujemy
RELEASE
• Nasze zmiany dodajemy do gałęzi master
DEPLOY
• Wprowadzamy zmiany na produkcji
PLAN
CODE
BUILD
TEST
RELEASE
DEPLOY
FILM
Film z workflow
PLAN CODE BUILD TEST RELEASE DEPLOY
JIRA – Planowanie zadań
• Brak wymogu agenta
• Wsparcie dla sprzętu poprzez moduły :
producentów, NAPALM, Ansible 2.x
• Logiczny podział konfiguracji na role
• Multivendor
PLAN CODE BUILD TEST RELEASE DEPLOY
ANSIBLE
ANSIBLE
PLAN CODE BUILD TEST RELEASE DEPLOY
• Testy - master & branches
• Wykrywanie zmian w repozytorium
• Powołanie środowiska wirtualnego
Bamboo CI
PLAN CODE BUILD TEST RELEASE DEPLOY
• Mapa środowiska – Vagrantfile
• Repozytorium obrazów
• Integracja z ansible
Vagrant
PLAN CODE BUILD TEST RELEASE DEPLOY
Testy pełnej konfiguracji
PLAN CODE BUILD TEST RELEASE DEPLOY
• Zarządzanie konfiguracją I pozyskiwanie informacji
• Wsparcie dla: JunOS, EOS, IOS-XR, FortiOS, IOS, PANOS, Pluribus, NX-
OS, IBM switches, ROS, VyOS
NAPALM
PLAN CODE BUILD TEST RELEASE DEPLOY
• Wymagany „code review” czyli akceptacja przez inną osobę z zespołu
Włączenie kodu do gałęzi master
PLAN CODE BUILD TEST RELEASE DEPLOY
• Wdrożenie do produkcji
• Wykrywanie prób ręcznej kofiguracji
• Testy po deploy RING ring.nlnog.net
Bamboo Deploy
PLAN CODE BUILD TEST RELEASE DEPLOY
• Redundantny system kontroli wersji
• Dedykowane maszyny deploy
• Proces zakupu urządzeń który uwzględnia automatyzację
Co warto posiadać
• Zmiana techniczna i mentalna
• Dostępna dla każdego
• Zacznij małymi krokami
• Myśl jak programista
Żródło: best-wallpaper.net
Kontakt
Piotr.Pieprzycki@dreamlab.pl
https://github.com/ppieprzycki/plnog2016
networktocode.slack.com
Continuous Integration w konfiguracji urządzeń sieciowych

More Related Content

What's hot

Noc informatyka
Noc informatykaNoc informatyka
Noc informatykaOnetIT
 
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...Kainos Polska
 
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM PROIDEA
 
Kubernetes (Canary) Deployments
Kubernetes (Canary) DeploymentsKubernetes (Canary) Deployments
Kubernetes (Canary) DeploymentsThe Software House
 
Kubernetes: from zero to be hero
Kubernetes: from zero to be heroKubernetes: from zero to be hero
Kubernetes: from zero to be heroThe Software House
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGBart Zaremba
 
LXC - kontener pingwinów
LXC - kontener pingwinówLXC - kontener pingwinów
LXC - kontener pingwinówgnosek
 
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...The Software House
 
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...Future Processing
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńPaweł Kondraciuk
 

What's hot (17)

Noc informatyka
Noc informatykaNoc informatyka
Noc informatyka
 
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
 
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM
PLNOG 9: Łukasz Langa - RALPH - DC ASSET MANAGEMENT SYSTEM
 
Kubernetes (Canary) Deployments
Kubernetes (Canary) DeploymentsKubernetes (Canary) Deployments
Kubernetes (Canary) Deployments
 
Kubernetes: from zero to be hero
Kubernetes: from zero to be heroKubernetes: from zero to be hero
Kubernetes: from zero to be hero
 
Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
 
PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?
 
Websockety w PHP
Websockety w PHPWebsockety w PHP
Websockety w PHP
 
Tuning zabbix
Tuning zabbixTuning zabbix
Tuning zabbix
 
Rundeck & Ansible
Rundeck & AnsibleRundeck & Ansible
Rundeck & Ansible
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
LXC - kontener pingwinów
LXC - kontener pingwinówLXC - kontener pingwinów
LXC - kontener pingwinów
 
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
Sporządzanie oraz umiejętne wykorzystanie przepisów i schematów. Ansible w pr...
 
Itad 2016 aspnet core.pptx
Itad 2016   aspnet core.pptxItad 2016   aspnet core.pptx
Itad 2016 aspnet core.pptx
 
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
[QE 2017] Adrian Gonciarz - Tester w Kontenerze, czyli jak Docker może pomóc ...
 
Jak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzieńJak zostać mobile deweloperem w 1 dzień
Jak zostać mobile deweloperem w 1 dzień
 
Od Zera do Farmera
Od Zera do FarmeraOd Zera do Farmera
Od Zera do Farmera
 

Viewers also liked

Grupo 4 c robolec
Grupo 4 c robolecGrupo 4 c robolec
Grupo 4 c roboleckoranika
 
Portada 3 periodo corel draw x5
Portada 3 periodo corel draw x5Portada 3 periodo corel draw x5
Portada 3 periodo corel draw x5kevintocora
 
CompTIA Network+ ce certificate
CompTIA Network+ ce certificateCompTIA Network+ ce certificate
CompTIA Network+ ce certificateDavid Vidrine
 
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana THL
 
Layers of atmosphere!
Layers of atmosphere!Layers of atmosphere!
Layers of atmosphere!Zainab Khan
 
Pop up menu presentation
Pop up menu presentationPop up menu presentation
Pop up menu presentationpurnama33
 
Stuart Johnson CV Updated 02-01-15 NEW
Stuart Johnson CV Updated 02-01-15 NEWStuart Johnson CV Updated 02-01-15 NEW
Stuart Johnson CV Updated 02-01-15 NEWstuart johnson
 
Proyecto de expresion oral carrie
Proyecto de expresion oral carrieProyecto de expresion oral carrie
Proyecto de expresion oral carrieEricka Sarmiento
 
[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping
[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping
[Prêmio Imre Simon 2014] Multimídia Educacional - ClippingAssespro Nacional
 

Viewers also liked (11)

ssudan
ssudanssudan
ssudan
 
Grupo 4 c robolec
Grupo 4 c robolecGrupo 4 c robolec
Grupo 4 c robolec
 
Myfathersaid
MyfathersaidMyfathersaid
Myfathersaid
 
Portada 3 periodo corel draw x5
Portada 3 periodo corel draw x5Portada 3 periodo corel draw x5
Portada 3 periodo corel draw x5
 
CompTIA Network+ ce certificate
CompTIA Network+ ce certificateCompTIA Network+ ce certificate
CompTIA Network+ ce certificate
 
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana
Perhe ja turvallinen kasvuympäristö hyvän kehityksen turvaajana
 
Layers of atmosphere!
Layers of atmosphere!Layers of atmosphere!
Layers of atmosphere!
 
Pop up menu presentation
Pop up menu presentationPop up menu presentation
Pop up menu presentation
 
Stuart Johnson CV Updated 02-01-15 NEW
Stuart Johnson CV Updated 02-01-15 NEWStuart Johnson CV Updated 02-01-15 NEW
Stuart Johnson CV Updated 02-01-15 NEW
 
Proyecto de expresion oral carrie
Proyecto de expresion oral carrieProyecto de expresion oral carrie
Proyecto de expresion oral carrie
 
[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping
[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping
[Prêmio Imre Simon 2014] Multimídia Educacional - Clipping
 

Similar to Continuous Integration w konfiguracji urządzeń sieciowych

PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...
PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...
PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...PROIDEA
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Mateusz Paprocki, PMP
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPROIDEA
 
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerFull Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerMarek Będkowski
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaGameDesire Academy
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnieCode-House
 
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITaWersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITamarekmisztal
 
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...PROIDEA
 
Nowości Windows Azure
Nowości Windows AzureNowości Windows Azure
Nowości Windows Azurepbubacz
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wojciech Barczyński
 
PLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet ModułyPLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet ModułyPROIDEA
 
Jak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricksJak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricksXSolve
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
ROS3D - Podsumowanie prac nad projektem
ROS3D - Podsumowanie prac nad projektemROS3D - Podsumowanie prac nad projektem
ROS3D - Podsumowanie prac nad projektemOpen-RnD
 
Citrix provisioning services
Citrix provisioning servicesCitrix provisioning services
Citrix provisioning servicesPawel Serwan
 
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek Moskal
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek MoskalPLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek Moskal
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek MoskalPROIDEA
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymDariusz Jagieło
 
Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.   Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce. Future Processing
 

Similar to Continuous Integration w konfiguracji urządzeń sieciowych (20)

PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...
PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...
PLNOG 17 - Piotr Pieprzycki - Praktycznie: Ścieżka Continuous Integration w k...
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
 
university day 1
university day 1university day 1
university day 1
 
Środowisko PWA
Środowisko PWAŚrodowisko PWA
Środowisko PWA
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
 
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio playerFull Stack JavaScript case study na podstawie Maracuya Jukebox audio player
Full Stack JavaScript case study na podstawie Maracuya Jukebox audio player
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zaplecza
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnie
 
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITaWersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
 
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...
infraxstructure: Piotr Jabłoński "SDN w praktyce. Znacząca poprawa bezpieczeń...
 
Nowości Windows Azure
Nowości Windows AzureNowości Windows Azure
Nowości Windows Azure
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
 
PLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet ModułyPLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet Moduły
 
Jak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricksJak migrować kod legacy do Symfony? Tips & tricks
Jak migrować kod legacy do Symfony? Tips & tricks
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
ROS3D - Podsumowanie prac nad projektem
ROS3D - Podsumowanie prac nad projektemROS3D - Podsumowanie prac nad projektem
ROS3D - Podsumowanie prac nad projektem
 
Citrix provisioning services
Citrix provisioning servicesCitrix provisioning services
Citrix provisioning services
 
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek Moskal
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek MoskalPLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek Moskal
PLNOG14: Zastosowanie NFV, symulacja sieci VIRL/CML - Marek Moskal
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.   Testy akceptacyjne w pigułce.
Testy akceptacyjne w pigułce.
 

More from DreamLab

DreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8DreamLab
 
Intro to React | DreamLab Academy
Intro to React | DreamLab AcademyIntro to React | DreamLab Academy
Intro to React | DreamLab AcademyDreamLab
 
Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji DreamLab
 
Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7DreamLab
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?DreamLab
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.DreamLab
 
Gdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringGdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringDreamLab
 
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4DreamLab
 
Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3 Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3 DreamLab
 
Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2DreamLab
 
About Motivation in DevOps Culture
About Motivation in DevOps CultureAbout Motivation in DevOps Culture
About Motivation in DevOps CultureDreamLab
 
Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016DreamLab
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLabDreamLab
 

More from DreamLab (14)

DreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.js
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
 
Intro to React | DreamLab Academy
Intro to React | DreamLab AcademyIntro to React | DreamLab Academy
Intro to React | DreamLab Academy
 
Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji
 
Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
 
Gdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringGdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous Monitoring
 
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
 
Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3 Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3
 
Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2
 
About Motivation in DevOps Culture
About Motivation in DevOps CultureAbout Motivation in DevOps Culture
About Motivation in DevOps Culture
 
Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLab
 

Continuous Integration w konfiguracji urządzeń sieciowych

Editor's Notes

  1. Dzień dobry… Nazywam ... Pracuje jako ... Dreamlab. Na codzień zajmuje się projektowaniem  oraz utrzymywaniem rozwiązań w obszarach data center oraz sieci pracowniczej  Na dzisiejszej prezentacji opowiem jak zmienił się   sposób konfiguracji urządzeń w naszej firmie. I jak wplynely na nasz charakter pracy. Czyli jak od roli tzw.   “sieciowów” przeszliśmy do zespołu pracującego bardziej jak programisci. O tym wszystkim opowiem z perspektywy osoby związanej z sieciami od blisko 10 lat
  2. DL - spółka IT - część grupy medialnej RAS Spółka medialna obecna w kilku krajach Europy Jak to grupa medialna zajmujemy się dostarczaniem treści w różnej postaci – drukowanej : gazety, magazyny Główny nacisk kładziemy na treść cyfrową
  3. Tworzymy serwisy i aplikacje mobilne na pewno Znacie portal Onet ? Informacyjne: Fakt, Newsweek, Ecommerce: Skąpiec, Opineo, Społecznościowe: Nasza-Klasa, Sympatia Na co to się przekłada?
  4. Przede wszystkim na gigantyczną liczbę użytkowników Którzy generują ogromną liczbę zapytań
  5. To wszystkiego wykorzystujemy 3 serwerownie - to wszystko obslugujemy z Wysyłamy spory ruch sieciowy Zarządzamy pokaźną/dużą liczbą serwerów
  6. Za tym wszystkim stoją ludzie 40 zespołów w 3 biurach – w Krakowie, Wrocławiu i Warszawie Pracuje u nas Ponad 300 specjalistów Nasze zespoły przeprowadzają nawet podan 250 wdrożeń dziennie
  7. Nad tematem konfiguracji systemów który jest związany z dzisiejszą prezentacją pracujemy już od pewnego czasu. Naszą motywacją do działania były zarówno utrudnienia w pracy widziane każdego dnia Ale także problemy które przeradzały się w awarie. Przykładem takich sytuacji mogą być małe wdrożenia Małe wdrożenia mają to do siebie, że są małe [ ] i jest ich dużo. Pośpiech i brak naszej koncentracji może spowodować, że łatwe zlecenie zamienia się w koszmar.
  8. Końcowy efekt nieudanej zmiany głównie odczuwają użytkownicy Potencjalna Awaria odcina ich od naszych treści. Może ich ominąć ciekawe wydarzenie lub nie oglądną ulubionego programu. Ale [ ] nie zapominajmy też o ludziach, którzy te zmiany wykonują. Pojawia się ogromny stres i presja [ ] w końcu nie ogląda nas 100 osób. Przy dzisiejszych wymaganiach naszych użytkowników co do stabilności działania [] ->nie możemy sobie pozwolić na zbyt częste błędy. Potrzebujemy dodatkowej pomocy która powie nam kiedy zmiany które robimy mogą spowodować problem
  9. Innym przykładem są ręczne zmiany Czyli sytuacja dość powszechna dla środowiska sieciowców to praca która wymaga często logowania się do wielu rożnych systemów jest to praca żmudną i prowadzi do pomyłek. Co jakiś czas odkrywaliśmy różnice w ustawieniach pomiędzy urządzeniami których oczywiście nie powinno być. Konfiguracje nie były spójne a problemy uwidaczniane były podczas testów. Brakowało nam systemu pomagającego utrzymać porządek i współdzielić miedzy urzadzeniami.
  10. Coraz więcej systemów instalujemy w formie wirtualnych maszyn. Zastępujemy drogie sprzętowe rozwiązania często darmowymi ich odpowiednikami. Skalujemy je już nie poprzez dokładanie mocy dla pojedyńczej maszyny a uruchamianie nowych instancji. Zauważyliśmy, że nie będziemy w stanie nadążyć z pracą robiąc wszystko ręcznie z linii poleceń.
  11. W pierwszej chwili może przyjść na myśl użycie SDN Są obszary których to rozwiązanie jeszcze na chwilę obecną nie obejmuje
  12. Widząc te potrzeby zaczeliśmy nakreślać nasze nowe rozwiązanie 1)Chcieliśmy posiadać system który podpowie nam kiedy rzeczy które robimy mogą spowodować awarie 2)Kiedy już jednak coś jednak zepsujemy chcemy umieć wycofać całe wdrożenie w łatwy sposób.. 3)Fajnie aby nasza konfiguracja była niezależna od producenta Pomoże nam zamieniać urządzenia w tych miejscach gdzie ma to sens. 4)Generujemy I wysyłamy pełną konfigurację za każdym razem. Jeżeli są jakieś ręcznie wprowadzone zmiany chcemy o nich wiedzieć. Zmniejszamy również rolę backupu.Nie chcemy być zaskoczeni brakiem dostępu do kofiguracji kiedy jest nam potrzebna 5)Mamy więcej informacji na temat historii konfiguracji.Jakie potrzeby biznesowe spełnia
  13. Zaczeliśmy poszukiwania nowego rozwiązania. Chcieliśmy użyć sprawdzonego modelu który wiemy że działa. Przyglądaliśmy się jakie procesy wykorzystuja inne zespoly w firmie Spodobała nam się forma działania zespołów devops. Wymagało to jednak oderwania się od tego co znamy I środowiska do któregi byliśmy przyzwyczajeni. Nie tylko zmieniły się narzędzia ale także podejście do pracy.
  14. Czym jest CI ? Mi sie kojarzyło z .. Skrót od Continuous .... czyli jeden z procesów zespołu Devops Proces ten odpowiedzialny jest za obszar testów DevOps to zespoły skupione na wydzielonym produkcie złożone z programistów i administartorów. Cechą takich zespołów jest nastawienie na automatyzację najlepiej wszystkiego co możliwe Począwszy od testowania nowego kodu, kończąc na wdrożeniu nowej wersji na produkcyjne serwery Cykl zmian jest iteracyjny oznacza to, że Kod jest pisany I testowany małymi fragmentami. Dzięki temu nowe funkcjonalności mogą być dostarczane szybciej a błędy mogą zostać wykryte wcześniej.
  15. Dzięki temu, że kod pisany jest małymi częściami pozwala to na jego częstsze testy. Osoba pisząca kod otrzymuje szybciej informacje czy dalej aplikacja działa poprawnie z nowa funkcjonalnoscia. Testy polegają zarówno na sprawdzeniu kodu jak I uruchomieniu aplikacji na wydzielonym środowisku.Za cały ten etap odpowiada proces nazywany – Contuniuous Integration Spróbujmy ta wizje przyrownac do naszego swiata sieci. Zazwyczaj w sieciach robimy zmiany które sa dobrze okreslone aby spelnic konkretne potrzeby – ACL, routing Używamy do tego składni przypominającej czasem język programowania Czy nasze zmiany możemy wprowadzać w taki sposób jak pisze się kod aplikacji  ?  Czy możemy dodatkowo testować nasze zmiany zanim wejdą na produkcję ? Brzmiało to ciekawie i postanowiliśmy tego spróbować Zobaczmy jak można taki model zaimplementować także dla sieci. 
  16. Podstawą jest system kontroli wersji. Sledzi zmiany jakie dokonujemy w plikach. Informacje o zmianach zazwyczaj wysyłamy do zdalnego serwera. W najprosszej wersji występuje pojedyńcza Gałąź master do której wysyła się zmiany. Nie jest to jednak wystarczające , gdyż master powinien oznaczać wierne odwzorowanie stanu na produkcji. Nie może zawierać błędów które mogą wywołać awarię lub coś uszkodzić. Dlatego stosuje się dodatkowe gałęzie nazywanymi Branchami Branch tworzy miejsce w którym mozemy dokonywac zmian bez obawy o wywolanie awarii. W branchu realizujemy nowa funkcjonalnosc. Nie musi zawierać zawsze poprawnego kodu. Informacje o porblemie dostarcza CI Jeżeli posiadamy poprawny kod Otwieramy pull request. Wymagane jest tez potwierdzenie innej osoby z zepsołu Zmiany dodajemy do mastera – merge w Przypadku awarii wycofujemy ostatnie zmiany Cofamy do poprzedniej wersji
  17. Jak wygląda proces zmian u nas? Po otrzymaniu przez zepsół zadania. Tworzymy nowy branc w którym będziemy 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 włączenie ich do głównej gałęzi repozytorium A końcowo również wprowadzeie zmian na urządzenia produkcyjne. Brzmi prosto
  18. Do tego jednak potrzebny jest cały zestaw narzędzi. Wybraliśmy dostępne już u nas narzędzia firmy atlassian Mozna podobny system zbudować w oparciu o rozwiazania opensource Definiujemy zmienne w języku yaml a szablony w jinja Release – wlaczenie zmian do mastera i deploy bitbucket/bamboo Testy w vagrant I skrypty shell , python
  19. Zespoł otrzymuje zadanie do wykonanie. Jest to efekt planowania ktory odbywa sie w cyklach u nas dwutygodniowych. Wcześniej 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.
  20. 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ą ról Role Realizuja one okreslone funkcje np konf. Prot bgp, ospf, tunele ipsec. wieloplatformowość osiągamy za pomoca roznych wersji szablonow uzywanych w zaleznosci od systemu
  21. Pliki konfiguracyjne w yaml zawsze zawieraja ta sama skladnie niezaleznie od producenta Zmienne wykorzystywane sa przez szablony I one generuja koncowy kod Sama generacja kodu jest juz testem skladni yaml oraz skladni szablonow jinja Wygenerowana konfiguracje poprzez role sprawdzamy czy akceptują urzadzenia.
  22. Sprawdzamy poprawnosc konfiguracji dla wszytkich gałęzi Po wykryciu w nich zmian. Jest mocno zintegrowany z repozytorium Testy przeprowadzane w wydzielonym srodowisku wirtualnym Dostarcza informacje zwrotne o wyniku testów
  23. Budujemy srodowisko wirtualne aby przetestować poprawnośc konfiguracji. Za pomoca pojedynczego pliku okreslamy jakie systemy chcemy uzyc oraz jak maja byc ze soba polaczone Dostępnych jest wiele obrazów w publicznym repozytoriu w tym dzisiaj wykorzystywane Vagrant posiada integracje z systemami zarzadzania konfiguracja umozliwia to zdefioniwanie grup czy dodatkowych zmiennych Dzieki V. Jesteśmy w stanie w ten sposób przetestowac kod generowany przez nasze role i oraz fragmenty środowisk które są powtarzalne - np leaf&spine, vpn Wagrant wymaga modyfikacji konfiguracji aby uruchomic ja w srodowisku testowym - Uklad interfejsow
  24. W miejscach gdzie konfiguracja jest krytyczna chcemy testować ja w całości Przykładem takiego miejsca jest styk z Internetem. Dzięki wirtualnemu odpowiednikowi dla naszych routerów sprzętowych czyli vMX Jestesmy w stnanie sprawdzić konfigurację w całosci . Możemy zasymulować interfejsy o różnej prędkości 1/10/100 Nie musimy modyfikować konfiguracji która 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.
  25. Testy wykonujemy za pomoca skryptow python oraz przydatna jest biblioteka napalm jednolite rozwiazanie do konfiguracji i weryfikacji systemow Bibilioteka zarówno dostarcza mozliwosc konfiguracji za pomoca ansible czy salt Rowniez jest bardzo uzyteczna dla przeprowadzania testów 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
  26. Code review gdyz testy rowniez dopisujemy iteracyjnie mozemy nie miec uwzglegnionego przypadku testy rowniez wykonywane na masterze Upewniamy sie ze zmiany innej osoby nie wykluczaja sie z naszymi nie nastepuje konflikt pomiedzy ustawieniami
  27. 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 .
  28. Już dziś nawet tutaj gdzy interesujesz sie sprzętem pytaj o autmatyzację. Interesuj się jakie wasparcie jest dla automatyzacji. Czy możesz wrzucić pełną konfigurację czy pracować tylko na pojedynczych komendach. Nie zostancie z urzadzeniami ktore bedziecie mogli tylko konfigurowac recznie
  29. To Co my osiągneliśmy System który wspomaga nas w codziennej pracy. Przeprowadza testy których nie bylibysmy w stanie wykonywac recznie. Jest to dobra baza do budowy dalszej automatyzacji. Mamy zawszemożliwość wycofania zmian w naszym srodowiskudo poprzedniego stanu. Zmiany są przejrzyste i widoczne dla wszystkich Wierzymy, że to dopiero początek naszej drogi. Zapraszamy do wspólnej podróży
  30. Zapraszam do kontaktu Odwiedzenia strony na github Slack I oddania glosu za pomoca aplikacji eventory jezeli podobala wam sie moja prezentacja.