Continuous Integration

Slides:



Advertisements
Podobne prezentacje
Agile w praktyce, czyli jak to robimy naprawdę
Advertisements

Programowanie Ekstemalne
Inżynieria Oprogramowania
Zarządzanie konfiguracją oprogramowania
Łatwa obsługa Prosta instalacja Wieczysta licencja Praca w sieci
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Opis metodyki i procesu produkcji oprogramowania
Role w zespole projektowym
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
EXtreme Programming » Magdalena Tchorzewska.
Zarządzanie Wersjami Na przykładzie pakietu Microsoft Visual SourceSafe 6.0 (VSS) Krzysztof Trela, s1761.
Metodologia XP Husaria.
Lekkie metodyki programowania: Szansa czy zagrożenie?
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Dyscyplina i zwinność w projektach informatycznych
Cykle życia oprogramowania
Agile Programming a jakość
Wymagania jakości w Agile Programming
Metodyki Lekkie Agile Methodologies
Rational Unified Process
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Analiza, projekt i częściowa implementacja systemu obsługi kina
Warsztat: "Automatyzacja testów (JAVA) - od podstaw"
Wykład 2 Cykl życia systemu informacyjnego
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Promotor: dr.inż. Aleksandra Werner
Adam Gabryś , v1.1,
Nowoczesny system zarządzania firmą
Continuous Integration i jakość kodu
STOWARZYSZENIE NA RZECZ ROZWOJU SPOŁECZEŃSTWA INFORMACYJNEGO E-POŁUDNIE Callcenter dla ISP Szyb Elżbiety Chorzów, 15 marca 2013 r.
Największe problemy w projektach informatycznych IT Opracował: Karol Pietrzak na podstawie artykułu z SDJ/2007 IX.
Microsoft Solution Framework
System wspierający obsługę przedmiotów projektowych
Wymiana integracja ? oprogramowania dr Danuta Kajrunajtys.
Licencjonowanie narzędzi dla programistów
Refaktoryzacja Robert Pająk.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Projekt i implementacja uogólnionego mechanizmu Java RMI
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Autor: Marcin Polak Promotor: dr inż. Paweł Kasprowski
ZASADY EFEKTYWNEGO PISANIA TESTÓW
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 – 321 Bydgoszcz
1 Optymalizacja modelu IT do potrzeb biznesowych w firmie Międzyzdroje, Maja 2014r.
Metodologia CASE. Przyczyny użycia narzędzi CASE Główną przesłanką użycia narzędzi CASE jest zwiększenie produktywności i jakości produkowanych systemów.
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Systemy kontroli wersji Autorzy:  Mirosław Jedynak  Adam Łączyński.
Agile Manifesto Manifest Zwinnego Wytwarzania Oprogramowania
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Efektywne tworzenie oprogramowania 2008/2009. Forty Years of Software Engineering Konferencja w Garmisch – uczestników Prof. Bauer TUM przewodniczący.
Bartosz Baliś, 2006 Wstęp do Inżynierii Oprogramowania Bartosz Baliś.
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Wersjonowanie i konfiguracja Rafał Hryniów. Zarządzanie konfiguracją Każdy artefakt jednoznacznie identyfikowany Zawsze wiadomo który artefakt jest najnowszy.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
STOCK – nowoczesne technologie w zarządzaniu majątkiem.
1. Promotor i skład zespołu menedżerskiego 2. Rozwiązywany problem 3. Wymagania 4. Wybór zespołu programistów 5. Narzędzia / Technologie 6. Przypadki.
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
TWOJA CYFROWA PRZYSZŁOŚĆ. JUŻ DZISIAJ. Marcin Parczewski © 2016 Software AG. All rights reserved. For internal use only.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
W pętli Ciagłej Integracji…. Paweł Możdżen ERICPOL Adam Bąk.
ŚRODOWISKO PRACY ZESPOŁU PROGRAMISTYCZNEGO BAZUJĄCE NA ROZWIĄZANIACH OPEN SOURCE Janusz Marchewa Łódź, r.
Agile Programming a jakość
Jak 5 narzędzi złożyło się na sukces projektu Hurtowni Danych
Przygody z EventSourcing i CQRS
Zarządzanie projektami informatycznymi
Zarządzanie projektami
IEEE SPMP Autor : Tomasz Czwarno
Zapis prezentacji:

Continuous Integration Marcin Daczkowski AIS.PL

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

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

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

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

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

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

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

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

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)

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)

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)

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)

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

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

DEMO CruiseControl.NET

Pytania?

Zasoby http://www.martinfowler.com/articles/contin uousIntegration.html http://ccnet.thoughtworks.com http://www.jetbrains.com/teamcity/ http://www.extremeprogramming.org/rules/i ntegrateoften.html