Nutanix_Home_Lab_HLD_15_HLD_v5 - itnett/FTD02H-N GitHub Wiki
For å oppnå læringsutbyttet innen programmering i din Nutanix-lab, kan vi sette opp et programmeringsmiljø som dekker alle de nødvendige emnene og ferdighetene. Dette miljøet vil omfatte en kombinasjon av virtuelle maskiner (VM-er), containere, og verktøy som lar deg utforske alt fra grunnleggende programmering til avanserte emner som API-utvikling, GUI-design, og datasikkerhet.
1. Oppsett av Programmeringsmiljøet i Nutanix Lab
A. Infrastruktur
1. VM-er og Containere:
- VLAN 160 (Software Development):
- DEV-SERVER-01 (Linux VM): Brukes til generell programmering, utvikling av CLI-applikasjoner, og grunnleggende datastrukturer. Utstyrt med utviklingsverktøy som Python, Java, og C++.
- GUI-SERVER-01 (Linux VM): Brukes til utvikling av GUI-applikasjoner med verktøy som Tkinter, PyQt, eller JavaFX.
- API-SERVER-01 (Linux VM): Dedikert til API-utvikling og testing, kjører Node.js, Flask (Python), eller Spring Boot (Java).
- SECURE-SERVER-01 (Linux VM): Fokus på sikker programmering og testing av sikkerhetspraksiser.
2. Containere:
- Container 1: Docker container for MySQL/PostgreSQL for database-relaterte prosjekter.
- Container 2: Docker container for webapplikasjonsservere som Nginx/Apache for å serve webapplikasjoner.
- Container 3: Docker container for spesifikke API-testing miljøer (f.eks. Postman/Newman).
B. Nettverkskonfigurasjon
- IP-adresseplan: 10.0.160.0/24
- Gateway IP: 10.0.160.1
- DNS IP: 10.0.160.2
- DHCP Range: 10.0.160.100 - 10.0.160.200
- Statisk IP Range: 10.0.160.10 - 10.0.160.50 (For servere og viktige tjenester)
- Containere: 10.0.160.50 - 10.0.160.70 (For Docker-kontainere)
2. Scenarioer og Øvelser
A. Programstrukturer og Datastrukturer
Scenario: Utforsk grunnleggende programmeringskonsepter ved å implementere ulike datastrukturer (lister, stakker, køer, trær) i Python eller Java.
Instruksjoner:
-
Lag en Python-fil i DEV-SERVER-01:
- Implementer en enkel stack (stabel) og queue (kø).
- Test programmet ved å legge til og fjerne elementer.
-
Implementer et binært søketre i Java:
- Opprett en klasse for treet og lag metoder for innsetting, søking, og sletting.
- Kjør og test applikasjonen i en IDE som IntelliJ eller VSCode installert på DEV-SERVER-01.
Læringsmål:
- Forstå og implementere grunnleggende datastrukturer.
- Lære å skrive og kjøre kode i ulike programmeringsspråk.
B. Funksjoner, Metoder, og Objektorientert Programmering
Scenario: Utforsk objektorientert programmering (OOP) ved å lage en enkel applikasjon som simulerer et bibliotekssystem.
Instruksjoner:
-
Utvikle et Java-program på DEV-SERVER-01:
- Opprett klasser for
Book
,Library
, ogUser
. - Implementer funksjonalitet for å låne ut bøker, returnere bøker, og vise tilgjengelige bøker.
- Opprett klasser for
-
Bruk Python for å lage en lignende applikasjon:
- Implementer de samme klassene og metodene som i Java-versjonen.
- Test applikasjonen med ulike brukerscenarier.
Læringsmål:
- Forstå konsepter innen objektorientert programmering, som arv, polymorfisme, og innkapsling.
- Implementere funksjoner og metoder i både Java og Python.
C. API-utvikling og GUI
Scenario: Lag en RESTful API og en enkel GUI-applikasjon som interagerer med API-en.
Instruksjoner:
-
Utvikle en RESTful API på API-SERVER-01:
- Bruk Flask (Python) eller Node.js til å lage en enkel API som håndterer CRUD-operasjoner for et produktkatalog.
- Test API-en med Postman/Newman eller direkte via curl-kommandoer.
-
Utvikle et GUI-program på GUI-SERVER-01:
- Bruk Python og Tkinter til å lage en GUI som sender forespørsler til API-en.
- GUI-en skal ha funksjoner for å legge til, oppdatere, og fjerne produkter fra katalogen.
Læringsmål:
- Forstå hvordan man lager og tester API-er.
- Lære grunnleggende GUI-programmering og hvordan man integrerer GUI med backend-API.
D. Debugging, Testing, og Unntaksbehandling
Scenario: Utforsk hvordan du kan debugge og teste koden din ved hjelp av innebygde verktøy i Python og Java.
Instruksjoner:
-
Bruk innebygde debugging-verktøy i Python og Java:
- Sett opp breakpoints i koden og bruk IDE-en for å gå gjennom koden steg for steg.
- Implementer unntakshåndtering i Python (try/except) og Java (try/catch) for å fange og håndtere feil.
-
Utfør enhetstesting:
- Bruk
unittest
i Python for å teste individuelle funksjoner. - Bruk
JUnit
for å teste Java-metoder.
- Bruk
Læringsmål:
- Lære å bruke debugging-verktøy for å identifisere og fikse feil i koden.
- Implementere og forstå viktigheten av enhetstesting og unntakshåndtering.
E. Datasikkerhet i Programmering
Scenario: Implementer grunnleggende sikkerhetspraksiser i programmeringen din for å beskytte data mot vanlige trusler som SQL-injeksjoner og XSS.
Instruksjoner:
-
Sikker API-utvikling:
- Implementer input-validering i din API-kode for å beskytte mot SQL-injeksjon.
- Bruk parametriserte spørringer i Python eller Java for databaseinteraksjoner.
-
Sikre GUI-applikasjonen:
- Implementer sikkerhetstiltak for å beskytte mot XSS-angrep.
- Bruk sanitiseringsmetoder for å rense brukerinput før den behandles.
Læringsmål:
- Forstå og implementere sikkerhetsmekanismer i applikasjoner.
- Lære hvordan man beskytter mot vanlige sikkerhetstrusler som kan påvirke applikasjoner.
3. Dokumentasjon og Refleksjon
Scenario: Dokumenter prosjektene dine og reflekter over læringsutbyttet.
- Verktøy: Bruk Markdown, Jupyter Notebooks, eller tradisjonelle tekstbehandlingsverktøy.
- Innhold: Beskriv strukturen på programmene dine, datastrukturene du brukte, og sikkerhetstiltakene du implementerte.
Læringsmål:
- Lære å dokumentere programmeringsprosjekter på en profesjonell måte.
- Reflektere over egen læring og identifisere områder for videre utvikling.
4. Samarbeid og Prosjektarbeid
Scenario: Arbeid i grupper for å utvikle en komplett applikasjon fra start til slutt, inkludert backend, frontend, og sikkerhetsaspekter.
Instruksjoner:
-
Del prosjektet opp i oppgaver:
- Noen kan jobbe på API-utviklingen, andre på GUI, og noen på sikkerhetsimplementering.
- Bruk Git/GitHub for versjonskontroll og samarbeid.
-
Integrer alle komponentene:
- Sett sammen backend, frontend, og sikkerhet i en fungerende applikasjon.
- Test applikasjonen som en helhet, og utfør nødvendige justeringer.
Læringsmål:
- Lære å jobbe effektivt i grupper på programmeringsprosjekter.
- Forstå hvordan man integrerer ulike komponenter i en applikasjon.
Oppsummering:
Denne planen gir deg en omfattende tilnærming til å lære programmering i din Nutanix-lab, med praktiske oppgaver og scenarioer som dekker alt fra grunnleggende programstruktur til avanserte emner som GUI, API-utvikling, og datasikkerhet. Ved å følge denne planen, vil du utvikle en sterk forståelse for programmering og hvordan du kan anvende denne kunnskapen i praksis.