Upload
issel
View
49
Download
2
Embed Size (px)
Citation preview
Υλοποίηση ChatOps Bot με τη χρήση του Hubot Framework
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΥπολογιστώνΕργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
Επιβλέποντες:
Επίκουρος Καθηγητής κ. Ανδρέας Λ. ΣυμεωνίδηςΜεταδιδακτορικός Ερευνητής κ. Κυριάκος Χατζηδημητρίου
Διπλωματική εργασία του:Χατζηθωμά Ανδρέα
ΑΕΜ: 8026
Νοέμβριος, 2017
Κίνητρο
2
Χρονοβόρα & επίπονη διαδικασία
Μεγάλα συστήματα λογισμικού
Συνεργασία πολλών ατόμων/ομάδων
Συνδυασμός διαφόρων υπηρεσιών, εργαλείων και τεχνολογιών
Περισσότερες απαιτήσεις για ανάπτυξη λογισμικού
Εξέλιξη τεχνολογίας με ραγδαίους ρυθμούς
Σκοπός διπλωματικής εργασίας
Υλοποίηση ChatOps Bot
• DevOps + Chat = ChatOps
3
Κοινωνικά Πλεονεκτήματα
•Αύξηση προβολής & επίγνωσης
•Αύξηση ανταλλαγής γνώσεων & εκμάθησης
Τεχνικά Πλεονεκτήματα
•Αυτόματη καταγραφή γεγονότων
•Αυτοματοποίηση ενεργειών
•Μείωση χρήσης email
⇒ Οι ομάδες λειτουργούν και συνεργάζονται καλύτερα, φθηνότερα και γρηγορότερα
Μεθοδολογία
▪ Αλληλεπίδραση με υπηρεσίες (εκτέλεση ενεργειών & ενημέρωση γεγονότων)
▪ GitHub
▪ Trello
▪ Jenkins
▪ Αυθεντικοποίηση χρηστών (User Authentication)
▪ Αναγνώριση φυσικής γλώσσας (NLU)
▪ Standup Meetings – Daily Reports
▪ Server-less αρχιτεκτονική
5
GitHub Integration
▪ Αυθεντικοποίηση χρηστών (OAuth v2 & JWT)
▪ Αυτόματες ενημερώσεις (Webhooks)
▪ Ό,τι συμβαίνει σε έναν οργανισμό/λογαριασμό
▪ Εκτέλεση διαφόρων ενεργειών
▪ Δημιουργία: Issues, Pull Requests
▪ Προβολή: Repositories, Issues, Pull Requests, Commits
▪ Προσθήκη σχολίων σε Ιssues
▪ Σύνοψη & ενημέρωση τελευταίων δραστηριοτήτων για κάθε χρήστη ξεχωριστά
▪ Άμεση ενημέρωση χρηστών για mentions σε σχόλια
7
Trello Integration
▪ Αυθεντικοποίηση χρηστών (OAuth v1)
▪ Αυτόματες ενημερώσεις (Webhooks)
▪ Ό,τι συμβαίνει σε προκαθορισμένα Boards και Cards
▪ Εκτέλεση διαφόρων ενεργειών
▪ Προβολή: Boards, Cards
▪ Προσθήκη σχολίων σε Cards
▪ Σύνοψη και Ενημέρωση τελευταίων δραστηριοτήτων για κάθε χρήστη ξεχωριστά
▪ Άμεση ενημέρωση χρηστών για mentions σε comments
10
Jenkins Integration
▪ Αυθεντικοποίηση χρηστών (manually)
▪ Αυτόματες ενημερώσεις (Webhooks)
▪ Για Build Status
▪ Εκτέλεση διαφόρων ενεργειών
▪ Έναρξη Build
▪ Προβολή των Builds (κονσόλας, κατάστασης) και των Jobs
13
Standups – Daily Reports
▪ Καταχώρηση της αναφοράς κάθε χρήστη
▪ Χειροκίνητη έναρξη
▪ Αυτόματη έναρξη
▪ Δημοσίευση αναφορών σε κοινόχρηστο Channel
▪ Αποστολή με email
▪ Πλήρως προσαρμοσμένες αναφορές
▪ Ερωτήσεις
▪ Ημέρα και ώρα αυτόματης έναρξης
▪ Channel
16
Dialogflow Integration
▪ Αναγνώριση φυσικής γλώσσας και πρόθεσης (Intent)
▪ Intent Score Threshold
19
Πλεονεκτήματα
▪ Ταυτοποίηση κάθε χρήστη
▪ Δεν απαιτείται ξεχωριστός λογαριασμός για το Bot
▪ Requests εκ μέρους του κάθε χρήστη
▪ Εύκολη επεκτασιμότητα
▪ Δεν απαιτείται η αποστήθιση κάθε εντολής
▪ Εύκολη εγκατάσταση
▪ Εντελώς δωρεάν
▪ Χρήση από PCs και Smartphones
20
Μελλοντική Επέκταση
▪ Ανάπτυξη ταμπλό (dashboard) ρυθμίσεων
▪ Ανάπτυξη περισσότερων λειτουργιών στα ήδη υπάρχων Integrations
▪ Προσθήκη περισσότερων Integrations
21
Ευχαριστίες
Ευχαριστώ θερμά τους:
κ. Ανδρέα Λ. Συμεωνίδη, Επίκουρος Καθηγητής
κ. Κυριάκο Χατζηδημητρίου, Μεταδιδακτορικός Ερευνητής
Όλους εσάς για την προσοχή σας
22