Continuous Integration

Kod: tools-CI-CD
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.

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. Podstawy
    1. Co to jest ciągła integracja
    2. Cechy
    3. Korzyści
    4. 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. Automatyzacja na serwerze
      1. Opis możliwości automatyzacji oferowanej przez serwer CI
    4. Prostota kontra elegancja
      1. Przedstawienie dylematu pomiędzy stosowaniem rozwiązań szybkich a rozwiązań czasochłonnych i eleganckich, jakie są ich zalety, wady oraz kiedy warto je stosować
  3. Serwer ciągłej integracji
    1. Narzędzie
      1. Pierwsze zaprezentowanie konkretnego serwera CI, np.: Atlassian Bamboo, przedstawienie procesu instalacji oraz podstawowych jego elementów i funkcji
    2. Architektura
      1. Przedstawienie architektury działającego systemu, jakie są jej cechy, jak przebiega komunikacja, jakie są możliwości jej modernizacji oraz jakie posiada wymagania środowiskowe
    3. Podstawowe rozwiązania
      1. W tej części przedstawiona zostanie implementacja najczęściej wykonywanych zadań. Są to: tworzenie planu automatycznie kompilującego kod źródłowy, jak pracować z wynikami planów, zarządzanie użytkownikami oraz zaprezentowanie dostępnych możliwości automatycznego powiadamiania i uruchamiania.
  4. 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, 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łędó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
  5. 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
  6. 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ącyh
    4. Trudne problemy
      1. Przedstawienie podstawowych i najczęściej występujących problemów oraz ich potecjalnych rozwiązania.
  7. 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żytkownika 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ących, operacji bazodanowych podlegających automatyzacji oraz przykładowych rozwiązań/strategii
  8. Continuous Delivery
    1. Wprowadzenie
    2. Korzyści
    3. Co potrzebujemy
    4. Zalecane praktyki
      1. Przedstawienie zalecanych rozwiązań i pomysłów wspomagających stosowania Continuous Delivery
    5. Automatyczne wdrażanie
      1. Przedstawienie podstawowych informacji oraz korzyści, podanie przykładów konkretnych implementacji dla serwerów Tomcat, WebSphere, WebLogic
  9. Przegląd dostępnych rozwiązań
    1. Przegląd
      1. Zaprezentowanie najciekawszych obecnie dostępnych serwerów CI( Atlassian Bamboo, Hudson/Jenkins, AntHillPro i inne) oraz elementów które je wyróżniają
    2. Samodzielny wybór
      1. Przedstawienie najważniejszych cech i rad które pozwalają na wybranie odpowiedniego narzędzia przez uczestnika kursu
    3. Build pipe lines tools
      1. Przedstawienie alternatywy dla skomplikowanych serwerów w postaci prostych rozwiązań jak np.: BuildBot, omówienie zalet, wad i potencjalnych zastosowań


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ń