Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Continuous Integration

Podobne prezentacje


Prezentacja na temat: "Continuous Integration"— Zapis prezentacji:

1 Continuous Integration
Marcin Daczkowski AIS.PL

2 Jeśli się czegoś boisz, rób to tak często jak tylko możliwe

3 Agenda Wprowadzenie Agile Development Składowe Jak wdrożyć? Demo
Co to jest? Do czego służy? Jakie problemy rozwiązuje? Agile Development Składowe Jak wdrożyć? Demo

4 Wprowadzenie - Definicja
Sposób wytwarzania oprogramowania bazujący na: częstej integracji prac członków zespołu automatycznej jej weryfikacji Cel: Minimalizacja błędów integracji skrócenie czasu ich wykrycia Ojcowie CI: Martin Fowler Kent Beck

5 Wprowadzenie - Zalety Oszczędność czasu
Kod bazowy zawsze działa Brak lub ograniczona faza finalnej integracji Szybkie zgłaszanie błędów Automatyzacja tworzenia wydań Zwiększona zaufanie programistów Kod bazowy zawsze się buduje Ciągłe testy poprawności Redukcja ryzyka i kosztów

6 Rys historyczny „Prehistoryczyne” (?) podejście
Schemat wytwarzania oprogramownia: Rozdziel zadania do pracy współbieżnej Integruj w końcowym etapie życia projektu Wysokie ryzyko porażki projektu SCM (ang. Source Code Management) Jedno repozytorium kodu Częściowa integracja podczas wgrywania zmian Techniki rozgłęziania(ang. branching) Samodzielnie niewystarczający dla realizacji idei CI

7 Najlepsze praktyki Pojedyncze repozytorium kodu
Automatyzacja procesu budowania Automatyzacja testowania Środowisko pre-produkcyjne Częste integrowanie kodu w repozytorium Szybki proces budowania projektu Automatyzacja procesu wdrożenia

8 Schemat działania Programista pobiera kod do prywatnej przestrzeni
Programista zapisuje zmiany w repozytorium Serwer CI buduje system Serwer CI uruchamia testy

9 Schemat działania (c.d.)
Integracja zakończona sukcesem Serwer CI archiwizuje kod źródłowy Serwer CI wytwarza artefakty Serwer CI informuje programistów o sukcesie Integracja zakończona porażką Serwer CI informuje programistów o sytuacji wyjątkowej Programista zgłasza się na ochotnika Programista zapisuje poprawki w repozytorium

10 Agile Development Metodologie Agile eXtreme Programming
Bądź zwinny bo wymagania ulegną zmianie Bądź elastyczny i używaj tylko tego co potrzebne eXtreme Programming Testy najpierw Programowanie w parach Częsta integracja Częste wydania Integracja sekwencyjna Zbiorowa odpowiedzialność (Scrum, XP)

11 Składniki Serwera CI Automatyczne budowanie
Repozytoria kodu z wersjonowaniem Wyzwalacze budowania (MSBuild, NMaven, Visual Studio) (CVS, SVN, Perforce, SourceSafe) (po zmianach, zaplanowany, ręczny)

12 Składniki CI (c.d.) Testy Analiza kodu Archiwizacja wydań
Jednostkowe Acceptance Testing Analiza kodu Przegląd jakości kodu Metryki Archiwizacja wydań Automatyczna instalacja (NUnit, VS Tests) (FitNesse, Watir) (FxCop, VS Code Analysis) (NDepend)

13 Składniki CI (c.d.) Wytwarzanie artefaktów Powiadomienia Dokumentacja
Raporty Powiadomienia (DocProject, NDoc) (Testy: Wyniki, Czasy, Pokrycie; metryki i statystyki kodu ) (Mail, IM, Tray)

14 Składniki CI (c.d.) Interfejs użytkownika Rozszerzalność Administracja
Dashboard Dostęp do raportów i statystyk Rozszerzalność

15 Jak wdrożyć? Stopniowa migracja starych projektów
Szersze wykorzystanie CI w nowych Zależności między projektami Produkty CruiseControl.NET TeamCity

16 DEMO CruiseControl.NET

17 Pytania?

18 Zasoby uousIntegration.html ntegrateoften.html


Pobierz ppt "Continuous Integration"

Podobne prezentacje


Reklamy Google