SCENE II: Automaation rakentaminen
Käsikirjoitus on tuotannon moottori. Tässä kohtauksessa rakennamme automaation, joka kuljettaa koodin ideasta toteutukseen — turvallisesti, toistettavasti ja ilman manuaalista säätöä. CI/CD (Continuous Integration / Continuous Deployment) on se liukuhihna, joka pitää koko tuotannon liikkeessä.
PHASE 1: CI/CD Pipelines – Automaatioputket
Tavoite: Rakentaa automaattinen moottori, joka suorittaa testit ja paketoi sovelluksen jokaisen muutoksen yhteydessä.
1. Pipeline Concepts (Putken perusrakenne)
- Teknologiat: GitHub Actions tai GitLab CI.
- Osaamistavoitteet:
- Stages & Jobs: Putken jakaminen loogisiin vaiheisiin: Build → Test → Scan → Deploy.
- Events: Putken laukaiseminen automaattisesti (Push, Pull Request).
- Artifacts & Cache: Miten koottu koodi (artefakti) ja riippuvuudet (cache) siirretään vaiheesta toiseen tehokkaasti.
- Ydinajatus: Poistaa manuaalinen työ ja inhimilliset virheet koodin julkaisuprosessista.
2. YAML & Configuration (Automaation kieli)
- Osaamistavoitteet: Kyky kirjoittaa ja lukea YAML-pohjaisia konfiguraatiotiedostoja.
- Toiminnot: Ympäristömuuttujien hallinta ja "Secrets"-hallinta (esim. Docker Hub -tunnukset tai API-avaimet) turvallisesti pipelinessa.
- Ydinajatus: "Pipeline as Code" – koko julkaisuprosessi on tallennettu versionhallintaan Git-repon mukana.
PHASE 2: Development Quality – Laatu ja Testaus
Tavoite: Varmistaa, että putken läpi menevä koodi on toimivaa ja noudattaa sovittuja standardeja.
3. Automated Testing (Automaattinen testaus)
- Teknologiat: Pytest (Python), Jest (JS/TS).
- Osaamistavoitteet: Yksikkötestien (Unit Tests) ja integraatiotestien automaattinen ajo osana pipelinea.
- Ydinajatus: Koodi ei pääse eteenpäin, jos se rikkoo olemassa olevat ominaisuudet.
4. Code Linting & Formatting
- Teknologiat: ESLint (JS/TS), Flake8 (Python), Gofmt (Go).
- Osaamistavoitteet: Koodityylin ja syntaksin automaattinen tarkistus ennen varsinaisia testejä.
PHASE 3: Security Scanning – Ensimmäiset suojakaiteet
Tavoite: Integroida tietoturvatarkastukset osaksi automaatiota (Shift Left Security).
5. Secret & Static Analysis (SAST)
- Teknologiat: GitLeaks (salaisuudet), Semgrep (kevyt ja nopea SAST).
- Osaamistavoitteet:
- Secret Detection: Estää salasanojen ja avainten vuotaminen Git-historiaan.
- Static Analysis: Etsiä koodista haavoittuvia malleja (esim. suojaamattomat SQL-kyselyt) ilman koodin ajamista.
6. Container & Dependency Scanning (SCA)
- Teknologiat: Trivy (kontit ja riippuvuudet), Snyk.
- Osaamistavoitteet:
- SCA: Käytettyjen kirjastojen (npm, pip, go mod) haavoittuvuuksien tunnistus.
- Container Scanning: Docker-imagen skannaus tunnettujen aukkojen varalta ennen sen julkaisua.
SCENE II: KOKONAISPROJEKTI (Automation Capstone)
Tavoite: Luoda täysin automatisoitu "Security First" -pipeline.
Projekti sisältää:
- Backend-sovellus: (Python/Node.js) tallennettuna GitHub/GitLab-repoon.
- Pipeline-konfiguraatio: YAML-tiedosto, joka sisältää:
- Linting & Unit Tests.
- Secret Scanning (GitLeaks).
- SAST-analyysi (Semgrep).
- Dependency & Container scan (Trivy).
- Docker build & push (esim. Docker Hubiin).
- Lopputulos: Putki antaa "Vihreää valoa" vain, jos koodi on toimivaa, tyylikästä ja tietoturvallista.
Director's Note: The Continuity (Jatkuvuus)
Scene II on onnistunut, kun pystyt tekemään muutoksen koodiin ja näet sen valuvan automaattisesti tarkistusten läpi. Ohjelmointitaito (Python, Go, JS) ei ole tässä itsetarkoitus, vaan väline, jolla ymmärrät mitä testit ja skannerit sinulle kertovat.