Continous integration with jenkins

621 views
581 views

Published on

Σύντομη παρουσίαση της αξίας της συνεχούς ολοκλήρωσης και της βασικής παραμετροποίησης του Jenkins

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
621
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Continous integration with jenkins

  1. 1. Continuous Integration• Εισαγωγή – Τι σημαίνει συνεχής ολοκλήρωση;• Γιατί χρειάζεται και πως εφαρμόζεται;• Jenkins CI – Τι είναι; Γιατί Jenkins;• Εγκατάσταση / Βασική Παραμετροποίηση• Build Jobs basics• CI Best Practices OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  2. 2. Τι σημαίνει συνεχής ολοκλήρωση;• Agile (και όχι μόνο) πρακτική• Οι ενέργειες που γίνονται από τους developers σεκαθημερινά τακτά χρονικά διαστήματα ώστε οιαλλαγές που κάνουν στο λογισμικό ναενοποιούνται / ολοκληρώνονται με το υπόλοιπολογισμικό αυτοματοποιημένα και γρήγορα• Στηρίζεται στην κουλτούρα ότι από την 1 η μέραενός project, αυτό θεωρείται παραγωγικό! OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  3. 3. Γιατί χρειάζεται;• Όλοι οι ενδιαφερόμενοι μπορούν να γνωρίζουνποια ζητήματα έχουν αντιμετωπιστεί σε ποιο buildκαι με ποιες αλλαγές στον κώδικα.• Όλοι οι ενδιαφερόμενοι έχουν εικόνα για τηνποιότητα και τα αποτελέσματα των ελέγχων πουυπάρχουν σε ένα σύστημα, καθώς και για πλήθοςποιοτικών αποτελεσμάτων. OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  4. 4. Γιατί χρειάζεται; (2)• Πάντα υπάρχει διαθέσιμη, μία σταθερή έκδοσηγια έλεγχο, προς επίδειξη σε πελάτες, χωρίς ναχρειάζεται η παρέμβαση της ομάδας ανάπτυξης,όποτε προκύπτει ανάλογη ανάγκη.• Αυξάνεται το αίσθημα ασφάλειας και σιγουριάςαπέναντι στο προϊόν εφόσον υπάρχει διαφάνειαστις αυτοματοποιημένες διαδικασίες ανάπτυξηςκαι ελέγχου του συστήματος. OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  5. 5. Πως εφαρμόζεται; OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  6. 6. Πως εφαρμόζεται; - Υποδομές(1)• Source Control Repository (Subversion, Git κτλ.) OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  7. 7. Πως εφαρμόζεται; - Υποδομές(1)• Αυτοματοποιημένη Διαδικασία Build (και όχιμόνο) OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  8. 8. Πως εφαρμόζεται; - Διαδικασία• Σωστά ορισμένη διαδικασία commit OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  9. 9. Πως εφαρμόζεται; - Διαδικασία OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  10. 10. Πως εφαρμόζεται; - Διασκέδαση• ‘Αμεσο Feedback με ποικίλους τρόπους OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  11. 11. • OpenSource Continous Integration εργαλείογραμμένο σε Java• Δημιουργός : Koshuke Kawaguchi• Hudson μέχρι το Δεκέμβριο του 2010.• Ήρθε η Oracle, τα έκανε μαντάρα, ο Koshukeέφυγε και πήρε μαζί του το παιδί του.•Από τότε υπάρχουν : Jenkins CI και Hudson OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  12. 12. • Γιατί επιλέγουμε Jenkins και όχι Hudson; • Τεράστιο community • Εκατοντάδες open source plugins • Για λόγους ηθικής• Γιατί δεν επιλέγουμε κάποιο εμπορικό πακέτο;( π.χ. Confluence Bamboo ) • Οικονομική στενότητα (προφανές) • Καλυπτόμαστε πλήρως από τον Jenkins OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  13. 13. • Εγκατάσταση • Διαθέσιμη για όλα τα OS • Πολύ απλή σε Windows / Run as Service ( http://mirrors.jenkins-ci.org/windows/latest)• Βασική Παραμετροποίηση • Εγκατάσταση / Ορισμός JDK • Εγκατάσταση / Ορισμός Maven • Εγκατάσταση / Ορισμός Ant OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  14. 14. OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  15. 15. • Τύποι Build Jobs • Free style ( Ant Projects, PowerBuilder ) • Maven 2/3 projects • Multi configuration • Monitor external job• Καταστάσεις Build Jobs • Success • Unstable • Failed • Running (Flashing με χρώμα από την κατάσταση του τελ. Build) • Disabled OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  16. 16. • Βασική Παραμετροποίηση Build Jobs • Βασικά στοιχεία • Source Code Management • Build Triggers (Periodically, Poll SCM, μετά από άλλα projects, όταν γίνεται Build μία Snapshot dependency κτλ. ) • Build (pre-steps, post-steps) • Post actions • Notifications OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  17. 17. Best Practices(1) – Build Jobs• Trunk Build • Trigger μετά από κάθε commit • Unit Tests Execution • Ολοκληρώνεται σε λιγότερο από 5’-10’• Nightly Build • Εκτελείται κάθε βράδυ (αν υπάρχουν αλλαγές) • Unit Tests / Integration Tests Execution • Deployments σε QA environments • Static Analysis / Quality Measures (Sonar) OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  18. 18. Best Practices(2) – Feedback• Ενημέρωση όλων των εμπλεκόμενων• Πότε; • Όταν «χαλάει» ένα Build • Όταν «επανέρχεται» ένα Build• Γιατί; • Άμεση επιδιόρθωση του «χαλασμένου» Build + Κανείς δεν παίρνει τον «χαλασμένο» κώδικα τοπικά • Πράσινο φως για λήψη «διορθωμένου» κώδικα OTS SA, 2012 © Παπαπέτρου Πάτροκλος
  19. 19. Best Practices(2) – Feedback(2)• Ενημέρωση όλων των εμπλεκόμενων• Πως; • Γραπτώς (email, sms, IM, RSS, tweets etc.) • Ηχητικά • Οπτικά ( Java Lamps – Feedback Panels ) OTS SA, 2012 © Παπαπέτρου Πάτροκλος

×