
Master of Permanent Training in Cloud Apps: Ανάπτυξη και Ανάπτυξη Εφαρμογών στο Cloud
Madrid, Ισπανία
ΔΙΆΡΚΕΙΑ
2 Years
ΓΛΏΣΣΕΣ
Ισπανικά
ΡΥΘΜΌΣ
Πλήρης απασχόληση
ΠΡΟΘΕΣΜΊΑ ΕΦΑΡΜΟΓΉΣ
Προθεσμία υποβολής αιτήσεων
ΠΡΩΙΜΌΤΕΡΗ ΗΜΕΡΟΜΗΝΊΑ ΈΝΑΡΞΗΣ
Ζητήστε την πρωιμότερη ημερομηνία έναρξης
ΔΊΔΑΚΤΡΑ
EUR 3.550
ΜΟΡΦΉ ΜΕΛΈΤΗΣ
Εξ αποστάσεως εκπαίδευση
Εισαγωγή
Προς το παρόν, το cloud computing ή το cloud computing γίνεται δημοφιλές. Αυτό το υπολογιστικό παράδειγμα προσφέρει στους οργανισμούς μια πλατφόρμα για τη δημοσίευση εφαρμογών στο Διαδίκτυο. Χάρη στις υπηρεσίες του, αυτές οι εφαρμογές μπορούν να είναι πιο επεκτάσιμες, ανεκτικές σε σφάλματα και μπορούν να ενημερώνονται πιο συχνά και με λιγότερα σφάλματα. Ωστόσο, για να αξιοποιηθούν οι νέες πλατφόρμες, είναι απαραίτητο οι εφαρμογές να σχεδιάζονται και να υλοποιούνται ακολουθώντας μια σειρά προτύπων και χρησιμοποιώντας ορισμένες τεχνολογίες. Αυτές οι εφαρμογές που έχουν σχεδιαστεί ειδικά για αυτές τις νέες πλατφόρμες ονομάζονται εγγενείς εφαρμογές cloud, οι οποίες θα μπορούσαν να μεταφραστούν ως εγγενείς εφαρμογές cloud.
Στόχοι
Ο στόχος του μεταπτυχιακού τίτλου είναι να παρουσιάσει και να εφαρμόσει τις τεχνικές, τα εργαλεία, τις πλατφόρμες και τις καλές πρακτικές που επιτρέπουν την ανάπτυξη και ανάπτυξη διαδικτυακών εφαρμογών που αξιοποιούν τις νέες τάσεις που προσφέρει το cloud computing. Σε αντίθεση με άλλα μεταπτυχιακά στον κλάδο, ο στόχος είναι να καλύψει ολόκληρο τον κύκλο ζωής ανάπτυξης και συντήρησης εφαρμογών: μεθοδολογίες ανάπτυξης, ποιότητα λογισμικού, τεχνολογίες υλοποίησης εφαρμογών Διαδικτύου, πλατφόρμες υπολογιστικού νέφους και έλεγχος του κύκλου ολοκλήρωσης και ανάπτυξης. Για το λόγο αυτό, το μεταπτυχιακό πρόγραμμα χωρίζεται σε τέσσερις ενότητες που καλύπτουν όλες αυτές τις πτυχές:
- Ενότητα Ι: Ποιότητα λογισμικού: Σχεδιασμός, Αρχιτεκτονική, Δοκιμές και XP
- Ενότητα II: Υπηρεσίες Ιστού: τεχνολογίες, πρωτόκολλα, δοκιμές και αρχιτεκτονικές
- Ενότητα III: Εφαρμογές Cloud Native
- Ενότητα IV: DevOps, ενοποίηση και συνεχής ανάπτυξη
Εισαγωγές
Διδακτέα ύλη
Ενότητα Ι - Ποιότητα λογισμικού: Σχεδιασμός, Αρχιτεκτονική, Δοκιμές και Xp
- Σχεδιασμός και Ποιότητα Λογισμικού
- Μοτίβα, γνώση και πολυπλοκότητα
- Λογισμικό, Πειθαρχίες και Εξέλιξη
- Σχεδιασμός, Αρθρωτός Σχεδιασμός και Αντικειμενοστραφής Σχεδιασμός
- Μοτίβα και Αρχιτεκτονική Λογισμικού
- Σχεδιαστικά πρότυπα
- Δημιουργικά, δομικά και συμπεριφορικά πρότυπα
- Αρχιτεκτονική Λογισμικού
- Mv Architectural Style*
- Agile Αρχιτεκτονικά Στυλ: Εξαγωνικό, Κρεμμύδι, Καθαρό
- Δοκιμές Λογισμικού
- Μεθοδολογία Δοκιμών
- Σχεδιασμός δοκιμής: Black Box Vs White Box
- Δοκιμές Μονάδων
- Διπλοί στα τεστ
- Ακραίος προγραμματισμός
- Ανακατασκευή
- Δοκιμαστική Ανάπτυξη
- Extreme Programming (Xp)
- Scrum
- Ενιαία Διαδικασία Ανάπτυξης (Pud)
Ενότητα II - Υπηρεσίες Ιστού: Τεχνολογίες, Πρωτόκολλα, Δοκιμές και Αρχιτεκτονικές
Διάρκεια: 10 Εβδομάδες
Περίληψη:
- Τεχνολογίες και Πρωτόκολλα Υπηρεσιών Ιστού
- Εισαγωγή στις Τεχνολογίες Υπηρεσιών Ιστού
- Εφαρμογές ιστού
- Ξεκούραστο Άπις
- Βάσεις δεδομένων
- Κατασκευή και Ανάπτυξη
- Αντιδραστικός Προγραμματισμός
- Πρωτόκολλα: Rest, Grpc, Graphql και Queues
- Κυβερνασφάλεια
- Διαχείριση Ταυτότητας
- Τρωτά σημεία στις Υπηρεσίες Ιστού
- Αρχιτεκτονικές και Μοτίβα Υπηρεσιών Ιστού
- Εισαγωγή
- Μοτίβα
- Εξαγωνική και Καθαρή Αρχιτεκτονική
- Δοκιμή Υπηρεσιών Ιστού
- Εισαγωγή
- Δοκιμή με ελατήριο και δοκιμαστικά δοχεία
- Rest Api Tests
- Δοκιμές συμβάσεων με γνώμονα τους καταναλωτές
- Δοκιμές Αποδοχής
- Δοκιμές φορτίου
- Δοκιμή διεπαφής σε εφαρμογές Ιστού
- Εμμονή και Ανάλυση Δεδομένων
- Σχεσιακή Εμμονή
- Βάσεις δεδομένων πολλαπλών μοντέλων
- Εξέλιξη Βάσης Δεδομένων
- Μη σχεσιακή επιμονή
- Εισαγωγή στην Επιστήμη των Δεδομένων
Ενότητα III - Εφαρμογές Cloud Native
Διάρκεια: 12 Εβδομάδες
Περίληψη:
- Cloud Computing
- Εισαγωγή
- Amazon Web Services
- Cloud Services
- Πλατφόρμα ως υπηρεσία
- Cloud Native Apps
- Χωρίς διακομιστή
- Λειτουργίες
- Ασφάλεια και απόρρητο στο Cloud
- Δοχεία και ενορχηστρωτές
- Docker Containers
- Docker Compose
- Docker Security
- Kubernetes
- Ασφάλεια στο Kubernetes
- Εφαρμογές Kubernetes με τιμόνι
- Εργαλεία ανάπτυξης με Kubernetes
- Επεκτασιμότητα και ανοχή σφαλμάτων
- Μικροεπιχειρήσεις
- Εισαγωγή στις Μικροϋπηρεσίες
- Αρχιτεκτονικές: Ddd, Cqrs και Event Sourcing
- Μοτίβα μικροϋπηρεσιών
- Επικοινωνία μεταξύ υπηρεσιών
- Συναλλαγές Saga
- Εξωτερικό Api
- Από το Monolith στις Microservices
Ενότητα IV - Devops, Integration and Continuous Deployment
Διάρκεια: 6 Εβδομάδες
Περίληψη:
- Αποθετήρια και Μοντέλα Ανάπτυξης
- Κύκλος ζωής λογισμικού
- Έλεγχος έκδοσης Git
- Μοντέλα Ανάπτυξης: Gitflow και Tbd
- Ανάπτυξη με Monorepo
- Συνεχής Ενοποίηση και Παράδοση
- Εισαγωγή
- Ci Services: Github Actions και Jenkins
- Στατική Ανάλυση Κώδικα
- Διαχείριση αντικειμένων
- Συνεχής ανάπτυξη
- Εισαγωγή
- Παράλληλες Αλλαγές
- Αυξητική ανάπτυξη: Μπλε-πράσινο και Καναρίνι
- Εργαλεία συνεχούς ανάπτυξης
- Δοκιμές στην παραγωγή
Σχέδιο Τελικού Δασκάλου
Αφού πάρετε όλα τα θέματα, πρέπει να κάνετε μια μεταπτυχιακή εργασία (Tfm). Σε αυτήν την εργασία εφαρμόζεται και αναπτύσσεται η γνώση που αποκτήθηκε. Δεν είναι ένα μικρό έργο "παιχνίδι", είναι μάλλον η τέλεια δικαιολογία για να εμβαθύνουμε σε ένα θέμα που ενδιαφέρει τον μαθητή. Οι δάσκαλοι προτείνουν μια σειρά θεμάτων, αλλά οι μαθητές μπορούν επίσης να προτείνουν έργα που τους παρακινούν. Για παράδειγμα, αυτή η τεχνολογία που δεν έχετε ποτέ χρόνο να μελετήσετε σε βάθος, εφαρμόστε μια συγκεκριμένη αρχιτεκτονική που έχετε στο μυαλό σας για κάτι που κάνετε στη δουλειά, συγκρίνετε διαφορετικές εναλλακτικές λύσεις, κ.λπ. Ομάδες μαθητών, που τους επιτρέπει να προχωρήσουν περαιτέρω στους στόχους τους.
Αποτέλεσμα προγράμματος
Γενικές δεξιότητες:
- CG1: Ικανότητα σύλληψης, συγγραφής, οργάνωσης, σχεδίασης και ανάπτυξης έργων στον τομέα της μηχανικής υπολογιστών με σκοπό τη σύλληψη, ανάπτυξη ή εκμετάλλευση συστημάτων, υπηρεσιών και εφαρμογών υπολογιστών.
- CG2: Ικανότητα ορισμού, αξιολόγησης και επιλογής πλατφορμών υλικού και λογισμικού για την ανάπτυξη και εκτέλεση υπολογιστικών συστημάτων, υπηρεσιών και εφαρμογών, σύμφωνα με τις γνώσεις που αποκτήθηκαν.
- CG3: Ικανότητα σύλληψης και ανάπτυξης κεντρικών ή κατανεμημένων συστημάτων ή αρχιτεκτονικών υπολογιστών που ενσωματώνουν υλικό, λογισμικό και δίκτυα σύμφωνα με τις γνώσεις που αποκτήθηκαν.
- CG4: Ικανότητα επίλυσης προβλημάτων με πρωτοβουλία, λήψη αποφάσεων, αυτονομία και δημιουργικότητα. Ικανότητα να γνωρίζει πώς να επικοινωνεί και να μεταδίδει γνώσεις, δεξιότητες και ικανότητες στον τομέα της ανάπτυξης και ανάπτυξης εφαρμογών λογισμικού.
- CG5: Γνώσεις για τη διενέργεια μετρήσεων, υπολογισμών, αξιολογήσεων, εκτιμήσεων, εκθέσεων εμπειρογνωμόνων, μελετών, εκθέσεων, προγραμματισμού εργασιών και άλλων παρόμοιων εργασιών υπολογιστή, σύμφωνα με τις γνώσεις που αποκτήθηκαν.
- CG6: Ότι οι μαθητές έχουν την ικανότητα να συλλέγουν και να ερμηνεύουν σχετικά δεδομένα για να κάνουν κρίσεις που περιλαμβάνουν προβληματισμό σχετικά με σχετικά θέματα κοινωνικής, τεχνικής, επιστημονικής ή ηθικής φύσης.
Ειδικές δεξιότητες:
- CE1: Δυνατότητα εφαρμογής μεθοδολογιών για ανάπτυξη λογισμικού. Ειδικά ο ακραίος προγραμματισμός με τις αξίες, τις αρχές και τις καλές πρακτικές του.
- CE2: Ικανότητα να ακολουθείτε τις συστάσεις καθαρού κώδικα (καθαρός κώδικας) και καλής αντικειμενοστραφής σχεδίασης για παραγωγή ποιοτικού κώδικα.
- CE3: Ικανότητα σχεδιασμού και υλοποίησης δοκιμών λογισμικού για την καθοδήγηση της ανάπτυξης λογισμικού και τη διασφάλιση της ποιότητάς του.
- CE4: Δυνατότητα βελτίωσης της ποιότητας του κώδικα ώστε να μπορεί να επεκταθεί.
- CE5: Ικανότητα αποτελεσματικής χρήσης βιβλιοθηκών και πλαισίων (πλαισίων ) για την ανάπτυξη εφαρμογών Διαδικτύου.
- CE6: Δυνατότητα σχεδίασης και υλοποίησης πρωτοκόλλων επικοινωνίας για εφαρμογές Διαδικτύου.
- CE7: Δυνατότητα επιλογής του καταλληλότερου αρχιτεκτονικού στυλ για την υλοποίηση διαδικτυακών εφαρμογών που είναι συντηρήσιμες και εύκολες στη δοκιμή με αυτοματοποιημένο τρόπο.
- CE8: Δυνατότητα σχεδίασης, υλοποίησης και εκτέλεσης λειτουργικών και μη δοκιμών εφαρμογών Διαδικτύου.
- CE9: Δυνατότητα συμπερίληψης των καταλληλότερων μηχανισμών ελέγχου ταυτότητας και εξουσιοδότησης χρήστη σε εφαρμογές Διαδικτύου
- CE10: Ικανότητα χρήσης καλών πρακτικών για την αποφυγή τρωτών σημείων και τον μετριασμό των επιπτώσεών τους σε περίπτωση εκμετάλλευσης.
- CE12: Δυνατότητα μοντελοποίησης δεδομένων εφαρμογών και των σχέσεών τους χρησιμοποιώντας τόσο σχεσιακές όσο και μη σχεσιακές τεχνολογίες βάσεων δεδομένων.
- CE13: Δυνατότητα επιλογής των καταλληλότερων τεχνολογιών persistence με βάση τις ανάγκες της εφαρμογής.
- CE14: Ικανότητα να γνωρίζουμε πώς συμπεριφέρεται ένα κατανεμημένο, επεκτάσιμο και ανεκτικό σε σφάλματα επίμονο σύστημα.
- CE15: Δυνατότητα σχεδιασμού διαδικασιών ενημέρωσης για εφαρμογές παραγωγής που απαιτούν αλλαγές στη δομή δεδομένων χωρίς να επηρεάζεται η παροχή της υπηρεσίας.
- CE16: Ικανότητα γνώσης των βασικών τεχνολογιών που χρησιμοποιούνται στον τομέα της επιστήμης δεδομένων και ποιες υπηρεσίες προσφέρουν για την υλοποίηση εφαρμογών.
- CE17: Δυνατότητα αξιολόγησης και επιλογής των καταλληλότερων υπηρεσιών παρόχου υπολογιστικού νέφους για μια εφαρμογή Διαδικτύου με βάση τις ανάγκες της.
- CE18: Ικανότητα χρήσης τεχνολογιών υποδομής ως κώδικα για τη διαχείριση συστημάτων υπολογιστών και γνώση των πλεονεκτημάτων τους σε σύγκριση με τα παραδοσιακά μοντέλα.
- CE19: Δυνατότητα χρήσης κοντέινερ για συσκευασία και διανομή διαδικτυακών εφαρμογών.
- CE20: Ικανότητα αποτελεσματικής χρήσης ενός συστήματος ενορχήστρωσης κοντέινερ για την ανάπτυξη και διαχείριση μιας εφαρμογής Διαδικτύου που βασίζεται σε κοντέινερ.
- CE21: Δυνατότητα ενημέρωσης μιας εφαρμογής σε ενορχηστρωτή κοντέινερ σταδιακά και χωρίς πτώση υπηρεσίας.
- CE22: Δυνατότητα σχεδίασης και υλοποίησης εφαρμογών με χρήση των υπηρεσιών που παρέχονται από παρόχους cloud όπως email, βάσεις δεδομένων, αποθήκευση αρχείων κ.λπ.
- CE23: Ικανότητα σχεδιασμού, υλοποίησης και χρήσης συστημάτων παρατηρησιμότητας για τη διαχείριση εφαρμογών στην παραγωγή.
- CE24: Δυνατότητα σχεδίασης και υλοποίησης εφαρμογών ώστε να είναι επεκτάσιμες και ανεκτικές σε σφάλματα χρησιμοποιώντας υπηρεσίες αναπαραγωγής και εξισορρόπησης φορτίου που παρέχονται από παρόχους cloud και ενορχηστρωτές κοντέινερ.
- CE25: Δυνατότητα αποτελεσματικής εφαρμογής αρχιτεκτονικής βασισμένης σε μικροϋπηρεσίες για την υλοποίηση μιας διαδικτυακής εφαρμογής.
- CE26: Δυνατότητα σχεδίασης και υλοποίησης μιας εφαρμογής χρησιμοποιώντας πλατφόρμες λειτουργιών ως υπηρεσία και προσδιορισμό πότε είναι κατάλληλες σε σύγκριση με άλλες εναλλακτικές.
- CE27: Ικανότητα γνώσης του συνόλου των πρακτικών DevOps για την αυτοματοποίηση των διαδικασιών μεταξύ των ομάδων ανάπτυξης και λειτουργιών.
- CE28: Ικανότητα γνώσης και επιλογής των διαφορετικών υπαρχουσών εναλλακτικών λύσεων για την εφαρμογή ενός συστήματος συνεχούς ενοποίησης και ανάπτυξης.
- CE29: Δυνατότητα καθορισμού εργασιών σε συστήματα συνεχούς ενοποίησης και ανάπτυξης για την αυτοματοποίηση του κύκλου ζωής του πηγαίου κώδικα από τη στιγμή που προστίθεται στο αποθετήριο κώδικα έως τη δημοσίευσή του στην παραγωγή.
- CE30: Δυνατότητα διαχείρισης των τεχνουργημάτων που λαμβάνονται από τον πηγαίο κώδικα σε όλη τη διάρκεια του κύκλου ζωής του και στους διαφορετικούς τύπους ωριμότητάς του (έκδοση, beta, στιγμιότυπο, κ.λπ.).
- CE31: Δυνατότητα αποτελεσματικής χρήσης των διαθέσιμων εργαλείων και τεχνολογιών για την ενημέρωση μιας εφαρμογής παραγωγής χωρίς αποτυχία υπηρεσίας και χωρίς σφάλματα.