Download - Andreas Hadjithomas

Transcript

Υλοποίηση 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