Uwielbiam projekty trwające tydzień, a projekty trwające rok mnie przerażają. W Agile bardzo podobała mi się koncepcja MVP oraz inkrementu, to naprawdę moje: zrealizować działający element, wdrożyć go i iść dalej.
Transformacja DevOps, o której mówi się w książkach i na konferencjach, to właśnie projekt trwający rok. Lub lata.
Tworzyliśmy nasz kurs DevOps w paradygmacie "MVP DevOps w jednym sprincie" i "przygotowanie do inkrementów". A mówiąc ludzkim językiem, chodzi o to, żeby uczestnik po powrocie mógł natychmiast coś wdrożyć u siebie i uzyskać korzyść.
MVP DevOps: w kursie znajdują się narzędzia dla podstawowych procesów DevOps. Nie stawialiśmy sobie za cel omówienia i porównania wszystkich systemów CI/CD ani odkrywania głębi podejścia Infrastructure as Code. Dajemy jeden czytelny stos: Gitlab CI/CD, Ansible, Terraform, Packer, Molecule, Prometheus, EFK. Można przyjść z kursów, zbudować z materiałów edukacyjnych infrastrukturę dla pilotażowego projektu i pracować w niej.

Przygotowanie do inkrementów: każdy element dajemy z dużą ilością praktyki i przykładami. Można wziąć jedno narzędzie i zająć się jego wdrażaniem według rysunków edukacyjnych. Na przykład napisać playbook Ansible do wdrażania środowisk dev lub podłączyć bota i zarządzać serwer z telefonu. To znaczy, w ciągu tygodnia uzyskać konkretny praktyczny wynik. Niech będzie on w nieskończoność odległy od transformacji DevOps całej firmy, ale jest, jest tutaj, działa i przynosi korzyść.
Tematy Słyerma DevOps
Temat nr 1: Najlepsze praktyki Git — mówi samo za siebie.
Temat nr 2: Praca z aplikacją z perspektywy rozwoju — inżynier potrzebuje kompetencji administratora i programisty, dlatego mówimy administratorom o rozwoju.
Temat nr 3: Podstawy CI/CD
- Wprowadzenie do automatyzacji CI/CD
- Podstawy pracy z Gitlab CI
- Najlepsze praktyki z gitlab-runner
- Narzędzia bash, make, gradle jako część CI/CD i nie tylko
- Docker jako sposób rozwiązania problemów CI
Temat nr 4: Gitlab CI/CD w produkcji
- Współbieżność podczas uruchamiania jobów
- Kontrola i ograniczenia wykonania: only, when
- Praca z artefaktami
- Szablony, includy i mikroserwisy: upraszczamy wdrażanie
Zapoznajemy studentów z podstawowymi pojęciami i koncepcjami CI/CD oraz narzędziami do realizacji CI/CD. W rezultacie student będzie mógł samodzielnie wybrać wzór projektowania CI/CD i odpowiednie narzędzie do realizacji.
Następnie pokazujemy implementację CI/CD w GitLabie oraz omawiamy konfigurację, a także analizujemy zaawansowane sposoby użycia GitLab CI. W efekcie student będzie w stanie samodzielnie skonfigurować GitLab CI dla swoich projektów.
W porównaniu do pierwszego Slurmo DevOps, skróciliśmy teorię o połowę (po godziny na temat), zrezygnowaliśmy z przeglądu wszystkich systemów i pozostawiliśmy tylko GitLab CI. Skupiliśmy się na praktyce, dodając wiele najlepszych praktyk.
Temat nr 5: Infrastruktura jako kod
- IaC: podejście do infrastruktury jak do kodu
- Dostawcy chmur jako dostawcy infrastruktury
- Narzędzia do inicjalizacji systemów, budowa obrazów (packer)
- IaC na przykładzie Terraform
- Przechowywanie konfiguracji, współpraca, automatyzacja aplikacji
- Praktyka tworzenia playbooków Ansible
- Idempotencja, deklaratywność
- IaC na przykładzie Ansible
Skróciliśmy część teoretyczną o UI i openstack cli, skupiając się na praktyce.
Rozpatrzymy dwa podejścia IaC, używając tej samej aplikacji, pokazując zalety i wady każdego z podejść. W rezultacie student zrozumie, które podejście gdzie zastosować, i będzie mógł pracować zarówno z Terraform, jak i z Ansible.
W temacie o Terraformie praktycznie omówimy pracę zespołową i przechowywanie stanu w bazie danych. Podczas pracy z modułami student sam napisze i skonfiguruje moduł, nauczy się z nim pracować: ponownie używać i wersjonować. Dodamy pracę z Consul, pokażemy, w jakich przypadkach jest on potrzebny i jak go poprawnie używać.
Temat nr 6: Testowanie infrastruktury
- Zastanawiamy się, dlaczego nie pisze się testów?
- Jakie testy istnieją w IaC?
- Analizatory statyczne, czy są naprawdę bezużyteczne?
- Testowanie jednostkowe IaC na przykładzie Ansible + Molecule
- Testowanie jako część CI
- Testy na sterydach, czyli jak nie czekać po 5 godzin na zakończenie testów dla IaC
Skróciliśmy część teoretyczną, mniej mówienia o Vagrant/Molecule, więcej praktyki i bezpośredniego testowania, z naciskiem na lintery i pracę z nimi. Patrzymy z perspektywy CI
jak przyspieszyć testowanie. W praktyce będzie:
- własny linter, który sprawdza obecność obowiązkowych zmiennych dla hosta w zależności od roli;
- dodajemy do CI testowanie tylko tych ról, które się zmieniły, co pozwala znacznie skrócić czas trwania testów;
- dodajemy testowanie scenariuszy. Uruchamiamy aplikację całkowicie jako test integracyjny.
Temat nr 7: Monitorowanie infrastruktury z Prometheus
- Jak zbudować zdrowy system monitorowania
- Monitorowanie, jako narzędzie do analizy, efektywności rozwoju i stabilności kodu, jeszcze przed wprowadzeniem na rynek
- Konfiguracja prometheus + alertmanager + grafana
- Przechodzimy od monitorowania zasobów do monitorowania aplikacji
Będziemy dużo mówić o monitorowaniu mikroserwisów: identyfikatory żądań, narzędzie do monitorowania API. Będzie wiele najlepszych praktyk i dużo pracy samodzielnej.
Napiszemy własny eksporter. Skonfigurujemy monitorowanie nie tylko produkcyjnej infrastruktury i aplikacji, ale także budów w Gitlabie. Zobaczymy statystyki dotyczące nieudanych testów. Przyjrzymy się, jak będzie wyglądać monitorowanie bez healthCheck i z nim.
Temat nr 8. Logowanie aplikacji z ELK
- Przegląd Elastic i jego narzędzi
- ELK/Elastic Stack/x-pack — co jest co i jaka jest różnica?
- Jakie zadania można rozwiązać przy pomocy ElasticSearch (wyszukiwanie, przechowywanie, cechy skalowania, elastyczność konfiguracji)
- Monitorowanie infrastruktury (x-pack)
- Logi kontenerów i aplikacji (x-pack)
- Logowanie na przykładzie naszej aplikacji
- Praktyki pracy z Kibana
- Open Distro for Elasticsearch od Amazon
Temat został całkowicie przerobiony, prowadzi go Eduard Medwiediew, wielu z was widziało go na webinarze o DevOps i SRE. Opowie i pokaże najlepsze praktyki pracy z EFK na przykładzie aplikacji edukacyjnej. Będzie praktyka z Kibana.
Temat nr 9: Automatyzacja infrastruktury z ChatOps
- DevOps i ChatOps
- ChatOps: mocne strony
- Slack i alternatywy
- Boty dla ChatOps
- Hubot i alternatywy
- Bezpieczeństwo
- Testowanie
- Najlepsze i najgorsze praktyki
W ChatOps dodaliśmy praktykę autoryzacji z podziałem uprawnień, potwierdzenie działań przez innego użytkownika, teorię i praktykę alternatywy Slack w postaci Mattermost, teorię testów jednostkowych i integracyjnych dla bota.
Słórm DevOps startuje 30 stycznia. Cena — 30 000.
Dla tych, którzy dotrwali, zniżka 15% na kurs DevOps po kodzie promocyjnym habrapost.
Rejestracja
Będę wdzięczny, że was zobaczę na Słórmach!
Źródło: habr.com
