Pilvisovellusten pysyvän koulutuksen maisteri: Sovellusten kehittäminen ja käyttöönotto pilvessä
Madrid, Espanja
KESTO
2 Years
KIELET
Espanja
TAHTI
Täysaikainen
HAKEMUKSEN MÄÄRÄAIKA
Hakemuksen jättämisen määräaika
AIKAISIN ALOITUSPÄIVÄ
Pyydä aikaisinta alkamispäivää
LUKUKAUSIMAKSUT
EUR 3 550
OPISKELUMUOTO
Etäopiskelu
Johdanto
Tällä hetkellä pilvipalveluista tai pilvipalveluista on tulossa suosittuja. Tämä tietojenkäsittelyparadigma tarjoaa organisaatioille alustan sovellusten julkaisemiseen Internetissä. Palvelujensa ansiosta nämä sovellukset voivat olla paremmin skaalautuvia, vikasietoisia ja niitä voidaan päivittää useammin ja vähemmän virheitä. Uusien alustojen hyödyntäminen edellyttää kuitenkin, että sovellukset suunnitellaan ja toteutetaan tiettyjä kaavoja noudattaen ja tiettyjä teknologioita käyttäen. Näitä erityisesti näille uusille alustoille suunniteltuja sovelluksia kutsutaan pilvipohjaisiksi sovelluksiksi, jotka voidaan kääntää pilvipohjaisiksi sovelluksiksi.
Tavoitteet
Maisterintutkinnon tavoitteena on esitellä ja soveltaa tekniikoita, työkaluja, alustoja ja hyviä käytäntöjä, jotka mahdollistavat pilvipalvelun tarjoamia uusia trendejä hyödyntävien Internet-sovellusten kehittämisen ja käyttöönoton. Toisin kuin muut alan maisteritutkinnot, tavoitteena on kattaa sovelluskehityksen ja -ylläpidon koko elinkaari: kehitysmetodologiat, ohjelmistojen laatu, Internet-sovellusten toteutusteknologiat, pilvilaskenta-alustat sekä integraatio- ja käyttöönottosyklin hallinta. Tästä syystä maisteriohjelma on jaettu neljään moduuliin, jotka kattavat kaikki nämä näkökohdat:
- Moduuli I: Ohjelmiston laatu: suunnittelu, arkkitehtuuri, testaus ja XP
- Moduuli II: Verkkopalvelut: teknologiat, protokollat, testit ja arkkitehtuurit
- Moduuli III: Alkuperäiset pilvisovellukset
- Moduuli IV: DevOps, integrointi ja jatkuva käyttöönotto
Pääsymaksut
Opetussuunnitelma
Moduuli I - Ohjelmiston laatu: suunnittelu, arkkitehtuuri, testaus ja Xp
- Ohjelmiston suunnittelu ja laatu
- Mallit, tieto ja monimutkaisuus
- Ohjelmistot, tieteenalat ja evoluutio
- Suunnittelu, modulaarinen suunnittelu ja objektilähtöinen suunnittelu
- Mallit ja ohjelmistoarkkitehtuuri
- Suunnittelumalleja
- Luovia, rakenteellisia ja käyttäytymismalleja
- Ohjelmistoarkkitehtuuri
- Mv-arkkitehtuurityyli*
- Ketterät arkkitehtoniset tyylit: kuusikulmainen, sipuli, puhdas
- Ohjelmistotestaus
- Testausmenetelmät
- Testisuunnittelu: musta laatikko vs valkoinen laatikko
- Yksikkötestit
- Tuplaa testeissä
- Extreme ohjelmointi
- Refaktorointi
- Testilähtöinen kehitys
- Extreme Programming (Xp)
- tungos
- Unified Development Process (Pud)
Moduuli II - Verkkopalvelut: tekniikat, protokollat, testit ja arkkitehtuurit
Kesto: 10 viikkoa
Opetussuunnitelma:
- Verkkopalvelutekniikat ja -protokollat
- Johdatus verkkopalvelutekniikoihin
- Web-sovellukset
- Rauhallinen Apis
- tietokannat
- Rakentaminen ja käyttöönotto
- Reaktiivinen ohjelmointi
- Protokollat: Rest, Grpc, Graphql ja Queues
- tietoverkkojen
- Identiteettihallinta
- Web-palveluiden haavoittuvuudet
- Verkkopalveluarkkitehtuurit ja -mallit
- esittely
- Kuviot
- Kuusikulmainen ja puhdas arkkitehtuuri
- Verkkopalveluiden testaus
- esittely
- Testaus jousella ja testisäiliöillä
- Rest Api Testit
- Kuluttajalähtöinen sopimustestaus
- Hyväksymistestit
- Kuormitustestit
- Käyttöliittymän testaus verkkosovelluksissa
- Pysyvyys ja tietojen analyysi
- Suhteellinen pysyvyys
- Monimallitietokannat
- Tietokannan kehitys
- Ei-relaatiollinen pysyvyys
- Tietotieteen perusteet
Moduuli III – Pilvisovellukset
Kesto: 12 viikkoa
Opetussuunnitelma:
- Pilvilaskenta
- esittely
- Amazon Web Services
- Pilvipalvelut
- Alusta palveluna
- Pilven alkuperäiset sovellukset
- Palvelimeton
- toiminnot
- Turvallisuus ja yksityisyys pilvessä
- Kontit ja orkesterit
- Docker-säiliöt
- Docker Compose
- Docker Security
- Kubernetes
- Turvallisuus Kubernetesissa
- Kubernetes-sovellukset Helmin kanssa
- Kehitystyökalut Kubernetesin kanssa
- Skaalautuvuus ja vikasietoisuus
- Microservices
- Johdatus mikropalveluihin
- Arkkitehtuurit: Ddd, Cqrs ja Event Sourcing
- Mikropalvelumallit
- Palvelujen välinen viestintä
- Saagan liiketoimet
- Ulkoinen Api
- Monolithista mikropalveluihin
Moduuli IV - Devops, integrointi ja jatkuva käyttöönotto
Kesto: 6 viikkoa
Opetussuunnitelma:
- Tietovarastot ja kehitysmallit
- Ohjelmiston elinkaari
- Git-versionhallinta
- Kehitysmallit: Gitflow ja Tbd
- Kehitys Monorepon kanssa
- Jatkuva integrointi ja toimitus
- esittely
- Ci-palvelut: Github Actions ja Jenkins
- Staattisen koodin analyysi
- Artefakttien hallinta
- Jatkuva käyttöönotto
- esittely
- Rinnakkaiset muutokset
- Inkrementaalinen käyttöönotto: Sinivihreä ja kanarialainen
- Jatkuvan käyttöönoton työkalut
- Testit tuotannossa
Lopullinen päällikön projekti
Kun olet suorittanut kaikki aiheet, sinun on tehtävä gradu (Tfm). Tässä työssä opittua tietoa sovelletaan ja kehitetään. Se ei ole pieni "lelu" projekti, se on pikemminkin täydellinen tekosyy sukeltaa opiskelijaa kiinnostavaan aiheeseen. Opettajat ehdottavat useita aiheita, mutta opiskelijat voivat myös ehdottaa heitä motivoivia projekteja. Esimerkiksi se tekniikka, jota sinulla ei koskaan ole aikaa opiskella perusteellisesti, toteuttaa tietty arkkitehtuuri, joka sinulla on mielessäsi jollekin, mitä teet työssäsi, vertailla eri vaihtoehtoja jne. Lopulliset maisteriprojektit voidaan toteuttaa yksin tai Opiskelijaryhmät, joiden avulla he voivat mennä pidemmälle tavoitteissaan.
Ohjelman tulos
Yleiset taidot:
- CG1: Kyky suunnitella, kirjoittaa, organisoida, suunnitella ja kehittää tietokonetekniikan alan hankkeita, joiden tarkoituksena on tietokonejärjestelmien, -palvelujen ja -sovellusten suunnittelu, kehittäminen tai hyödyntäminen.
- CG2: Kyky määritellä, arvioida ja valita laitteisto- ja ohjelmistoalustoja tietokonejärjestelmien, palveluiden ja sovellusten kehittämiseen ja toteuttamiseen hankitun tiedon mukaan.
- CG3: Kyky suunnitella ja kehittää keskitettyjä tai hajautettuja tietokonejärjestelmiä tai arkkitehtuureja, jotka yhdistävät laitteistot, ohjelmistot ja verkot hankitun tiedon mukaan.
- CG4: Kyky ratkaista ongelmia aloitteellisuudesta, päätöksenteosta, itsenäisyydestä ja luovuudesta. Kyky kommunikoida ja välittää tietoa, taitoja ja kykyjä ohjelmistosovellusten kehittämisen ja käyttöönoton alalla.
- CG5: Tietoa mittausten, laskelmien, arvioiden, arvioiden, asiantuntijalausuntojen, selvitysten, raporttien, tehtäväsuunnittelun ja muun vastaavan tietokonetyön suorittamiseen hankitun tiedon mukaisesti.
- CG6: Opiskelijoilla on kyky kerätä ja tulkita asiaankuuluvia tietoja tehdäkseen päätöksiä, joihin sisältyy pohdintaa olennaisista sosiaalisista, teknisistä, tieteellisistä tai eettisistä asioista.
Erityisosaaminen:
- CE1: Kyky soveltaa menetelmiä ohjelmistokehitykseen. Erityisesti äärimmäistä ohjelmointia arvoineen, periaatteineen ja hyvineen käytäntöineen.
- CE2: Kyky noudattaa puhtaan koodin ( puhdas koodi ) ja hyvän oliosuunnittelun suosituksia laatukoodin tuottamiseksi.
- CE3: Kyky suunnitella ja toteuttaa ohjelmistotestejä ohjelmistokehityksen ohjaamiseksi ja sen laadun varmistamiseksi.
- CE4: Kyky parantaa koodin laatua, jotta sitä voidaan laajentaa.
- CE5: Kyky käyttää tehokkaasti kirjastoja ja kehyksiä (kehykset) Internet-sovellusten kehittämiseen.
- CE6: Kyky suunnitella ja toteuttaa tietoliikenneprotokollia Internet-sovelluksiin.
- CE7: Mahdollisuus valita Internet-sovellusten toteuttamiseen sopivin arkkitehtoninen tyyli, joka on ylläpidettävä ja helppo testata automaattisesti.
- CE8: Kyky suunnitella, toteuttaa ja suorittaa Internet-sovellusten toiminnallisia ja ei-toiminnallisia testejä.
- CE9: Kyky sisällyttää sopivimmat käyttäjien todennus- ja valtuutusmekanismit Internet-sovelluksiin
- CE10: Kyky käyttää hyviä käytäntöjä haavoittuvuuksien välttämiseksi ja niiden vaikutusten lieventämiseksi, jos niitä käytetään hyväksi.
- CE12: Kyky mallintaa sovellustietoja ja niiden suhteita sekä relaatio- että ei-relaatiotietokantatekniikoilla.
- CE13: Kyky valita sopivimmat kestävyystekniikat sovelluksen tarpeiden perusteella.
- CE14: Kyky tietää, miten hajautettu, skaalautuva ja vikasietoinen jatkuva järjestelmä käyttäytyy.
- CE15: Kyky suunnitella päivitysprosesseja tuotantosovelluksiin, jotka vaativat muutoksia tietorakenteeseen vaikuttamatta palvelun tuottamiseen.
- CE16: Kyky tuntea tärkeimmät datatieteen alalla käytettävät teknologiat ja niiden tarjoamat palvelut sovellusten toteuttamiseen.
- CE17: Kyky arvioida ja valita sopivimmat pilvipalveluntarjoajan palvelut Internet-sovellukselle sen tarpeiden perusteella.
- CE18: Kyky käyttää infrastruktuuriteknologioita koodina tietokonejärjestelmien hallintaan ja tietää niiden edut perinteisiin malleihin verrattuna.
- CE19: Kyky käyttää säiliöitä Internet-sovellusten pakkaamiseen ja jakeluun.
- CE20: Kyky käyttää tehokkaasti konttiorkesterijärjestelmää konttipohjaisen Internet-sovelluksen käyttöönottoon ja hallintaan.
- CE21: Mahdollisuus päivittää sovellus konttiorkesterissa asteittain ja ilman palvelun katkeamista.
- CE22: Kyky suunnitella ja toteuttaa sovelluksia käyttämällä pilvipalveluntarjoajien palveluita, kuten sähköposti, tietokannat, tiedostojen tallennus jne.
- CE23: Kyky suunnitella, toteuttaa ja käyttää havainnointijärjestelmiä tuotannon sovellusten hallintaan.
- CE24: Kyky suunnitella ja toteuttaa sovelluksia skaalautuviksi ja vikasietoisiksi käyttämällä pilvipalveluntarjoajien ja konttien järjestäjien tarjoamia replikointi- ja kuormantasauspalveluita.
- CE25: Kyky soveltaa tehokkaasti mikropalveluihin perustuvaa arkkitehtuuria Internet-sovelluksen toteuttamiseen.
- CE26: Kyky suunnitella ja toteuttaa sovellus käyttämällä toimintoalustoja palveluna ja määrittää, milloin ne ovat sopivia muihin vaihtoehtoihin verrattuna.
- CE27: Kyky tuntea DevOps-käytännöt prosessien automatisoimiseksi kehitys- ja toimintatiimien välillä.
- CE28: Kyky tuntea ja valita olemassa olevat erilaiset vaihtoehdot jatkuvan integrointi- ja käyttöönottojärjestelmän toteuttamiseksi.
- CE29: Kyky määritellä tehtäviä jatkuvassa integraatio- ja käyttöönottojärjestelmissä lähdekoodin elinkaaren automatisoimiseksi siitä hetkestä, kun se lisätään koodivarastoon, kunnes se julkaistaan tuotannossa.
- CE30: Kyky hallita lähdekoodista saatuja artefakteja koko sen elinkaaren ajan ja sen erityyppisissä maturiteettityypeissä (julkaisu, beta, tilannekuva jne.).
- CE31: Kyky käyttää käytettävissä olevia työkaluja ja tekniikoita tehokkaasti tuotantosovelluksen päivittämiseen ilman palveluhäiriöitä ja virheitä.