Andreas Hadjithomas

23
Υλοποίηση ChatOps Bot με τη χρήση του Hubot Framework ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Επιβλέποντες: Επίκουρος Καθηγητής κ. Ανδρέας Λ. Συμεωνίδης Μεταδιδακτορικός Ερευνητής κ. Κυριάκος Χατζηδημητρίου Διπλωματική εργασία του: Χατζηθωμά Ανδρέα ΑΕΜ: 8026 Νοέμβριος, 2017

Transcript of Andreas Hadjithomas

Υλοποίηση ChatOps Bot με τη χρήση του Hubot Framework

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΥπολογιστώνΕργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών

Επιβλέποντες:

Επίκουρος Καθηγητής κ. Ανδρέας Λ. ΣυμεωνίδηςΜεταδιδακτορικός Ερευνητής κ. Κυριάκος Χατζηδημητρίου

Διπλωματική εργασία του:Χατζηθωμά Ανδρέα

ΑΕΜ: 8026

Νοέμβριος, 2017

Κίνητρο

2

Χρονοβόρα & επίπονη διαδικασία

Μεγάλα συστήματα λογισμικού

Συνεργασία πολλών ατόμων/ομάδων

Συνδυασμός διαφόρων υπηρεσιών, εργαλείων και τεχνολογιών

Περισσότερες απαιτήσεις για ανάπτυξη λογισμικού

Εξέλιξη τεχνολογίας με ραγδαίους ρυθμούς

Σκοπός διπλωματικής εργασίας

Υλοποίηση ChatOps Bot

• DevOps + Chat = ChatOps

3

Κοινωνικά Πλεονεκτήματα

•Αύξηση προβολής & επίγνωσης

•Αύξηση ανταλλαγής γνώσεων & εκμάθησης

Τεχνικά Πλεονεκτήματα

•Αυτόματη καταγραφή γεγονότων

•Αυτοματοποίηση ενεργειών

•Μείωση χρήσης email

⇒ Οι ομάδες λειτουργούν και συνεργάζονται καλύτερα, φθηνότερα και γρηγορότερα

Γνώσεις που αποκτήθηκαν

4

Μεθοδολογία

▪ Αλληλεπίδραση με υπηρεσίες (εκτέλεση ενεργειών & ενημέρωση γεγονότων)

▪ GitHub

▪ Trello

▪ Jenkins

▪ Αυθεντικοποίηση χρηστών (User Authentication)

▪ Αναγνώριση φυσικής γλώσσας (NLU)

▪ Standup Meetings – Daily Reports

▪ Server-less αρχιτεκτονική

5

Μεθοδολογία – Δομή Συστήματος

6

GitHub Integration

▪ Αυθεντικοποίηση χρηστών (OAuth v2 & JWT)

▪ Αυτόματες ενημερώσεις (Webhooks)

▪ Ό,τι συμβαίνει σε έναν οργανισμό/λογαριασμό

▪ Εκτέλεση διαφόρων ενεργειών

▪ Δημιουργία: Issues, Pull Requests

▪ Προβολή: Repositories, Issues, Pull Requests, Commits

▪ Προσθήκη σχολίων σε Ιssues

▪ Σύνοψη & ενημέρωση τελευταίων δραστηριοτήτων για κάθε χρήστη ξεχωριστά

▪ Άμεση ενημέρωση χρηστών για mentions σε σχόλια

7

GitHub Integration Demo

8

9

Trello Integration

▪ Αυθεντικοποίηση χρηστών (OAuth v1)

▪ Αυτόματες ενημερώσεις (Webhooks)

▪ Ό,τι συμβαίνει σε προκαθορισμένα Boards και Cards

▪ Εκτέλεση διαφόρων ενεργειών

▪ Προβολή: Boards, Cards

▪ Προσθήκη σχολίων σε Cards

▪ Σύνοψη και Ενημέρωση τελευταίων δραστηριοτήτων για κάθε χρήστη ξεχωριστά

▪ Άμεση ενημέρωση χρηστών για mentions σε comments

10

Trello Integration Demo

11

12

Jenkins Integration

▪ Αυθεντικοποίηση χρηστών (manually)

▪ Αυτόματες ενημερώσεις (Webhooks)

▪ Για Build Status

▪ Εκτέλεση διαφόρων ενεργειών

▪ Έναρξη Build

▪ Προβολή των Builds (κονσόλας, κατάστασης) και των Jobs

13

Jenkins Integration Demo

14

15

Standups – Daily Reports

▪ Καταχώρηση της αναφοράς κάθε χρήστη

▪ Χειροκίνητη έναρξη

▪ Αυτόματη έναρξη

▪ Δημοσίευση αναφορών σε κοινόχρηστο Channel

▪ Αποστολή με email

▪ Πλήρως προσαρμοσμένες αναφορές

▪ Ερωτήσεις

▪ Ημέρα και ώρα αυτόματης έναρξης

▪ Channel

16

Standups – Daily Reports Demo

17

18

Dialogflow Integration

▪ Αναγνώριση φυσικής γλώσσας και πρόθεσης (Intent)

▪ Intent Score Threshold

19

Πλεονεκτήματα

▪ Ταυτοποίηση κάθε χρήστη

▪ Δεν απαιτείται ξεχωριστός λογαριασμός για το Bot

▪ Requests εκ μέρους του κάθε χρήστη

▪ Εύκολη επεκτασιμότητα

▪ Δεν απαιτείται η αποστήθιση κάθε εντολής

▪ Εύκολη εγκατάσταση

▪ Εντελώς δωρεάν

▪ Χρήση από PCs και Smartphones

20

Μελλοντική Επέκταση

▪ Ανάπτυξη ταμπλό (dashboard) ρυθμίσεων

▪ Ανάπτυξη περισσότερων λειτουργιών στα ήδη υπάρχων Integrations

▪ Προσθήκη περισσότερων Integrations

21

Ευχαριστίες

Ευχαριστώ θερμά τους:

κ. Ανδρέα Λ. Συμεωνίδη, Επίκουρος Καθηγητής

κ. Κυριάκο Χατζηδημητρίου, Μεταδιδακτορικός Ερευνητής

Όλους εσάς για την προσοχή σας

22

Ερωτήσεις;

23