Spośród wielu narzędzi, których będziesz używał, jednym z podstawowych będzie Docker. To w kontenerach najlepiej odpalić inne narzędzia takie jak Jenkis, Puppet, Ansible Tower czy nawet własną instancję GitLaba. Rozwiązanie takie sprawdza się zarówno na systemach produkcyjnych jak i w laboratorium. Wiele aplikacji jest od podstaw napisanych, lub zostało zoptymalizowane, do działania w kontenerach. Instalacja Dockera jest bardzo prosta. Pamiętaj jednak, że Docker zaraz po zainstalowaniu nie jest odpowiednio zabezpieczony, aby bezpiecznie go wykorzystywać poza domowym zaciszem lub labem.
Porady
Moje IDE, czyli w czym programuję
Tworzenie automatyzacji wiąże się z programowaniem. Mogą to być całe skrypty w Pythonie, playbooki Ansible czy konfiguracje Jenkinsa. Niezależnie od tego co chcesz stworzyć potrzebujesz do tego dobrego, najlepiej darmowego zintegrowanego środowiska (Integrated Development Environment, czyli IDE). Ułatwi Ci ono pisanie kodu, ale i zarządzanie nim w systemach kontroli wersji. Uwierz mi, edytor tekstu się nie sprawdzi.
Przez Piotr Wojciechowski, temu
Narzędzia
REST API w VMware Workstation Pro 15
VMware Workstation jest jedną z popularniejszych platform do wirtualizacji zasobów sprzętowych. Jest to naprawdę dobry produkt dla wszystkich inżynierów i entuzjastów, którzy nie mają lub nie potrzebują dedykowanego sprzętu klasy serwerowej do pracy. Jako maszynę wirtualną można uruchomić prawie dowolny system operacyjny, a nawet inny hypervisor – ESXi. Od wersji 15 oprócz możliwości zarządzania maszynami wirtualnymi za pomocą GUI dodana została opcja wykonywania niektórych czynności za pośrednictwem interfejsu programowalnego. Pokażę ci jak uruchomić i jakie daje możliwości interfejs REST API w VMware Workstation w wersji 15.0 i nowszych.
Przez Piotr Wojciechowski, temu
Felieton
Certyfikacja Cisco DevNet
Nie będę ukrywał, że nadchodząca premiera nowej ścieżki certyfikacyjnej Cisco DevNet była jedną z motywacji do stworzenia Szkoły DevNet. Jednak nie jedyną. Program zaproponowany przez Cisco jest ciekawy, ale nie można powiedzieć, że wyczerpujący. Nie chodzi o to, że skupiony jest na produktach oferowanych przez Cisco, co jest dość naturalne. Po prostu skonstruowany jest wokół jednego z obszarów automatyzacji. W większości rzeczywistych projektów będzie to działka zbyt wąska, a co za tym idzie może skutkować porażką całego projektu. Certyfikacja Cisco DevNet jest jednak bardzo dobrym punktem, aby po poznaniu fundamentów swobodnie rozwijać swoje kompetencje na innych obszarach automatyzacji.
Cisco DevNet, czyli co musisz umieć
Certyfikacja Cisco DevNet podzielona jest na dwa poziomy – Associate oraz Professional. Na poziomie podstawowym musisz zdać jeden ogólny egzamin. Przystępując do certyfikacji Professional konieczne jest zdanie dwóch egzaminów – ogólnego oraz jednego ze specjalistycznych. Podział taki wydaje się ciekawy i sensowny. Osoba zainteresowana wiedzą z zakresu automatyzacji w Data Center powinna się skupić na specyficznych zagadnieniach z tej działki, a nie na sucho zgłębiać tajniki Collaboration czy IoT.
Oprócz ogólnej wiedzy sieciowej związanej z zasadami działania sieci komputerowych czy projektowania infrastruktury możemy wyróżnić kilka obszarów technologicznych, których nie tylko podstawy należy zgłębić
- GIT – infrastrukturę programujemy, a nie konfigurujemy. Zatem piszemy swego rodzaju programy czy algorytmy. Podstawą zarówno wydajnej pracy grupowej jak i bezpieczeństwa jest odpowiednie zarządzanie kodem.
- REST API – jest to preferowana metoda komunikacji Twojego skryptu z urządzeniem czy chmurą publiczną. Osoby tworzące własne skrypty muszą nie tylko rozumieć jak działa REST API, lecz także jak w sposób bezpieczny zaimplementować je w swoim kodzie. Nie należy przy tym zapominać o starszych mechanizmach jak RESTCONF.
- Docker – konteneryzacji poddawane są nie tylko aplikacje, lecz także urządzenia sieciowe. Wiele narządzi do monitoringu czy automatyzacji domyślnie działa w kontenerach. Nic więc dziwnego, że znajomość Dockera jest niezbędna. Jednak wiedza o samym Dockerze często jest już niewystarczająca. Warto znać co najmniej jeden z dwóch najbardziej popularnych mechanizmów orkiestracji jakimi są Docker Swarm oraz Kubernetes.
- Ansible – jest to narzędzie do provisioningu konfiguracji i dalszego zarządzania nie tylko urządzeniami.
- YANG/YAML/JSON/XML – języki opisu struktury, tak je zbiorczo nazwijmy na razie. Bez nich ani rusz.
Zostaniesz programistą
Nawet jeżeli nie będziesz developerem piszącym kod, to jednak musisz oswoić się z myślą, że wchodzisz w świat projektów programistycznych. Przestajesz tworzyć konfigurację, a element aplikacji. Zatem twoje podejście do pracy musi być takie samo, albo co najmniej zbliżone do tego, jakie programiści wykorzystują w swojej pracy. Zacznij od zrozumienia czym jest CI/CD (Continuous Integration / Continuous Deployment) i jak to co stworzysz będzie wkomponowane w ten proces. Koniecznie zapoznaj się z takimi narzędziami jak Jenkins, Terraform, Puppet, czy wspomniany już Ansible.
Nie zapominaj jednak o fundamentalnej wiedzy z zakresu routingu, switchingu czy security. Nie pozwól zakurzyć się swojej wiedzy o różnych produktach. Zmieniając swoją rolę z “wyklikiwacza” konfiguracji w programistę nie zapomnij, że samo urządzenie czy aplikacja nadal działa tak samo. Twój router nie zmienił sposobu routowania pakietów ponieważ konfigurację wprowadziłeś za pomocą RESTCONF a nie CLI. Zainstalowany w sieci FirePower Thread Defence nadal w ten sam sposób będzie analizował zawartość pakietów niezależnie, czy konfigurację wprowadzisz za pomocą REST API czy “staroświeckiego’ GUI.
Projektując zautomatyzowany proces tak na prawdę piszesz algorytm. Sekwencję kroków do wykonania, na którą mogą wpływać różne zmienne. To też jest programowanie, choć może nie wiązać się z napisaniem nawet jednej linii kodu. Często może zostać sprowadzone do poukładania klocków i odpowiedniego zarządzania parametrami, które są do nich przekazywane i z nich odbierane. Jednak nadal jest to programowanie, w którym musisz myśleć o tym jakimi parametrami operujesz i jak poszczególne elementy algorytmu będą wpływały na siebie nawzajem.
Postaraj się o dostęp do środowiska testowego, nigdy nie eksperymentuj na środowisku produkcyjnym.
Przez Piotr Wojciechowski, temu