Siirry sisältöön
BigTree108

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.