
Master of Permanent Training in Cloud Apps: Development and Deployment of Applications in the Cloud
Madrid, Spanien
VARAKTIGHET
2 Years
SPRÅK
Spanska
TEMPO
Heltid
ANSÖKNINGSTIDEN
Sista ansökningsdag för begäran
TIDIGASTE STARTDATUM
Begär tidigaste startdatum
STUDIEAVGIFTER
EUR 3 550
STUDIEFORMAT
Distansutbildning
Introduktion
För närvarande blir cloud computing eller cloud computing populärt. Detta datorparadigm erbjuder organisationer en plattform för att publicera applikationer på Internet. Tack vare dess tjänster kan dessa applikationer vara mer skalbara, feltoleranta och kan uppdateras oftare och med färre fel. För att dra nytta av de nya plattformarna är det dock nödvändigt att applikationerna designas och implementeras efter en rad mönster och med hjälp av vissa teknologier. Dessa applikationer som utformats specifikt för dessa nya plattformar kallas molnbaserade applikationer, vilket kan översättas som molnbaserade applikationer.
mål
Målet med magisterexamen är att presentera och tillämpa de tekniker, verktyg, plattformar och god praxis som möjliggör utveckling och driftsättning av internetapplikationer som drar fördel av de nya trenderna som erbjuds av cloud computing. Till skillnad från andra mastersexamina inom sektorn är målet att täcka hela livscykeln för applikationsutveckling och underhåll: utvecklingsmetoder, mjukvarukvalitet, teknik för implementering av internetapplikationer, molnbaserade datorplattformar och kontroll av integrations- och distributionscykeln. Av denna anledning är masterprogrammet uppdelat i fyra moduler som täcker alla dessa aspekter:
- Modul I: Mjukvarukvalitet: Design, Arkitektur, Testning och XP
- Modul II: Webbtjänster: teknologier, protokoll, tester och arkitekturer
- Modul III: Cloud Native Applications
- Modul IV: DevOps, integration och kontinuerlig driftsättning
Antagningar
Läroplan
Modul I - Programvarukvalitet: Design, arkitektur, testning och XP
- Mjukvarudesign och kvalitet
- Mönster, kunskap och komplexitet
- Programvara, discipliner och evolution
- Design, modulär design och objektorienterad design
- Mönster och mjukvaruarkitektur
- Design mönster
- Skapande, strukturella och beteendemönster
- Programvara Arkitektur
- Mv arkitektonisk stil*
- Agila arkitektoniska stilar: sexkantig, lök, ren
- Software Testing
- Testmetodik
- Testdesign: Black Box vs White Box
- Enhetstest
- Dubblar i tester
- Extrem programmering
- Refaktorering
- Testdriven utveckling
- Extrem programmering (Xp)
- Klunga
- Unified Development Process (Pud)
Modul II - Webbtjänster: Teknik, protokoll, tester och arkitekturer
Varaktighet: 10 veckor
Kursplan:
- Web Services Teknik och protokoll
- Introduktion till teknik för webbtjänster
- Webapplikationer
- Vilsam Apis
- databaser
- Konstruktion och implementering
- Reaktiv programmering
- Protokoll: Rest, Grpc, Graphql och Queues
- Cybersäkerhet
- Identitetshantering
- Sårbarheter i webbtjänster
- Web Services arkitekturer och mönster
- Introduktion
- Mönster
- Hexagonal och ren arkitektur
- Testning av webbtjänster
- Introduktion
- Testning med fjäder och testcontainrar
- Vila Api-test
- Konsumentdriven kontraktstestning
- Acceptanstest
- Belastningstester
- Gränssnittstestning i webbapplikationer
- Persistens och dataanalys
- Relationell uthållighet
- Flermodellsdatabaser
- Databasutveckling
- Icke-relationell uthållighet
- Introduktion till datavetenskap
Modul III - Cloud Native Applications
Varaktighet: 12 veckor
Kursplan:
- Molntjänster
- Introduktion
- Amazon Web Services
- Molntjänster
- Plattform som en tjänst
- Cloud Native-appar
- Serverlös
- Operationer
- Säkerhet och integritet i molnet
- Containers och orkestrare
- Dockercontainrar
- Docker Compose
- Docker Security
- Kubernetes
- Säkerhet i Kubernetes
- Kubernetes-applikationer med rodret
- Utvecklingsverktyg med Kubernetes
- Skalbarhet och feltolerans
- Microservices
- Introduktion till mikrotjänster
- Arkitekturer: Ddd, Cqrs och Event Sourcing
- Microservices-mönster
- Kommunikation mellan tjänster
- Saga Transaktioner
- Extern API
- Från Monolith till Microservices
Modul IV - Devops, Integration och Continuous Deployment
Varaktighet: 6 veckor
Kursplan:
- Förvar och utvecklingsmodeller
- Programvarans livscykel
- Git versionskontroll
- Utvecklingsmodeller: Gitflow och Tbd
- Utveckling med Monorepo
- Kontinuerlig integration och leverans
- Introduktion
- Ci Services: Github Actions och Jenkins
- Statisk kodanalys
- Artefakthantering
- Kontinuerlig distribution
- Introduktion
- Parallella förändringar
- Inkrementell utbyggnad: Blågrön och Kanarieöarna
- Verktyg för kontinuerlig distribution
- Tester i produktion
Final Master's Project
Efter att ha tagit alla ämnen måste du göra en magisteruppsats (Tfm). I detta arbete tillämpas och utvecklas den inlärda kunskapen. Det är inte ett litet "leksaksprojekt", det är snarare den perfekta ursäkten för att fördjupa sig i ett ämne av intresse för studenten. Lärarna föreslår en serie ämnen, men eleverna kan också föreslå projekt som motiverar dem. Till exempel den där tekniken som du aldrig har tid att studera på djupet, implementera en specifik arkitektur som du har i åtanke för något som du gör på jobbet, jämföra olika alternativ, etc. De avslutande masterprojekten kan genomföras individuellt eller i Grupper av studenter, vilket tillåter dem att gå längre i sina mål.
Programresultat
Allmänna färdigheter:
- CG1: Förmåga att utforma, skriva, organisera, planera och utveckla projekt inom området datorteknik vars syfte är att utforma, utveckla eller utnyttja datorsystem, tjänster och applikationer.
- CG2: Förmåga att definiera, utvärdera och välja hårdvaru- och mjukvaruplattformar för utveckling och exekvering av datorsystem, tjänster och applikationer, enligt den kunskap som förvärvats.
- CG3: Förmåga att utforma och utveckla centraliserade eller distribuerade datorsystem eller arkitekturer som integrerar hårdvara, mjukvara och nätverk enligt den kunskap som förvärvats.
- CG4: Förmåga att lösa problem med initiativ, beslutsfattande, autonomi och kreativitet. Förmåga att veta hur man kommunicerar och överför kunskap, färdigheter och förmågor inom området utveckling och distribution av mjukvaruapplikationer.
- CG5: Kunskaper för att utföra mätningar, beräkningar, bedömningar, värderingar, expertrapporter, studier, rapporter, uppdragsplanering och annat liknande datorarbete, i enlighet med inhämtade kunskaper.
- CG6: Att eleverna har förmågan att samla in och tolka relevant data för att göra bedömningar som inkluderar reflektion kring relevanta frågor av social, teknisk, vetenskaplig eller etisk karaktär.
Särskilda färdigheter:
- CE1: Förmåga att tillämpa metoder för mjukvaruutveckling. Särskilt extrem programmering med dess värderingar, principer och goda metoder.
- CE2: Förmåga att följa rekommendationerna för ren kod ( ren kod ) och bra objektorienterad design för att producera kvalitetskod.
- CE3: Förmåga att designa och implementera mjukvarutester för att vägleda mjukvaruutveckling och säkerställa dess kvalitet.
- CE4: Möjlighet att förbättra kodens kvalitet så att den kan utökas.
- CE5: Förmåga att effektivt använda bibliotek och ramverk ( ramverk ) för utveckling av internetapplikationer.
- CE6: Förmåga att designa och implementera kommunikationsprotokoll för Internetapplikationer.
- CE7: Möjlighet att välja den mest lämpliga arkitektoniska stilen för implementering av internetapplikationer som är underhållbara och lätta att testa på ett automatiserat sätt.
- CE8: Förmåga att designa, implementera och utföra funktionella och icke-funktionella tester av internetapplikationer.
- CE9: Förmåga att inkludera de mest lämpliga användarautentiserings- och auktoriseringsmekanismerna i Internetapplikationer
- CE10: Förmåga att använda god praxis för att undvika sårbarheter och mildra deras effekter om de utnyttjas.
- CE12: Förmåga att modellera applikationsdata och deras relationer med hjälp av både relations- och icke-relationell databasteknik.
- CE13: Förmåga att välja de mest lämpliga beständighetsteknologierna baserat på applikationens behov.
- CE14: Förmåga att veta hur ett distribuerat, skalbart och feltolerant beständigt system beter sig.
- CE15: Förmåga att designa uppdateringsprocesser för produktionsapplikationer som kräver förändringar i datastrukturen utan att påverka tillhandahållandet av tjänsten.
- CE16: Förmåga att känna till de viktigaste teknologierna som används inom datavetenskap och vilka tjänster de erbjuder för implementering av applikationer.
- CE17: Förmåga att utvärdera och välja de mest lämpliga molntjänsterna för en internetapplikation baserat på dess behov.
- CE18: Förmåga att använda infrastrukturteknologier som kod för att hantera datorsystem och känna till deras fördelar jämfört med traditionella modeller.
- CE19: Möjlighet att använda behållare för att paketera och distribuera Internetapplikationer.
- CE20: Förmåga att effektivt använda ett containerorkestreringssystem för distribution och hantering av en containerbaserad internetapplikation.
- CE21: Möjlighet att uppdatera en applikation i en containerorkestrator progressivt och utan serviceavbrott.
- CE22: Förmåga att designa och implementera applikationer med hjälp av tjänster som tillhandahålls av molnleverantörer såsom e-post, databaser, fillagring, etc.
- CE23: Förmåga att designa, implementera och använda observerbarhetssystem för hantering av applikationer i produktion.
- CE24: Förmåga att designa och implementera applikationer för att vara skalbara och feltoleranta med hjälp av replikerings- och lastbalanseringstjänster som tillhandahålls av molnleverantörer och containerorganisatörer.
- CE25: Förmåga att effektivt tillämpa en arkitektur baserad på mikrotjänster för implementering av en internetapplikation.
- CE26: Förmåga att designa och implementera en applikation med hjälp av funktionsplattformar som en tjänst och avgöra när de är lämpliga jämfört med andra alternativ.
- CE27: Förmåga att känna till uppsättningen av DevOps-praxis för att automatisera processer mellan utvecklings- och driftteam.
- CE28: Förmåga att känna till och välja de olika befintliga alternativen för att implementera ett kontinuerligt integrations- och distributionssystem.
- CE29: Möjlighet att definiera uppgifter i kontinuerliga integrations- och distributionssystem för att automatisera källkodens livscykel från det att den läggs till i kodförrådet tills den publiceras i produktion.
- CE30: Förmåga att hantera artefakter som erhålls från källkoden under hela dess livscykel och i dess olika typer av mognad (release, beta, ögonblicksbild, etc).
- CE31: Förmåga att effektivt använda de verktyg och tekniker som finns tillgängliga för att uppdatera en produktionsapplikation utan servicefel och utan fel.