Utforming av høyytelsesapplikasjoner - kurs 46 900 gni. fra IBS Training Center, trening 25 timer, Dato: 11. mars 2024.
Miscellanea / / November 28, 2023
Selv før du designer et programvaresystem, må du forstå at på grunn av visse begrensninger kan det alltid bli et system med høy ytelse. Når du utvikler et høyytelsessystem, er det nødvendig å bestemme hvilke parametere som definerer systemet som høyytelse. Hvis systemet har høy ytelse, må det tas spesielle tiltak for å sikre ytelsen for vellykket implementering.
Kurset undersøker forskjellene mellom systemer med høy belastning, høy pålitelighet og høy ytelse.
Hovedmålet med kurset er å gi en forståelse av de grunnleggende konseptene, prinsippene og tilnærmingene som brukes i design av høyytelsessystemer.
En vanlig setning: "Det skal fungere raskt!" - Dette er ikke et krav. I løpet av opplæringen vil deltakerne ikke bare lære hvorfor dette ikke er et krav, men vil også lære å jobbe med og analysere ytelseskrav på riktig måte. Kurset introduserer også begrepene «kritiske scenarier». Studentene skal befeste tilegnet kunnskap om arbeid med krav i praksis i løpet av en praktisk oppgave.
Kurset undersøker hovedeksemplene på tap av produktivitet i programvaresystemer. Etter dette er de viktigste måtene å bekjempe systemytelse gitt. Også innenfor rammen av kurset diskuteres mønstre som brukes i design av systemer med økte krav ved bruk av praktiske eksempler på anvendelse. ytelse, gir informasjon om de viktigste anti-mønstrene som oppstår ved implementering av programvaresystemer som påvirker produktivitet.
Spesiell oppmerksomhet rettes mot å forberede systemet for testing og analyse av testresultater. Beskriver opprettelsen av et program og metodikk for testing av høylastsystemer, lastmodeller systemer og diskuterer en metodikk som gir mulighet for kvantitativ vurdering av ytelse systemer.
Siden programvaresystemutviklere ofte må løse problemene med å utvikle høyt belastede systemer som behandler store datamengder med gitt krav til responstider og mengder behandlet data, vil kurset være nyttig ikke bare for arkitekter, men også for utviklingsprosjektledere, utviklere.
1. Konseptet med et system med høy ytelse (2,5 timer):
Søknad med høy ytelse, applikasjon med høy belastning, applikasjon med høy tilgjengelighet.
Styring av applikasjonsytelse.
Avhengighet av prisen på feilretting på deteksjonsstadiet og introduksjonsstadiet.
Grunnleggende egenskaper som beskriver systemytelse.
Systembelastningsmodell.
2. Kravanalyse for høyytelsessystemer (1,5 timer)
Utforming av ikke-funksjonelle krav til høyytelsessystemer.
Håndtere motsetninger når du lager ytelseskrav.
Fullstendighet av krav.
Workshop (1 time):
Analyse av krav til inkonsekvens og fullstendighet.
2.1.Arkitektonisk taktikk. Produktivitetstaktikker (1,5 timer)
Funksjoner ved dannelsen av krav til køsystemer (QS).
3. Design av høyytelsessystemer (2 timer)
Systemkvalitetsattributter.
Avveininger når du jobber med flere kvalitetsattributter samtidig: eksemplet med CAP og PACELC.
Workshop: Analyse av prinsippet om å balansere kvalitetsattributter ved å bruke eksemplet med Amazon Dynamo DB (1 time):
Vurdering av tilnærminger til fleksibel systemskalering ved å bruke eksemplet med Amazon Dynamo DB mens du opprettholder kontroll over feiltoleranse og opprettholder konstant ytelse.
3.1. Klassiske ytelsestilnærminger
Hovedårsakene til tap av systemytelse (1 time).
Grunnleggende metoder for å øke systemytelsen (1 time).
Prinsipper for horisontal og vertikal skalering av systemer (0,5 t).
Workshop (2 timer):
Analyse av et eksempel på systemskalering.
Konvertering av et monolittisk system til Map-Reduce.
Oversikt over Map-Reduce.
Konvertering av Map-Reduce til Lambda-arkitektur for å redusere problemene med ren Map-Reduce-praksis.
4. Mønstre for implementering av høyytelsessystemer (5 timer)
Hovedklassene av mønstre som brukes til å bygge høyytelsessystemer: GRASP, arkitekturmønstre, applikasjonsintegrasjonsmønstre.
Eksempler på praktisk implementering av maler i moderne standarder.
Eksempler på praktisk implementering av maler i moderne integrasjonssystemers utviklingsrammeverk.
5. Koding av høyytelsessystemer (2 timer)
Grunnleggende problemer i koding av høyytelsessystemer.
Optimaliseringsmetoder for moderne kompilatorer og kjøretidsmiljøer.
6. Testing av høyytelsessystemer (2 timer)
Typer tester som brukes for å bevise systemytelse.
Forberedelse til testing (tegne opp scenarier og lage en lastmodell).
Analyse av testresultater.
7. SPE-metodikk (1 time)
Introduksjon til SPE-metodikken. Historie, bruksgrenser.
Metodikk for å analysere systemer ved bruk av SPE.
Workshop (1 time):
Vurdere et praktisk eksempel på bruk av SPE-metodikken for:
Estimere grensene for systemytelse basert på de nåværende egenskapene til maskinvaren og programvaren;
Vurdere virkningen av arkitektoniske beslutninger på systemytelse;
Estimater av maskinvarekrav basert på ytelseskrav, basert på skalering av gjeldende systemprosesser.