Jenkins - Continuous Integration

Kod: tools-Jenkins-CI
Kategoria: Narzędzia
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 2 dni
Grupa docelowa: developerzy
testerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Podczas szkolenia uczestnicy poznają informacje oraz praktyczne techniki pozwalające na samodzielne projektowanie oraz implementowanie procesu ciągłej integracji z wykorzystaniem Jenkins.

W pierwszej kolejności zaprezentowane zostaną zagadnienia podstawowe takie jak: instalacja i konfiguracja narzędzi, automatyzacja kompilacji, różnych rodzajów testowania oraz statycznej analizy kodu.

Następnie poruszone zostaną zaawansowane rozwiązania, takie jak: integracja z systemami zewnętrznymi, współbieżne wykonywanie planów oraz wykorzystanie procesu ciągłej integracji podczas wdrażania koncepcji „Continous Delivery”.

Na zakończenie uczestnicy poznają polecane metody projektowania i optymalizacji oraz wskazówki pozwalające wybrać narzędzia najbardziej odpowiadające ich potrzebom.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Poprawienie jakości oprogramowania
  • Automatyzacja zadań
  • Continuous Delivery
  • Zalecane wzorce i praktyki

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Przedstawienie koncepcji Continuous Integration (CI).
    1. Co to jest ciągła integracja: Cechy i Korzyści
    2. Ciągła integracja jako proces
      1. Prezentacja praktyk programistycznych wymaganych do poprawnej implementacji CI, wykazanie, że CI to proces a nie tylko narzędzie do automatycznej kompilacji
  2. Automatyzacja
    1. Dlaczego warto automatyzować
      1. Przedstawienie korzyści płynących z automatyzacji zadań
    2. Narzędzia
      1. Przedstawienie najpopularniejszych narzędzi umożliwiających automatyzację (Ant, Maven, Gradle i inne), ich zalet, wad oraz potencjalnych zastosowań.
    3. Serwer ciągłej integracji
  3. Opis dostępnych narzędzi dla CI (przegląd konkurencyjnych rozwiązań do Jenkinsa).
  4. Jenkins overview:
    1. Jenkins a Hudson
    2. Instalacja
    3. Wymagania
    4. Konfiguracja
    5. Dostęp i uprawnienia
    6. Dobre praktyki, ciekawostki
    7. Backupy
    8. Narzędzia towarzyszące
  5. Pluginy:
    1. Zestaw absolutnie podstawowy
    2. Pluginy rozwiązujące konkretne problemy
  6. Analiza jakości kodu:
    1. Findbugs,
    2. Checkstyle/pmd
    3. Pokrycie kodu testami i inne metryki
    4. Integracja z narzędziem udostępniającym (a, b, c)
  7. Testowanie
    1. Wprowadzenie
      1. Ogólne przedstawienie możliwości testowania za pomocą serwera CI
    2. Korzyści
    3. Testy jednostkowe
      1. Przedstawienie możliwości wykonywania testów jednostkowych oraz sposobu pracy z wynikami
    4. Testy funkcjonalne
      1. Przedstawienie możliwości automatyzacji testowania funkcjonalnego za pomocą Selenium oraz RobotFramework’a, opis przebiegu i możliwości integracji z serwerem CI,
      2. Przykłady użytkowania oraz pracy z wynikami
    5. Testy wydajnościowe
      1. Przedstawienie najpopularniejszych narzędzi umożliwiających przeprowadzanie testów wydajnościowych oraz jakie są możliwości ich integracji z serwerem CI
    6. Użyteczne opcje
      1. Opis użytecznych opcji wspomagających testowanie, oraz jak wygląda praca z wynikami testów(raportowanie błedów, opcje powiadamiania)
    7. Optymalizacja
      1. Przedstawienie praktyk i rozwiązań umożliwiających optymalizację wykonywania testów, aby wyniki były bardziej wiarygodne i szybciej dostępne
  8. Statyczna analiza kodu
    1. Narzędzia
      1. Przegląd dostępnych narzędzi(PMD, Sonar, CheckStyle, FindBugs), jakie są ich zalety, wady oraz potencjalne zastosowania
    2. Integracja
      1. Opis procesu integracji z serwerem CI, przykłady użytkowania oraz pracy z wynikami
    3. Korzyści
  9. "Distributed Builds" z użyciem Jenkinsa.
    1. kiedy używać
    2. jak skonfigurować
  10. Automatyczny deployment z użyciem Jenkinsa
  11. Uruchamianie testów automatycznych przykładowo: funkcjonalne lub integracyjne oraz wydajnościowe - np z wykorzystaniem frameworków do testów Python lub Java.
    1. Cucumber
    2. Capybara
  12. Przykład procesu CI z użyciem Jenkinsa - czyli case-study od commit'a do release'a zawierające kroki:
    1. Commit to dev branch,
    2. Run unit test,
    3. Run code analysis plugins,
    4. Deploy to test environment,
    5. Run integration test/performance test,
    6. Build documentation,
    7. Promote package to stable when all test passed.
  13. Zalecane praktyki
    1. Przykłady optymalizacji
      1. Przedstawienie przykładów oraz kluczowych praktyk i elementów które pozwolą uczestnikom na dalszą samodzielną optymalizację
    2. Wzorce i anty-wzroce
      1. Zaprezentowanie najczęściej występujących błędów projektowych oraz ogólnie sprawdzonych i rekomendowanych praktyk.
    3. Repozytorium Maven’a
      1. Przedstawienie możliwości wykorzystania repozytorium Maven’a w środowisku CI, jak również korzyści i wyzwań z tego płynąch
    4. Trudne problemy
      1. Przedstawienie podstawowych i najczęściej występujących problemów oraz ich potencjalnych rozwiązania.
  14. Zaawansowane praktyki
    1. Rozproszone budowanie
      1. Zaprezentowanie możliwości wykonywania planów w środowisku rozproszonym, jakie płyną z tego korzyści oraz jakie niesie to wyzwania
    2. Integracja z systemami zewnętrznymi
      1. Zaprezentowanie konkretnych przykładów użytkowania CI w środowisku Cloud czy też integracji z narzędziami zewnętrznymi, np.: Atlassian JIRA
    3. Rozszerzanie funkcjonalności
      1. Opis możliwości rozszerzania funkcjonalności popularnych serwerów CI za pomocą pluginów, tworzenie i konfiguracja
    4. Współbieżność
      1. Przedstawienie funkcjonalności współbieżnego wykonywania planów, przykłady zastosowań, korzyści i kosztów
    5. Wspieranie repozytoriów
      1. Omówienie wspieranych repozytoriów kodu źródłowego przez serwery CI, jakie oferują one funkcje pomocnicze, dodatkowo opis wsparcia dla DVCS(jak Git czy Mercurial), przykłady użytkowania
    6. Automatyczna integracja baz danych
      1. Przedstawienie koncepcji oraz korzyści z niej płynąych, operacji bazodanowych podlegających automatyzacji oraz przykładowych rozwiązań/strategii
  15. Nowe trendy i rozwiązania w CI
    1. Wprowadzenie do idei continuous delivery
      1. Wprowadzenie
        1. Korzyści
        2. Czego potrzebujemy
        3. Zalecane praktyki
      2. Przedstawienie zalecanych rozwiązań i pomysłów wspomagających stosowania Continuous Delivery
    2. Case study istniejących implementacji
    3. Pre-tested commit na przykładzie jenkinsa i gerrita


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail/Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń