SlideShare une entreprise Scribd logo
1  sur  36
Ανάπτυξη και σχεδίαση
αυτοματοποιημένης υποδομής
Continuous Integration σε έργα
λογισμικού
Ιωάννης Τσαφαράς, ΑΕΜ: 7542
Υπό την επίβλεψη του Επίκουρου Καθηγητή
Ανδρέα Λ. Συμεωνίδη
Θεσσαλονίκη, Νοέμβριος 2017
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών (ΕΠΥ)
Δομή της παρουσίασης
• Εισαγωγή στο Continuous Integration (CI)
• Σκοπός εργασίας
• Σύγκριση και επιλογή συστήματος CI
• Βήματα υλοποίησης υποδομής CI
• Εφαρμογή υλοποιημένου συστήματος
• Συμπεράσματα
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 2
Continuous Integration (CI)
• Grady Booch, 1991, 1 από 12 στοιχεία του Extreme
Programming (XP)
• Συχνή συγχώνευση (merging) κώδικα
• Λειτουργικό προϊόν σε κάθε συγχώνευση
• Προσθήκη λειτουργιών σε κάθε έκδοση
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 3
Πλεονεκτήματα CI
• Ελαχιστοποίηση προβλημάτων ενσωμάτωσης
• Προβλήματα συγχώνευσης (merge conflicts)
• Προβλήματα συμβατότητας στοιχείων εφαρμογής
• Γρήγορη εύρεση σφαλμάτων λογισμικού (bugs)
• Γρηγορότερη ανάπτυξη ποιοτικού λογισμικού
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 4
Σκοπός της εργασίας
• Απλοποίηση διαδικασίας ελέγχου ποιότητας
κώδικα έργων λογισμικού
• Χρήση συστημάτων Continuous Integration (CI)
• Αυτόματη παροχή pre-production (staging) έκδοσης του
έργου
• Δυνατότητα αυτόματης ενημέρωσης production
έκδοσης
• Συμβατότητα υλοποιημένου συστήματος με
πλατφόρμες cloud computing
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 5
Γνώσεις που αποκτήθηκαν
• Συστήματα Continuous Integration
• Συστήματα διαχείρισης διαμόρφωσης λογισμικού
(software configuration management)
• Ανάπτυξη αυτοματοποιημένης διαδικασίας
δημιουργίας CI σε υποδομές cloud computing
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 6
CI Στατική ανάλυση κώδικα CD/CDE
CircleCI
Travis CI
Jenkins SonarQube
Chef
Puppet
Ansible
Αυτόματα συστήματα CI -1-
• Αυτοματοποίηση διαδικασίας μετά από
συγχώνευση
• Μεταγλώττιση (compile), σύνδεση (link)
• Αυτόματοι Έλεγχοι (tests)
• Unit tests
• API test
• Local CIs
• CI-as-a-Service (cloud-based CIs)
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 7
Αυτόματα συστήματα CI -2-
• Local CI
• Jenkins CI
• Για open και closed
source έργα
• Πληθώρα plugins
• Μεγάλη υποστήριξη
• CI-as-a-Service
• Travis CI
• Για open source έργα
• Χρήση μέσω GitHub
• Πιο δημοφιλές cloud-
based CI
• CircleCI
• Συνεργασία με GitHub,
BitBucket
• Υποστήριξη λιγότερων
γλωσσών από Travis CI
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 8
CI
CircleCI
Travis CI
Jenkins
Στατική ανάλυση κώδικα
• Στατική ανάλυση κώδικα μέσω SonarQube
• Κύριες μετρικές:
• Σφάλματα κώδικα (bugs)
• Κενά ασφαλείας (vulnerabilities)
• Διπλότυπος κώδικας (duplications)
• Τεχνικό χρέος (code smells/technical debt)
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 9
Στατική ανάλυση κώδικα
SonarQube
Continuous Deployment (CD)
Continuous Delivery (CDE)
• Επέκταση του CI
• Εγκατάσταση νέας έκδοσης του κώδικα σε
περιβάλλον, μετά την επιτυχία των βημάτων CI
• CD: Αυτόματο
• CDE: Απαιτεί αποδοχή χρήστη
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 10
CD, CDE στην εργασία
• Χρήση Continuous Deployment:
Εγκατάσταση κώδικα σε staging περιβάλλον
• Χρήση Continuous Delivery:
Εγκατάσταση κώδικα σε production περιβάλλον
• Υλοποίηση CD, CDE:
Εργαλεία διαχείρισης διαμόρφωσης λογισμικού
(software configuration management)
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 11
Εργαλεία Software Configuration
Management -1-
• Καταγραφή αλλαγών σε έναν server
• Εγκατάσταση πακέτων
• Ρύθμιση services, συστήματος
• Εγκατάσταση κώδικα κ.ά.
• Σκοπός η επαναπραγματοποίηση των αλλαγών
• Ευρέως χρησιμοποιούμενα εργαλεία:
• Ansible
• Puppet
• Chef
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 12
CD/CDE
Chef
Puppet
Ansible
Εργαλεία Software Configuration
Management -2-
• Ansible
• Playbooks σε YAML
• Χρήση χωρίς πράκτορα (agentless), επικοινωνία μέσω SSH
• Puppet
• Manifests σε Domain Specific Language (DSL)
• Απαιτείται πράκτορας, επικοινωνία με HTTPS
• Chef
• Cookbooks σε Domain Specific Language (DSL) ή Ruby
• Απαιτείται πράκτορας
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 13
Εργαλεία Software Configuration
Management -3-
• Επιλογή Ansible
• Αρχιτεκτονική χωρίς χρήση πράκτορα
• Άμεση χρήση
• Εξοικονόμηση πόρων
• Ασφάλεια
• Προϋπόθεση: SSH, Python
• Απλή, εύκολη στην εκμάθηση γλώσσα YAML
• Πολλά plugins, αυτοματοποίηση κάθε λειτουργίας
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 14
Τελική επιλογή συστήματος CI
• Jenkins
• Προσαρμοστικότητα
• Χρήση σε ανοιχτού και κλειστού κώδικα έργα
• Υποστήριξη από την κοινότητα
• Πολυάριθμα plugins
• SonarQube για στατική ανάλυση κώδικα
• Ansible για CD/CDE
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 15
CI Στατική ανάλυση κώδικα CD/CDE
CircleCI
Travis CI
Jenkins SonarQube
Chef
Puppet
Ansible
CI Pipeline
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 16
Preparation Test
SonarQube
Analysis
SonarQube
Quality Gate
Staging
deploy
Production deploy
approval
Production
deploy
CI Pipeline
Success
SCM Hook or
Manual
Trigger
Error/Failure
CI Pipeline
Failure
Any Step
Continuous Integration (CI)
Continuous Deployment (CD)
+
Continuous Delivery (CDE)
Βήματα CI Pipeline -1-
• Preparation
• Διαγραφή workspace
• Checkout νέου κώδικα
• Δημιουργία αρχείων μεταβλητών για τα deployments
• Εγκατάσταση test/build dependencies
• Build/compile, αν απαιτείται
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 17
Preparation Test
SonarQube
Analysis
SonarQube
Quality
Gate
Βήματα CI Pipeline -2-
• Test
• Εκτέλεση unit tests
• Εκτέλεση API tests
• Αποθήκευση test coverage
• SonarQube Analysis
• Στατική ανάλυση κώδικα
• Παρουσίαση αποτελεσμάτων στο SonarQube WebUI
• SonarQube Quality Gate
• Πληροί ο νέος κώδικας τις προϋποθέσεις ποιότητας;
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 18
Preparation Test
SonarQube
Analysis
SonarQube
Quality
Gate
Βήματα CI Pipeline -3-
• Staging deploy
• Χρήση Ansible για deployment στον staging server
• Production deploy approval
• Αποδοχή/άρνηση deployment στο production
• Production deploy
• Χρήση Ansible για deployment στον production server
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 19
Staging
deploy
Production deploy
approval
Production
deploy
Εκτέλεση CI Pipeline
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 20
Βήμα Pipeline “Production deploy approval”
Διαδικασίες CD/CDE
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 21
deploy-app-
production.yml
deploy-app-
staging.yml
app_type
app-nodejs
role
app-django
role
app-jetty
role
nodejs
django
jettyStaging Server Production Server
SSH SSH
Αρχιτεκτονική CI server -1-
• Χρήση Docker
• Ασφάλεια
• Δημιουργία υπηρεσιών μέσω παραμετροποιημένων
images (Dockerfiles)
• Φορητότητα
• 3 Docker containers
• Jenkins
• SonarQube
• MySQL (για χρήση από SonarQube)
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 22
Αρχιτεκτονική CI server -2-
• Σύνδεση των containers μέσω Docker network cinet
• Jenkins ↔ SonarQube
• SonarQube ↔ MySQL
• Xρήση Docker volumes, για διατήρηση δεδομένων
Jenkins και MySQL
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 23
Jenkins SonarQube
MySQL
CI creator -1-
• Webapp γραμμένο σε flask
• Ansible εγκατεστημένο
• Playbook, ρόλοι για deployment CI
• Ουρά Celery με RabbitMQ, για την εκτέλεση
Ansible
Νοέμβριος 2017 24Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
CI creator -2-
• Λήψη μεταβλητών από το WebUI:
• App name
• App type
• Node.js
• Django
• Jetty
• CI host/username
• SonarQube MySQL passwords
• staging host/username
• production host/username
• Απαίτηση: Ύπαρξη SSH keys
Νοέμβριος 2017 25Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
CI creator video
Νοέμβριος 2017 26Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
Εγχειρίδιο χρήσης CI
Νοέμβριος 2017 27Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
Αποτελέσματα -1-
Εκτέλεση CI build στο project του ISSEL, Web Recorder Server
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 28
Αποτελέσματα -2-
Αποτελέσματα SonarQube για Web Recorder Server
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 29
Αποτελέσματα -3-
Παρακολούθηση διεργασιών Web Recorder Server μέσω
Node.js Production Process Manager, PM2
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 30
Αποτελέσματα -4-
Δημιουργία υπηρεσίας Continuous Integration για την εταιρία
YummyWallet
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 31
Συμπεράσματα
• Διευκόλυνση διαδικασίας εγκατάστασης
συστήματος CI + CD/CDE
• Συμβατότητα αρχιτεκτονικής με υποδομές cloud,
δοκιμή σε υποδομές:
•
•
•
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 32
Μελλοντική Εργασία
• Πλήρης αυτοματοποίηση παραμετροποίησης CI
• Συμβατότητα με διαφορετικά λειτουργικά
συστήματα (RedHat-based)
• Αξιοποίηση APIs cloud παρόχων
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 33
Κώδικας, παραδείγματα
github.com/ioantsaf/ci
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 34
Ευχαριστώ για την
προσοχή σας!
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 35
Ερωτήσεις, Επικοινωνία
jiannist@gmail.com
github.com/ioantsaf
linkedin.com/in/giannis-
tsafaras/
Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 36

Contenu connexe

Similaire à Ιωάννης Τσαφαράς

Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.Stathis Gourzis
 
Kagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
 
Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...ISSEL
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
 
Development of a system for designing remote digital image processing pipelin...
Development of a system for designing remote digital image processing pipelin...Development of a system for designing remote digital image processing pipelin...
Development of a system for designing remote digital image processing pipelin...ISSEL
 
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...ISSEL
 
Introduction to .NET Framework and C# (Greek)
Introduction to .NET Framework and C# (Greek)Introduction to .NET Framework and C# (Greek)
Introduction to .NET Framework and C# (Greek)Vangos Pterneas
 
Προγραμματισμός σε Clipper - 1
Προγραμματισμός σε Clipper - 1Προγραμματισμός σε Clipper - 1
Προγραμματισμός σε Clipper - 1Stathis Gourzis
 
Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Stathis Gourzis
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - TrainingAnna Tsolakou
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Trainingpdalianis
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdfDimitraPapalitsa
 
Linux and C
Linux and CLinux and C
Linux and Cjtsagata
 
Silverlight Presentation @ University of Piraeus - 3-15-2010
Silverlight Presentation @ University of Piraeus - 3-15-2010Silverlight Presentation @ University of Piraeus - 3-15-2010
Silverlight Presentation @ University of Piraeus - 3-15-2010Alexandros Sigaras
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουISSEL
 
Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
 
Dimitrios Tatsis
Dimitrios TatsisDimitrios Tatsis
Dimitrios TatsisISSEL
 

Similaire à Ιωάννης Τσαφαράς (20)

Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.
 
Kagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis Presentation
 
Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
 
Εισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤΕισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤ
 
Development of a system for designing remote digital image processing pipelin...
Development of a system for designing remote digital image processing pipelin...Development of a system for designing remote digital image processing pipelin...
Development of a system for designing remote digital image processing pipelin...
 
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...
Ανάπτυξη υποδομής για τη δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας ...
 
Introduction to .NET Framework and C# (Greek)
Introduction to .NET Framework and C# (Greek)Introduction to .NET Framework and C# (Greek)
Introduction to .NET Framework and C# (Greek)
 
Προγραμματισμός σε Clipper - 1
Προγραμματισμός σε Clipper - 1Προγραμματισμός σε Clipper - 1
Προγραμματισμός σε Clipper - 1
 
Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - Training
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Training
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf
 
Linux and C
Linux and CLinux and C
Linux and C
 
Silverlight Presentation @ University of Piraeus - 3-15-2010
Silverlight Presentation @ University of Piraeus - 3-15-2010Silverlight Presentation @ University of Piraeus - 3-15-2010
Silverlight Presentation @ University of Piraeus - 3-15-2010
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
 
Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419
 
Μια εισαγωγή στο Bootstrap
Μια εισαγωγή στο Bootstrap Μια εισαγωγή στο Bootstrap
Μια εισαγωγή στο Bootstrap
 
Dimitrios Tatsis
Dimitrios TatsisDimitrios Tatsis
Dimitrios Tatsis
 

Plus de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
 

Plus de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
 

Dernier

Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx
Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptxΈκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx
Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx7gymnasiokavalas
 
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptxΕκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx7gymnasiokavalas
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
Οι στόχοι των παιδιών
Οι στόχοι των                       παιδιώνΟι στόχοι των                       παιδιών
Οι στόχοι των παιδιώνDimitra Mylonaki
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfssuser2f8893
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxtheologisgr
 
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxΞενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxDimitraKarabali
 
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.Michail Desperes
 
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptxΕπίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx7gymnasiokavalas
 
Παρουσίαση καλλιτεχνικού θεάματος
Παρουσίαση          καλλιτεχνικού θεάματοςΠαρουσίαση          καλλιτεχνικού θεάματος
Παρουσίαση καλλιτεχνικού θεάματοςDimitra Mylonaki
 
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptxΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx41dimperisteriou
 
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραssuser2bd3bc
 
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΗ κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΣάσα Καραγιαννίδου - Πέννα
 
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗ
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗB2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗ
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗChrisa Kokorikou
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορίαeucharis
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfIrini Panagiotaki
 
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx36dimperist
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμόςDimitra Mylonaki
 

Dernier (20)

Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx
Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptxΈκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx
Έκθεση μαθητικής Ζωγραφικής- Η μαγεία των μοτίβων.pptx
 
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptxΕκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
Οι στόχοι των παιδιών
Οι στόχοι των                       παιδιώνΟι στόχοι των                       παιδιών
Οι στόχοι των παιδιών
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
 
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxΞενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
 
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.
Σχέδιο Μικρο-διδασκαλίας στη Γεωγραφία.
 
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptxΕπίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx
Επίσκεψη μαθητών στην Έκθεση Η Μαγεία των Μοτίβων.pptx
 
Παρουσίαση καλλιτεχνικού θεάματος
Παρουσίαση          καλλιτεχνικού θεάματοςΠαρουσίαση          καλλιτεχνικού θεάματος
Παρουσίαση καλλιτεχνικού θεάματος
 
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptxΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx
ΝΕΕΣ ΚΟΥΡΤΙΝΕΣ ΜΕ ΔΩΡΕΑ ΤΟΥ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ.pptx
 
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
 
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΗ κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
 
Λαπμπουκ .pdf
Λαπμπουκ                                                    .pdfΛαπμπουκ                                                    .pdf
Λαπμπουκ .pdf
 
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗ
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗB2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗ
B2 TΑΞΗ -ΜΗΝΥΜΑΤΑ ΓΙΑ ΤΑ ΑΔΕΣΠΟΤΑ.pdf-ΜΑΡΚΕΛΛΑ ΤΣΑΤΣΑΡΩΝΗ
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
 
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμός
 

Ιωάννης Τσαφαράς

  • 1. Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού Ιωάννης Τσαφαράς, ΑΕΜ: 7542 Υπό την επίβλεψη του Επίκουρου Καθηγητή Ανδρέα Λ. Συμεωνίδη Θεσσαλονίκη, Νοέμβριος 2017 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών (ΕΠΥ)
  • 2. Δομή της παρουσίασης • Εισαγωγή στο Continuous Integration (CI) • Σκοπός εργασίας • Σύγκριση και επιλογή συστήματος CI • Βήματα υλοποίησης υποδομής CI • Εφαρμογή υλοποιημένου συστήματος • Συμπεράσματα Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 2
  • 3. Continuous Integration (CI) • Grady Booch, 1991, 1 από 12 στοιχεία του Extreme Programming (XP) • Συχνή συγχώνευση (merging) κώδικα • Λειτουργικό προϊόν σε κάθε συγχώνευση • Προσθήκη λειτουργιών σε κάθε έκδοση Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 3
  • 4. Πλεονεκτήματα CI • Ελαχιστοποίηση προβλημάτων ενσωμάτωσης • Προβλήματα συγχώνευσης (merge conflicts) • Προβλήματα συμβατότητας στοιχείων εφαρμογής • Γρήγορη εύρεση σφαλμάτων λογισμικού (bugs) • Γρηγορότερη ανάπτυξη ποιοτικού λογισμικού Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 4
  • 5. Σκοπός της εργασίας • Απλοποίηση διαδικασίας ελέγχου ποιότητας κώδικα έργων λογισμικού • Χρήση συστημάτων Continuous Integration (CI) • Αυτόματη παροχή pre-production (staging) έκδοσης του έργου • Δυνατότητα αυτόματης ενημέρωσης production έκδοσης • Συμβατότητα υλοποιημένου συστήματος με πλατφόρμες cloud computing Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 5
  • 6. Γνώσεις που αποκτήθηκαν • Συστήματα Continuous Integration • Συστήματα διαχείρισης διαμόρφωσης λογισμικού (software configuration management) • Ανάπτυξη αυτοματοποιημένης διαδικασίας δημιουργίας CI σε υποδομές cloud computing Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 6 CI Στατική ανάλυση κώδικα CD/CDE CircleCI Travis CI Jenkins SonarQube Chef Puppet Ansible
  • 7. Αυτόματα συστήματα CI -1- • Αυτοματοποίηση διαδικασίας μετά από συγχώνευση • Μεταγλώττιση (compile), σύνδεση (link) • Αυτόματοι Έλεγχοι (tests) • Unit tests • API test • Local CIs • CI-as-a-Service (cloud-based CIs) Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 7
  • 8. Αυτόματα συστήματα CI -2- • Local CI • Jenkins CI • Για open και closed source έργα • Πληθώρα plugins • Μεγάλη υποστήριξη • CI-as-a-Service • Travis CI • Για open source έργα • Χρήση μέσω GitHub • Πιο δημοφιλές cloud- based CI • CircleCI • Συνεργασία με GitHub, BitBucket • Υποστήριξη λιγότερων γλωσσών από Travis CI Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 8 CI CircleCI Travis CI Jenkins
  • 9. Στατική ανάλυση κώδικα • Στατική ανάλυση κώδικα μέσω SonarQube • Κύριες μετρικές: • Σφάλματα κώδικα (bugs) • Κενά ασφαλείας (vulnerabilities) • Διπλότυπος κώδικας (duplications) • Τεχνικό χρέος (code smells/technical debt) Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 9 Στατική ανάλυση κώδικα SonarQube
  • 10. Continuous Deployment (CD) Continuous Delivery (CDE) • Επέκταση του CI • Εγκατάσταση νέας έκδοσης του κώδικα σε περιβάλλον, μετά την επιτυχία των βημάτων CI • CD: Αυτόματο • CDE: Απαιτεί αποδοχή χρήστη Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 10
  • 11. CD, CDE στην εργασία • Χρήση Continuous Deployment: Εγκατάσταση κώδικα σε staging περιβάλλον • Χρήση Continuous Delivery: Εγκατάσταση κώδικα σε production περιβάλλον • Υλοποίηση CD, CDE: Εργαλεία διαχείρισης διαμόρφωσης λογισμικού (software configuration management) Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 11
  • 12. Εργαλεία Software Configuration Management -1- • Καταγραφή αλλαγών σε έναν server • Εγκατάσταση πακέτων • Ρύθμιση services, συστήματος • Εγκατάσταση κώδικα κ.ά. • Σκοπός η επαναπραγματοποίηση των αλλαγών • Ευρέως χρησιμοποιούμενα εργαλεία: • Ansible • Puppet • Chef Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 12 CD/CDE Chef Puppet Ansible
  • 13. Εργαλεία Software Configuration Management -2- • Ansible • Playbooks σε YAML • Χρήση χωρίς πράκτορα (agentless), επικοινωνία μέσω SSH • Puppet • Manifests σε Domain Specific Language (DSL) • Απαιτείται πράκτορας, επικοινωνία με HTTPS • Chef • Cookbooks σε Domain Specific Language (DSL) ή Ruby • Απαιτείται πράκτορας Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 13
  • 14. Εργαλεία Software Configuration Management -3- • Επιλογή Ansible • Αρχιτεκτονική χωρίς χρήση πράκτορα • Άμεση χρήση • Εξοικονόμηση πόρων • Ασφάλεια • Προϋπόθεση: SSH, Python • Απλή, εύκολη στην εκμάθηση γλώσσα YAML • Πολλά plugins, αυτοματοποίηση κάθε λειτουργίας Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 14
  • 15. Τελική επιλογή συστήματος CI • Jenkins • Προσαρμοστικότητα • Χρήση σε ανοιχτού και κλειστού κώδικα έργα • Υποστήριξη από την κοινότητα • Πολυάριθμα plugins • SonarQube για στατική ανάλυση κώδικα • Ansible για CD/CDE Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 15 CI Στατική ανάλυση κώδικα CD/CDE CircleCI Travis CI Jenkins SonarQube Chef Puppet Ansible
  • 16. CI Pipeline Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 16 Preparation Test SonarQube Analysis SonarQube Quality Gate Staging deploy Production deploy approval Production deploy CI Pipeline Success SCM Hook or Manual Trigger Error/Failure CI Pipeline Failure Any Step Continuous Integration (CI) Continuous Deployment (CD) + Continuous Delivery (CDE)
  • 17. Βήματα CI Pipeline -1- • Preparation • Διαγραφή workspace • Checkout νέου κώδικα • Δημιουργία αρχείων μεταβλητών για τα deployments • Εγκατάσταση test/build dependencies • Build/compile, αν απαιτείται Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 17 Preparation Test SonarQube Analysis SonarQube Quality Gate
  • 18. Βήματα CI Pipeline -2- • Test • Εκτέλεση unit tests • Εκτέλεση API tests • Αποθήκευση test coverage • SonarQube Analysis • Στατική ανάλυση κώδικα • Παρουσίαση αποτελεσμάτων στο SonarQube WebUI • SonarQube Quality Gate • Πληροί ο νέος κώδικας τις προϋποθέσεις ποιότητας; Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 18 Preparation Test SonarQube Analysis SonarQube Quality Gate
  • 19. Βήματα CI Pipeline -3- • Staging deploy • Χρήση Ansible για deployment στον staging server • Production deploy approval • Αποδοχή/άρνηση deployment στο production • Production deploy • Χρήση Ansible για deployment στον production server Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 19 Staging deploy Production deploy approval Production deploy
  • 20. Εκτέλεση CI Pipeline Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 20 Βήμα Pipeline “Production deploy approval”
  • 21. Διαδικασίες CD/CDE Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 21 deploy-app- production.yml deploy-app- staging.yml app_type app-nodejs role app-django role app-jetty role nodejs django jettyStaging Server Production Server SSH SSH
  • 22. Αρχιτεκτονική CI server -1- • Χρήση Docker • Ασφάλεια • Δημιουργία υπηρεσιών μέσω παραμετροποιημένων images (Dockerfiles) • Φορητότητα • 3 Docker containers • Jenkins • SonarQube • MySQL (για χρήση από SonarQube) Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 22
  • 23. Αρχιτεκτονική CI server -2- • Σύνδεση των containers μέσω Docker network cinet • Jenkins ↔ SonarQube • SonarQube ↔ MySQL • Xρήση Docker volumes, για διατήρηση δεδομένων Jenkins και MySQL Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 23 Jenkins SonarQube MySQL
  • 24. CI creator -1- • Webapp γραμμένο σε flask • Ansible εγκατεστημένο • Playbook, ρόλοι για deployment CI • Ουρά Celery με RabbitMQ, για την εκτέλεση Ansible Νοέμβριος 2017 24Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
  • 25. CI creator -2- • Λήψη μεταβλητών από το WebUI: • App name • App type • Node.js • Django • Jetty • CI host/username • SonarQube MySQL passwords • staging host/username • production host/username • Απαίτηση: Ύπαρξη SSH keys Νοέμβριος 2017 25Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
  • 26. CI creator video Νοέμβριος 2017 26Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
  • 27. Εγχειρίδιο χρήσης CI Νοέμβριος 2017 27Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού
  • 28. Αποτελέσματα -1- Εκτέλεση CI build στο project του ISSEL, Web Recorder Server Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 28
  • 29. Αποτελέσματα -2- Αποτελέσματα SonarQube για Web Recorder Server Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 29
  • 30. Αποτελέσματα -3- Παρακολούθηση διεργασιών Web Recorder Server μέσω Node.js Production Process Manager, PM2 Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 30
  • 31. Αποτελέσματα -4- Δημιουργία υπηρεσίας Continuous Integration για την εταιρία YummyWallet Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 31
  • 32. Συμπεράσματα • Διευκόλυνση διαδικασίας εγκατάστασης συστήματος CI + CD/CDE • Συμβατότητα αρχιτεκτονικής με υποδομές cloud, δοκιμή σε υποδομές: • • • Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 32
  • 33. Μελλοντική Εργασία • Πλήρης αυτοματοποίηση παραμετροποίησης CI • Συμβατότητα με διαφορετικά λειτουργικά συστήματα (RedHat-based) • Αξιοποίηση APIs cloud παρόχων Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 33
  • 34. Κώδικας, παραδείγματα github.com/ioantsaf/ci Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 34
  • 35. Ευχαριστώ για την προσοχή σας! Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 35
  • 36. Ερωτήσεις, Επικοινωνία jiannist@gmail.com github.com/ioantsaf linkedin.com/in/giannis- tsafaras/ Νοέμβριος 2017 Ανάπτυξη και σχεδίαση αυτοματοποιημένης υποδομής Continuous Integration σε έργα λογισμικού 36