Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Innowacyjne metody.

Podobne prezentacje


Prezentacja na temat: "InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Innowacyjne metody."— Zapis prezentacji:

1 InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Innowacyjne metody monitorowania projektów informatycznych: Część 3: Ciągła integracja Bartosz Walter, Marcin Werla {Bartek.Walter,Marcin.Werla}@man.poznan.pl Szkolenie finansowane ze środków Europejskiego Funduszu Społecznego (75%) i budżetu państwa (25%) w ramach Zintegrowanego Programu Operacyjnego Rozwoju Regionalnego

2 Ciągła integracja – w teorii „…a common story of software projects: integration is a long and unpredictable process.”

3 Ciągła integracja – w teorii „But this needn't be the way.” – Martin Fowler (MF) „Continuous Integration” http://www.martinfowler.com/articles/continuousIntegr ation.html http://www.martinfowler.com/articles/continuousIntegr ation.html

4 Ciągła integracja – w teorii Pełna integracja: 1.Pełna rekompilacja całego kodu źródłowego 2.Stworzenie uruchamialnej postaci systemu i uruchomienie go w środowisku testowym 3.Uruchomienie wszystkich testów automatycznych Wszystkie kroki muszą zakończyć się sukcesem.

5 Ciągła integracja – w teorii Przykładowy scenariusz 1.Pobranie aktualnego kodu źródłowego z VCS 2.Wprowadzenie zmian w kodzie 3.Integracja na maszynie programisty 4.Synchronizacja kodu z VCS 5.Integracja na maszynie programisty 6.Przesłanie zmodyfikowanego kodu na serwer VCS 7.Automatyczna integracja na serwerze ciągłej integracji

6 Ciągła integracja – w teorii Zalety  Zmniejsza ryzyko wystąpienia problemów integracyjnych  Brak odrębnych sesji integracyjnych  Zmniejszenie liczby błędów wykrywanych dopiero na etapie integracji  Poprawa pracy zespołowej Ciągła integracja to jedna z podstawowych praktyk Extreme Programming. Extreme Programming

7 Ciągła integracja – w teorii Zalecane praktyki  Pojedyncze repozytorium kodu źródłowego – „…you should be able to walk up to the project with a virgin machine, do a checkout, and be able to fully build the system.” – MF

8 Ciągła integracja – w teorii Zalecane praktyki  Zautomatyzowane skrypty integracyjne – „…anyone should be able to bring in a virgin machine, check the sources out of the repository, issue a single command, and have a running system on their machine.” – MF

9 Ciągła integracja – w teorii Zalecane praktyki  Zautomatyzowane testy – „ Imperfect tests, run frequently, are much better than perfect tests that are never written at all.” – MF

10 Ciągła integracja – w teorii Zalecane praktyki  Częste przesyłanie zmian na serwer VCS – „ The more frequently you commit, the less places you have to look for conflict errors, and the more rapidly you fix conflicts.” – MF

11 Ciągła integracja – w teorii Zalecane praktyki  Każda zmiana powoduje wykonanie integracji „The whole point of continuous integration is to find problems as soon as you can. Nightly builds mean that bugs lie undetected for a whole day before anyone discovers them.” – MF „ Daily builds are for wimps.” – Kent Beck

12 Ciągła integracja – w teorii Zalecane praktyki  Integracja powinna być krótkim procesem „ Probably the most crucial step is to start working on setting up a staged build. The idea behind a staged build is that there are in fact multiple builds done in sequence.” – MF

13 Ciągła integracja – w teorii Zalecane praktyki  Testuj w środowisku jak najbardziej zbliżonym do produkcyjnego „ If you test in a different environment, every difference results in a risk that what happens under test won't happen in production.” – MF

14 Ciągła integracja – w teorii Zalecane praktyki  Ostatnia pozytywnie przetestowana postać binarna powinna być łatwo dostępna „ We've found that it's very hard to specify what you want in advance and be correct; people find it much easier to see something that's not quite right and say how it needs to be changed.” – MF

15 Ciągła integracja – w teorii Zalecane praktyki  Informacje o statusie integracji powinny być łatwo dostępne „ Continuous Integration is all about communication, so you want to ensure that everyone can easily see the state of the system and the changes that have been made to it.” – MF

16 Ciągła integracja – w teorii „Bubble, Bubble, Build's In Trouble” http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc

17 Ciągła integracja – w teorii „Bread as a display device” http://www.theregister.co.uk/2001/06/04/bread_as_a_display_device/ „…recently I saw someone experimenting with a dancing rabbit…” – MF

18 Ciągła integracja – w praktyce Typowa architektura: Programista Serwer VCS Serwer informacyjny Serwer testowy Serwer integracyjny

19 Ciągła integracja – w praktyce Serwery VCS:  CVS CVS  Subversion Subversion  Perforce Perforce  … http://better- scm.berlios.de/comparison/comparison.html

20 Ciągła integracja – w praktyce Narzędzia do automatyzacji:  Make Make  Ant, NAnt AntNAnt  Maven Maven  Ivy Ivy  … http://java-source.net/open-source/build-systems

21 Ciągła integracja – w praktyce Narzędzia do testów:  xUnit  The Grinder The Grinder  JMeter JMeter  Marathon Marathon  … http://java-source.net/open-source/testing-tools http://java-source.net/open-source/web-testing-tools

22 Ciągła integracja – w praktyce Narzędzia do ciągłej integracji:  CruiseControl CruiseControl  DamageControl DamageControl  LuntBuild LuntBuild  Continuum Continuum  … http://damagecontrol.codehaus.org/Continuous+I ntegration+Server+Feature+Matrix

23 Ciągła integracja – w praktyce Pełna integracja (Maven): 1.Pełna rekompilacja całego kodu źródłowego (clean, compile) 2.Stworzenie uruchamialnej postaci systemu i uruchomienie go w środowisku testowym (test, build, install, … 1 ) 3.Uruchomienie wszystkich testów automatycznych (… 2 ) Np.: 1 Stworzenie pliku WAR, uruchomienie go na testowym serwerze aplikacji 2 Uruchomienie testów akceptacyjnych/integracyjnych napisanych przy pomocy JWebUnit, …

24 Ciągła integracja – w praktyce CruiseControl  Darmowy, open-source  Wersje dla Javy i.NET  Składa się z dwóch aplikacji  - Serwera integracyjnego  - Aplikacji WWW do udostępniania wyników integracji  Działa z wieloma systemami VCS  Rozbudowane możliwości konfiguracji

25 Ciągła integracja – w praktyce CruiseControl – serwer integracyjny  Jedna instalacja obsługuje wiele projektów  Każdy projekt może mieć zdefiniowane kilka różnych integracji  Dwie podstawowe możliwości konfigurowania okresu integracji

26 Ciągła integracja – w praktyce CruiseControl – serwer integracyjny  Możliwość „opublikowania” wyników integracji na wiele różnych sposobów  Możliwość zarządzania poprzez interfejs JMX  Możliwość rozszerzania funkcjonalności własnymi pluginami  Konfiguracja poprzez plik XML http://cruisecontrol.sourceforge.net/main/configxml.html http://cruisecontrol.sourceforge.net/main/configxml.html

27 Ciągła integracja – w praktyce … …

28 Ciągła integracja – w praktyce... (4) … … (16) … … (24) … … (6) … … (24) …

29 Ciągła integracja – w praktyce CruiseControl – aplikacja WWW  Jedna instalacja obsługuje wiele projektów  Wyświetlane strony są generowane na podstawie logów części integracyjnej CC  Możliwy jest dostęp do pełnej historii integracji i artefaktów z integracji

30 Ciągła integracja – w praktyce CruiseControl – wady/zalety  [+] Dojrzały (czyt. stabilny i przemyślany)  [+] Bardzo elastyczny  [+/–] Osobne aplikacje do integracji i prezentacji wyników  [–] Ograniczone możliwości interfejsu WWW

31 Ciągła integracja Podsumowanie  Ciągła integracja to jedna z praktyk XP i jest ściśle powiązana jest z innymi praktykami  Pełne wdrożenie CI wymaga sporego nakładu pracy, ale… warto to zrobić  Nawet „integracja” polegająca na rekompilacji kodu już coś daje  Istnieje wiele narzędzi umożliwiających i ułatwiających zautomatyzowaną ciągłą integrację  Dobrym narzędziem na początek jest CruiseControl

32 Ciągła integracja Pytania?

33 Ciągła integracja Dziękuję za uwagę!


Pobierz ppt "InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Innowacyjne metody."

Podobne prezentacje


Reklamy Google