Azure-pilvi ja DevOps
Infrastruktuuri koodina, putket, jotka julkaisevat useita kertoja päivässä, tietoturvaperusta, joka perustuu oletuskieltoon, ja lasku, joka pysyy ennustettavana. Näin rakennamme pilviympäristön ja näin pyöritämme omaamme.
Itse DevOps-työ
- Putket. Build, testi, tietoturvaskannaus ja julkaisu GitHub Actionsissa, federoiduilla tunnisteilla tallennettujen salaisuuksien sijaan ja jokainen action lukittuna hajautusarvolla.
- Infrastruktuuri koodina. Terraform kaikelle, katselmoituna suunnitelmana ennen soveltamista, ja ajastettu poikkeamien tunnistus (drift detection) raportoi, mitä joku on muuttanut käsin.
- Tietokannan toimitus. Skeemamuutokset versioituina migraatioina, jotka ajetaan putkessa, joten julkaisu, joka toimittaa koodin ilman sen skeemaa, ei ole mahdollinen.
- Valvonta ja hälytykset. Lokit, mittarit ja jäljet yhdessä työtilassa, ja hälytykset, jotka tavoittavat ihmisen vain silloin, kun kehittäjä voi toimia niiden perusteella.
- Kustannusten hallinta. Oikein mitoitetut tasot, kulutusperusteinen hinnoittelu siellä, missä kuorma on piikikäs, ja kuukausilasku, jonka joku oikeasti lukee.
Mitä käytämme
Jokainen resurssi on määritelty Terraformilla ja julkaistaan GitHub Actionsista federoiduilla tunnisteilla. Mitään ei klikata kasaan portaalissa, ei meidän eikä teidän ympäristöissänne.
Laskenta
Azure Functions .NET 10 isolated workerilla API:lle ja 40 ajastetulle työlle; Container Apps Jobs ajavat tietokantajulkaisut ja EF Core -migraatiot.
Data
Azure SQL rivitason suojauksella ja Always Encrypted -sarakkeilla asiakkaan hallinnoimilla avaimilla Key Vaultissa; Blob Storage dokumenteille ja allekirjoitetuille PDF-tiedostoille.
Frontendit
Kaksi Static Web Appia, portaali ja tämä sivusto, kumpikin tiukalla Content Security Policylla ja esirenderöitynä siellä, missä indeksoijat tarvitsevat HTML:ää.
Identiteetti
Entra ID ihmisille ja ryhmille, käyttäjälle osoitetut hallinnoidut identiteetit jokaiselle työkuormalle, OIDC GitHub Actionsista. Ei pitkäikäisiä tunnisteita putkessa.
Observability
Application Insights ja Log Analytics hälytyssäännöillä, jotka tavoittavat tiimin Teams-viesteinä. Vain signaalit, joiden perusteella kehittäjä voi toimia, muuttuvat hälytyksiksi.
Hallintamalli
Resurssiryhmäkäytännöt, hallintalukot, poistosuoja ja diagnostiikka-asetukset, kaikki määriteltyinä Terraformilla niin, että syy on kunkin säännön vieressä.
Kustannuskuri
Kehitysperiaatteemme asettavat prioriteetit kiinteään järjestykseen: ensin kustannus, sitten tietoturva, sitten nykyaikaisuus, sitten suorituskyky. Kustannuskatto asetetaan ennen kuin arkkitehtuuri piirretään, ja jokainen suunnittelupäätös tarkistetaan sitä vasten. Käytännössä se tarkoittaa kulutusperusteista hinnoittelua jatkuvasti päällä olevien palvelimien sijaan siellä, missä kuorma on piikikäs, oikein mitoitettua tietokantatasoa toimittajan suosittelemän sijaan sekä hälytyksiä, jotka on rakennettu tilauksessa jo oleville palveluille maksullisen päivystystuotteen sijaan.
Tietoturvaperusta
- Palomuurit kieltävät oletuksena; SQL on tavoitettavissa vain Functions-aliverkosta.
- Salaisuudet ovat vain Key Vaultissa ja ne luetaan hallinnoitujen identiteettien kautta.
- Henkilö- ja talousdatan sarakkeet ovat Always Encrypted -suojattuja, joten edes tietokannan ylläpitäjä ei voi lukea niitä.
- Actionit ja konttikuvat lukitaan hajautusarvolla; riippuvuuspäivitykset saapuvat katselmoituina pull requesteina, ja tietoturvatiedote on ehdoton syy päivittää.
- CodeQL ajetaan jokaisessa pushissa, Terraform-suunnitelmat validoidaan ennen soveltamista ja poikkeamat tunnistetaan aikataulutetusti.
Pilvireferenssimme
Yli 20 rakennettua CI/CD-putkea, kahden viikon julkaisut muutettu päivittäisiksi julkaisuiksi, julkaisuaika neljästä tunnista 25 minuuttiin, Azure-kulut vähennetty 30 prosenttia yhdellä alustalla. Luvut toimitushistoriastamme.
Rekrytoimme siihen, emme improvisoi
DevOps on rooli, jota varten rekrytoimme tietoisesti: avointen paikkojemme historiassa on DevOps-insinööri ja erillinen DevOps-teknisen haastattelijan paikka, joten ehdokkaita arvioi joku, joka tekee työtä, eikä yleisasiantuntija tarkistuslista kädessä.
Haluatteko Azure-ympäristönne koodiksi pienemmällä laskulla?
Lähettäkää lukuoikeus tilaukseenne tai kuvaus siitä, mikä pyörii missäkin. Saatte kirjallisen selvityksen ja suunnitelman yhden arkipäivän kuluessa.