Data Platform ja Microsoftin Azuren teknologiat
Kirjoitimme edellisessä kirjoituksessa moderneista data platformeista eli data-alustoista. Data-alusta (data platform) pystyy käsittelemään monenlaista dataa ja on yrityksen analytiikkahankkeiden keskiössä.
Ready Solutions Oy on erityisesti Microsoftin teknologioihin keskittynyt yritys. Millaisia komponentteja Microsoftin teknologiat tarjoavat data platform - kehittämiseen?
Identiteetti, salaisuudet ja valtuushallinta
Microsoft Entra ID identiteetinhallintaan
Ajattelemme, että keskitetty identiteettien ja roolipohjaisten oikeuksien hallinnan (RBAC) mallin mahdollistava palvelu on keskeinen osa toimivaa data-alustaa. Entra ID ja RBAC tarjoavat mahdollisuuksia rakentaa erilaisia malleja resurssien käyttöoikeuksien hallintaan.
Oikeuksia voidaan hallita Azuressa hallintaryhmien eli Management Group - tasolla, jolta oikeuksia periytyy eri tilauksille ja resurssiryhmille. Oikeudet on suunniteltu roolikohtaisesti ja annettu Entra ID - ryhmille sekä tietyissä tapauksissa suoraan resurssikohtaisesti teknisille tunnuksille.
Kannattaa huomata että yksittäinen Azure - tilaus voi sisältää rajallisen määrän rooliasetuksia, joten Entra ID - ryhmien kautta toimimalla saadaan hyötyjä näiden rooliasetusten määriä vähentämällä.
Laajasti ajatellen Entra ID tarjoaa kokonaisvaltaisen identiteetin ja autentikoinnin palvelun.
Azure Key Vault salaisuuksien hallintaan
Azure Key Vault (AKV) on palvelu salaisuuksien, avainten ja sertifikaattien tallentamiseen erilaisten toimialojen tietoturva – ja tietosuojastandardien mukaisesti.
Data-alustaa kehitettäessä on hyödyllistä että on käytettävissä valmis palvelu, tällöin esimerkiksi koodiin tai konfiguraatiotiedostoihin ei tallenneta arkaluontoista tietoa, vaan käytetään Azure Key Vaultia.
Azure Key Vaultiin autentikointi tapahtuu Entra ID:n avulla ja oikeudet eri resursseihin tulevat joko RBAC:n tai Azure Key Vaultin pääsyvaltuuspolitiikan perusteella. Suosittelemme mieluiten Azure RBAC – mallin mukaista pääsyvaltuuksien myöntämistä.
Microsoft tarjoaa myös "Azure Key Vault managed HSM"- palvelua, jossa käyttäjäorganisaatio voi tuoda AKV:hen on-premises ympäristöstä Hardware Security Module - ohjelmistolla hallittuja salaisuuksia tai avaimia.
Versionhallinta ja DevOps - teknologiat
Azure DevOps
Azure DevOps on kokoelma erilaisia palveluita data-alustaa kehittävän ja operoivan tiimin käyttöön.
Yksinkertaisin malli on varmaankin hyödyntää pelkästään sen yhteistoiminnan ja versionhallinnan mahdollistavia osia, laajemmin sitä voi käyttää myös CI/CD tyyppisten tarpeiden täyttämiseen. Tämä jälkimmäinen onnistuu Azure Pipelines - osiolla. Useimmissa tapauksissa tarvitaan tällöin Build ja Release – pipelinet, Build – pipeline muodostaa tietynlaisen sovelluksen komponenttien ”ohjelmistopaketin” jonka Release – pipelinet sitten julkaisevat eri ympäristöihin.
Azure DevOps tarjoaa mahdollisuuden hyödyntää Git sekä TFS – versionhallintoja omassa Repository - osiossaan. Azure Pipelines taas tukee muitakin lähteitä versionhallinnassa olevalle koodille kuin Azure DevOps Repositoryissä hallinnoidun.
Tietoliikenne Azuressa
Azure Virtual Network
Azure Virtual Network (VNet) mahdollistaa turvallisen kommunikaation eri resurssien välillä, sijaitsevat ne sitten Azuressa tai hybridimallissa osin on-premises ympäristössä.
Subnet on Azuren tietoliikenteen verkkotopologiassa tietyn virtuaaliverkon / VNetin aliverkko, joiden avulla voidaan lisää segmentoida verkkoa. Esimerkkinä vaikkapa tietokantapalvelun kanssa voi kommunikoida vain jonkinlainen sovelluspalvelin eikä suoraa yhteyttä ole julkiseen internettiin. Tällöin määriteltäisiin esimerkiksi jonkinlaiset frontend ja backend aliverkot.
Service ja Private Endpointit mahdollistavat yhdessä aliverkkojen kanssa segmentoinnin ja muiden Azuren resurssitasoisten palomuurisääntöjen hyödyntämisen. Liikenne voidaan pakottaa kokonaan Microsoftin tarjoamaan runkoverkkoon taikka tietty resurssi voidaan jopa tuoda suoraan aliverkon sisälle käyttäen private endpointia ja resurssin julkisesta internetistä saavuttamisen blokkaamista. Aliverkko on myös mahdollista dedikoida yksittäiselle Azure - palvelulle kuten Azure Databricksille.
Lue lisää Azure Virtual Network - resursseista tästä.
Tiedon tallennus Azuressa
Azure Storage
Microsoftin Azure Storage – palvelut tarjoavat erilaisia tapoja käsitellä raakadataa ja tämän komponentteja ovat:
- Blob
- File
- Table
- Queue
Riippuu pitkälti käyttötapauksista, millaista palvelua tai palveluiden kombinaatiota tarvitaan.
Kun Azure Storagessa hyödynnetään hierachical namespace – optiota resurssia luotaessa voidaan välittömästi hyödyntää sen data lake – ominaisuuksia.
Lakehouse – analytiikan tapauksissa Azure Storage toimii usein object storagen – roolissa, se on paikka jonne nämä erilaiset teknologiat tallentavat datansa hyvin kustannustehokkaalla tavalla kun vertailukohtana on tietokantatuotteet.
Azure SQL tai Azure Synapse Analytics
Azure SQL on tietokanta palveluna, jota useimmiten hyödynnetään operatiivisten sovellusten datan tallennukseen. Luonnollisesti sitä voidaan hyödyntää vaikkapa data-alustan relaatiomallia noudattavien komponenttien tuottamiseksi, esimerkiksi mallintamalla sinne Power BI:n käyttämät raportoinnin taulut. Azure SQL tietovarastokäytössä edellyttää hieman enemmän määritystä tietokannan suorituskyvyn varmistamiseksi. Tietovarastoinnin tarpeisiin voidaan määritellä erilaisia indeksointimalleja sekä taulujen partitiointiratkaisuja.
Azure Synapse Analytics on Microsoftin analytiikkapalveluiden ratkaisu, jonka tietovarastopalvelun aiempi nimi oli Azure SQL Data Warehouse. Azure Synapse Analytics tarjoaa analyyttisen tietovarastoratkaisun ominaisuuksia palveluna Dedicated ja Serverless SQL Pools osioidensa avulla.
Serverless SQL Pool mahdollistaa erilaiset Lakehouse – tyyppiset arkkitehtuurit käyttäen avointa delta parquet – tiedostoformaattia. Tällöin sovelluksen loppukäyttäjät voivat hyödyntää Azure Storagessa olevaa dataa suoraan SQL – pohjaisesti joko kyselyiden, taikka heille määriteltyjen näkymien kautta. Näkymien kautta on helpompi tarjota pääsy tietoon hieman ei-teknisemmille liiketoimintakäyttäjille.
Synapse SQL Dedicated Pools on Azure Synapse Analyticsin analyyttinen tietokantaratkaisu, joka mahdollistaa pysyvien tietokantaobjektien luomisen näkymien lisäksi. Synapse Serverless SQL Poolsista poiketen tietokantaobjektien data ei ole suoraan kehittäjän hallinnoitavissa Azure Storagessa tiedostoina. Synapse Analyticsin SQL Dedicated Pool hyödyntää eräänlaista MPP eli massiivisen rinnakkaisprosessoinnin mallia, jossa laskentaa on hajautettu eri resursseille ja suorituskyky voi kasvaa lineaarisesti datan määrän kasvaessa. Näyttää siltä että Microsoft Fabric on korvaamassa Azure Synapse Analyticsin tällaisen kokonaisvaltaisen analytiikan tuotteena Azuressa.
Integraatioteknologiat Azuressa
Pilvipalveluiden osalta on tyypillistä että ei ole olemassa vain yhtä tuotetta tai palvelua joka sellaisenaan voisi toteuttaa kaikki orgaanisaation integraatiotarpeet, monesti joudutaan rakentamaan kokonaisuus useamman erilaisen palvelun taikka toiminnallisuuden kokoelmana. Alla on esitelty tyypillisiä Azuren palveluita integraatioiden kehittämiseen.
Azure Data Factory
Azure Data Factory (ADF) on Azuren palvelu datan käsittelyyn ja latauksiin, sillä on mahdollista ladata dataa eri järjestelmistä data-alustalle sekä toisinpäin. Azure Data Factory tarjoaa myös työvälineitä erilaisten ajoketjujen rakentamiseen, seurantaan ja ajastuksiin.
Azure Data Factory toimii dataputkien orkesteroinnin välineenä mutta myös usein datan käsittelijän roolissa, sinänsä useiden eri Azuren palveluiden kuten vaikkapa Azure Databricksin notebookien hyödyntäminen Azure Data Factorystä käsin on helppoa.
Azure DevOpsin ja ADF:n hyödyntäminen yhdessä on suotavaa, lisää tietoa tästä löytää täältä.
Azure Databricks
Azure Databricks on Azuren palvelu erittäinen laajojen analytiikkatarpeiden toteuttamiseen. Databricks itsessään on eräänlaisen laajan hajautetun datankäsittelyn moottorin Sparkin kaupallinen versio joka toimii useissa eri pilvipalveluissa Azuren lisäksi.
Azure Databricks tarjoaa työvälineet datan käsittelyyn, dataputkien orkesteroimiseen, Lakehouse – analytiikan tyyppisten ratkaisujen luomiseen, koneoppimismallien kehittämiseen sekä niiden koko elinkaaren ajan tapahtuvaan seurantaan ja hallinnointiin (MLOps – Machine Learning Operations).
Azure Databricksiä voi sinänsä käyttää rinnakkain muiden Azuren palveluiden kanssa ja valita käyttään sopivimmat sen ominaisuuksista.
Azure Logic Apps
Azure Logic Apps on Azuren low-code - palvelu erilaisten työnkulkujen ja prosessien automatisointiin. Sen erottaa Azure Data Factorystä se, että Azure Logic Appsien avulla ei ole tyypillisesti ajalteltu liikuteltavan suurta määrää dataa tietolähteestä kohteeseen.
Azure Logic Appsista on tarjolla erilaisia versioita ja mahdollisuus laajentaa sen toiminnallisuuksia aidon integraatioalustana palveluna (IPaaS) suuntaan kun otetaan käyttöön erillinen Integration Account – ominaisuus. Tällöin käytettävissä on laajemmin erilaisia tietolähteitä ja kohteita, sanomamuunnoksia sekä sanomien validointia. Nämä ominaisuudet ovat tyypillisiä vaativammissa B2B – integraatioskenaarioissa.
Azure Logic Apps on omimmillaan data-alustalla sellaisten integraatiotarpeiden ratkaisemissa, joissa halutaan luoda reagointi esimerkiksi ulkoiseen tapahtumaan ja kehittämisessä halutaan korostaa low-code ominaisuuksia.
Azure Functions
Azure Functions on Microsoftin ratkaisu erilaisten tapahtumiin reagoivien koodipohjaisten integraatioratkaisujen kehittämiseen. Azure Functionien tapauksessa Microsoft huolehtii kapasiteetista eli toteutettujen sovellusten ajoympäristöstä. Azure Functions luokitellaan yleensä Serverless – luokkaan Azuren palveluista.
Azure Functionien ja Azure Logic Appsien ero on siinä että Azure Functions – kehittäminen edellyttää ohjelmointiosaamista, tuettuja ohjelmointikieliä on useita.
Azure Functionien suorituksen voi käynnistää muista Azuren palveluista, esimerkiksi Azure Data Factorystä jos sitä on käytetty data-alustalla orkesterointiratkaisuna.
Miten lähteä liikkeelle data-alustan kehittämisen kanssa Azuressa?
Olemme tehneet vuosia töitä asiakkaidemme Microsoftin Azuren data-palveluiden parissa, tiedämme erilaiset tarpeet analytiikalle ja tietolähteiden kirjon. Ota yhteyttä alla olevalla lomakkeella ja keskustellaan yhdessä kehitystarpeistanne.