
Madrid, Spanien
DAUER
2 Years
SPRACHEN
Spanisch
TEMPO
Vollzeit
BEWERBUNGSSCHLUSS
Antragsfrist beantragen
FRÜHESTES STARTDATUM
Beantragen Sie den frühesten Starttermin
AUSBILDUNGSKOSTEN
EUR 3.550
STUDIENFORMAT
Fernunterricht
Einführung
Derzeit wird Cloud Computing oder Cloud Computing immer beliebter. Dieses Computerparadigma bietet Organisationen eine Plattform für die Veröffentlichung von Anwendungen im Internet. Dank seiner Dienste können diese Anwendungen skalierbarer und fehlertoleranter sein und häufiger und mit weniger Fehlern aktualisiert werden. Um die Vorteile der neuen Plattformen nutzen zu können, ist es jedoch erforderlich, dass die Anwendungen nach einer Reihe von Mustern und unter Verwendung bestimmter Technologien entworfen und implementiert werden. Diese speziell für diese neuen Plattformen entwickelten Anwendungen werden als Cloud-Native-Anwendungen bezeichnet, was man mit „Cloud-Native-Anwendungen“ übersetzen könnte.
Tore
Ziel des Masterstudiengangs ist es, die Techniken, Tools, Plattformen und bewährten Praktiken vorzustellen und anzuwenden, die die Entwicklung und Bereitstellung von Internetanwendungen ermöglichen, die die neuen Trends des Cloud Computing nutzen. Im Gegensatz zu anderen Masterstudiengängen in der Branche besteht das Ziel darin, den gesamten Lebenszyklus der Anwendungsentwicklung und -wartung abzudecken: Entwicklungsmethoden, Softwarequalität, Implementierungstechnologien für Internetanwendungen, Cloud-Computing-Plattformen und Kontrolle des Integrations- und Bereitstellungszyklus. Aus diesem Grund ist das Masterstudium in vier Module gegliedert, die alle diese Aspekte abdecken:
- Modul I: Softwarequalität: Design, Architektur, Tests und XP
- Modul II: Webdienste: Technologien, Protokolle, Tests und Architekturen
- Modul III: Cloud-native Anwendungen
- Modul IV: DevOps, Integration und kontinuierliche Bereitstellung
Admissions
Lehrplan
Modul I – Softwarequalität: Design, Architektur, Tests und XP
- Softwaredesign und -qualität
- Muster, Wissen und Komplexität
- Software, Disziplinen und Evolution
- Design, modulares Design und objektorientiertes Design
- Muster und Softwarearchitektur
- Designmuster
- Schöpfungs-, Struktur- und Verhaltensmuster
- Softwarearchitektur
- Mv-Architekturstil*
- Agile Architekturstile: Sechseckig, Zwiebel, Sauber
- Softwaretest
- Testmethodik
- Testdesign: Black Box vs. White Box
- Unit-Tests
- Doppelt in Tests
- Extremes Programmieren
- Refactoring
- Testgetriebene Entwicklung
- Extreme Programmierung (Xp)
- Gedränge
- Einheitlicher Entwicklungsprozess (Pud)
Modul II – Webdienste: Technologien, Protokolle, Tests und Architekturen
Dauer: 10 Wochen
Lehrplan:
- Web-Services-Technologien und -Protokolle
- Einführung in Web-Services-Technologien
- Web Applikationen
- Erholsamer Apis
- Datenbanken
- Bau und Bereitstellung
- Reaktive Programmierung
- Protokolle: Rest, Grpc, Graphql und Queues
- Internet-Sicherheit
- Identitätsmanagement
- Schwachstellen in Webdiensten
- Architekturen und Muster von Webdiensten
- Einführung
- Muster
- Sechseckige und klare Architektur
- Testen von Webdiensten
- Einführung
- Testen mit Feder- und Testcontainern
- Rest-API-Tests
- Verbraucherorientierte Vertragstests
- Akzeptanztests
- Belastungstests
- Schnittstellentests in Webanwendungen
- Persistenz und Datenanalyse
- Relationale Beständigkeit
- Datenbanken mit mehreren Modellen
- Datenbankentwicklung
- Nicht relationale Persistenz
- Einführung in die Datenwissenschaft
Modul III – Cloud-native Anwendungen
Dauer: 12 Wochen
Lehrplan:
- Cloud Computing
- Einführung
- Amazon Web Services
- Cloud-Services
- Plattform als Service
- Cloud-native Apps
- Serverlos
- Operationen
- Sicherheit und Datenschutz in der Cloud
- Container und Orchestratoren
- Docker-Container
- Docker Compose
- Docker-Sicherheit
- Kubernetes
- Sicherheit in Kubernetes
- Kubernetes-Anwendungen mit Helm
- Entwicklungstools mit Kubernetes
- Skalierbarkeit und Fehlertoleranz
- Microservices
- Einführung in Microservices
- Architekturen: Ddd, Cqrs und Event Sourcing
- Microservices-Muster
- Kommunikation zwischen Diensten
- Saga-Transaktionen
- Externe API
- Vom Monolithen zu Microservices
Modul IV – Entwickler, Integration und kontinuierliche Bereitstellung
Dauer: 6 Wochen
Lehrplan:
- Repositories und Entwicklungsmodelle
- Software-Lebenszyklus
- Git-Versionskontrolle
- Entwicklungsmodelle: Gitflow und Tbd
- Entwicklung mit Monorepo
- Kontinuierliche Integration und Bereitstellung
- Einführung
- Ci-Dienste: Github-Aktionen und Jenkins
- Statische Code-Analyse
- Artefaktmanagement
- Kontinuierliche Bereitstellung
- Einführung
- Parallele Änderungen
- Inkrementelle Bereitstellung: Blaugrün und Kanarisch
- Kontinuierliche Bereitstellungstools
- Tests in der Produktion
Finales Master-Projekt
Nachdem Sie alle Fächer belegt haben, müssen Sie eine Masterarbeit (Tfm) anfertigen. In dieser Arbeit wird das erlernte Wissen angewendet und weiterentwickelt. Es handelt sich nicht um ein kleines „Spielzeug“-Projekt, sondern vielmehr um die perfekte Ausrede, sich mit einem Thema zu befassen, das den Schüler interessiert. Die Lehrer schlagen eine Reihe von Themen vor, aber die Schüler können auch Projekte vorschlagen, die sie motivieren. Zum Beispiel die Technologie, mit der Sie nie Zeit haben, sich eingehend damit zu befassen, die Implementierung einer bestimmten Architektur, die Sie sich für etwas vorstellen, das Sie bei der Arbeit tun, der Vergleich verschiedener Alternativen usw. Die abschließenden Masterprojekte können einzeln oder in durchgeführt werden Gruppen von Studenten, die es ihnen ermöglichen, ihre Ziele weiter zu erreichen.
Programmergebnis
Allgemeine Fähigkeiten:
- CG1: Fähigkeit, Projekte im Bereich der Computertechnik zu konzipieren, zu schreiben, zu organisieren, zu planen und zu entwickeln, deren Zweck die Konzeption, Entwicklung oder Nutzung von Computersystemen, -diensten und -anwendungen ist.
- CG2: Fähigkeit, Hardware- und Softwareplattformen für die Entwicklung und Ausführung von Computersystemen, Diensten und Anwendungen entsprechend den erworbenen Kenntnissen zu definieren, zu bewerten und auszuwählen.
- CG3: Fähigkeit, zentralisierte oder verteilte Computersysteme oder Architekturen zu konzipieren und zu entwickeln, die Hardware, Software und Netzwerke entsprechend den erworbenen Kenntnissen integrieren.
- CG4: Fähigkeit, Probleme mit Initiative, Entscheidungsfindung, Autonomie und Kreativität zu lösen. Fähigkeit, Kenntnisse, Fähigkeiten und Fertigkeiten im Bereich der Entwicklung und Bereitstellung von Softwareanwendungen zu kommunizieren und weiterzugeben.
- CG5: Kenntnisse zur Durchführung von Messungen, Berechnungen, Beurteilungen, Gutachten, Gutachten, Studien, Berichten, Aufgabenplanungen und anderen ähnlichen Computerarbeiten entsprechend den erworbenen Kenntnissen.
- CG6: Dass die Studierenden in der Lage sind, relevante Daten zu sammeln und zu interpretieren, um Urteile zu fällen, die die Reflexion relevanter Fragen sozialer, technischer, wissenschaftlicher oder ethischer Natur umfassen.
Spezifische Fähigkeiten:
- CE1: Fähigkeit, Methoden für die Softwareentwicklung anzuwenden. Besonders extreme Programmierung mit ihren Werten, Prinzipien und guten Praktiken.
- CE2: Fähigkeit, den Empfehlungen von sauberem Code (Clean Code) und gutem objektorientiertem Design zu folgen, um Qualitätscode zu erstellen.
- CE3: Fähigkeit, Softwaretests zu entwerfen und umzusetzen, um die Softwareentwicklung zu leiten und deren Qualität sicherzustellen.
- CE4: Fähigkeit, die Qualität des Codes zu verbessern, sodass er erweitert werden kann.
- CE5: Fähigkeit, Bibliotheken und Frameworks (Frameworks) effektiv für die Entwicklung von Internetanwendungen zu nutzen.
- CE6: Fähigkeit, Kommunikationsprotokolle für Internetanwendungen zu entwerfen und zu implementieren.
- CE7: Fähigkeit, den am besten geeigneten Architekturstil für die Implementierung von Internetanwendungen auszuwählen, die wartbar und einfach automatisiert zu testen sind.
- CE8: Fähigkeit, funktionale und nichtfunktionale Tests von Internetanwendungen zu entwerfen, zu implementieren und auszuführen.
- CE9: Fähigkeit, die am besten geeigneten Benutzerauthentifizierungs- und Autorisierungsmechanismen in Internetanwendungen einzubinden
- CE10: Fähigkeit, bewährte Praktiken zu nutzen, um Schwachstellen zu vermeiden und ihre Auswirkungen im Falle einer Ausnutzung abzuschwächen.
- CE12: Fähigkeit, Anwendungsdaten und ihre Beziehungen mithilfe relationaler und nicht relationaler Datenbanktechnologien zu modellieren.
- CE13: Fähigkeit, die am besten geeigneten Persistenztechnologien basierend auf den Anforderungen der Anwendung auszuwählen.
- CE14: Fähigkeit zu wissen, wie sich ein verteiltes, skalierbares und fehlertolerantes persistentes System verhält.
- CE15: Fähigkeit, Aktualisierungsprozesse für Produktionsanwendungen zu entwerfen, die Änderungen in der Datenstruktur erfordern, ohne die Bereitstellung des Dienstes zu beeinträchtigen.
- CE16: Fähigkeit, die wichtigsten im Bereich Data Science verwendeten Technologien zu kennen und zu wissen, welche Dienste sie für die Implementierung von Anwendungen anbieten.
- CE17: Fähigkeit, die am besten geeigneten Cloud-Computing-Anbieterdienste für eine Internetanwendung basierend auf ihren Anforderungen zu bewerten und auszuwählen.
- CE18: Fähigkeit, Infrastrukturtechnologien als Code zur Verwaltung von Computersystemen zu nutzen und deren Vorteile im Vergleich zu herkömmlichen Modellen zu kennen.
- CE19: Fähigkeit, Container zum Verpacken und Verteilen von Internetanwendungen zu verwenden.
- CE20: Fähigkeit, ein Container-Orchestrierungssystem effektiv für die Bereitstellung und Verwaltung einer Container-basierten Internetanwendung zu nutzen.
- CE21: Möglichkeit, eine Anwendung in einem Container-Orchestrator schrittweise und ohne Dienstausfall zu aktualisieren.
- CE22: Fähigkeit, Anwendungen mithilfe der von Cloud-Anbietern bereitgestellten Dienste wie E-Mail, Datenbanken, Dateispeicher usw. zu entwerfen und zu implementieren.
- CE23: Fähigkeit, Observability-Systeme für die Verwaltung von Anwendungen in der Produktion zu entwerfen, zu implementieren und zu nutzen.
- CE24: Fähigkeit, skalierbare und fehlertolerante Anwendungen mithilfe von Replikations- und Lastausgleichsdiensten zu entwerfen und zu implementieren, die von Cloud-Anbietern und Container-Orchestratoren bereitgestellt werden.
- CE25: Fähigkeit, eine auf Microservices basierende Architektur effektiv für die Implementierung einer Internetanwendung einzusetzen.
- CE26: Fähigkeit, eine Anwendung mithilfe von Funktionsplattformen als Dienst zu entwerfen und zu implementieren und zu bestimmen, wann diese im Vergleich zu anderen Alternativen geeignet sind.
- CE27: Fähigkeit, die DevOps-Praktiken zur Automatisierung von Prozessen zwischen Entwicklungs- und Betriebsteams zu kennen.
- CE28: Fähigkeit, die verschiedenen vorhandenen Alternativen zur Implementierung eines kontinuierlichen Integrations- und Bereitstellungssystems zu kennen und auszuwählen.
- CE29: Fähigkeit, Aufgaben in kontinuierlichen Integrations- und Bereitstellungssystemen zu definieren, um den Lebenszyklus des Quellcodes vom Hinzufügen zum Code-Repository bis zur Veröffentlichung in der Produktion zu automatisieren.
- CE30: Fähigkeit, die aus dem Quellcode erhaltenen Artefakte während seines gesamten Lebenszyklus und in seinen verschiedenen Reifegraden (Release, Beta, Snapshot usw.) zu verwalten.
- CE31: Fähigkeit, die verfügbaren Tools und Technologien effektiv zu nutzen, um eine Produktionsanwendung ohne Serviceausfälle und ohne Fehler zu aktualisieren.